simvx.core.ui.autocomplete¶
Autocomplete popup widget for code completion suggestions.
Module Contents¶
Classes¶
Floating completion popup that shows filtered suggestions near the cursor. |
Data¶
API¶
- simvx.core.ui.autocomplete.log¶
‘getLogger(…)’
- simvx.core.ui.autocomplete.MAX_VISIBLE¶
10
- simvx.core.ui.autocomplete.ITEM_HEIGHT¶
22.0
- simvx.core.ui.autocomplete.POPUP_WIDTH¶
350.0
- simvx.core.ui.autocomplete.KIND_COL_WIDTH¶
36.0
- simvx.core.ui.autocomplete.SCROLLBAR_WIDTH¶
8.0
- simvx.core.ui.autocomplete.TEXT_SCALE¶
0.55
- simvx.core.ui.autocomplete.PADDING_X¶
6.0
- simvx.core.ui.autocomplete.PADDING_Y¶
2.0
- simvx.core.ui.autocomplete.BORDER¶
1.0
- class simvx.core.ui.autocomplete.AutocompletePopup(**kwargs)[source]¶
Bases:
simvx.core.ui.core.ControlFloating completion popup that shows filtered suggestions near the cursor.
Non-modal: the popup is a regular Control that draws on top via
top_level=True. Editors keep keyboard focus while the popup is up; consumers forward navigation keys (Up/Down/Tab/Enter/Esc/PageUp/PageDown/ Home/End) to :meth:forward_keywhile typed characters keep flowing to the editor for live filter updates. Matches every IDE in the wild (VS Code, JetBrains, Sublime, Emacscorfu).Initialization
- show(items: list[simvx.core.ui.completion_types.CompletionItem], x: float, y: float)[source]¶
- NAV_KEYS¶
‘frozenset(…)’
- forward_key(event: simvx.core.ui.core.UIInputEvent) bool[source]¶
Consumer-side hook: forward a navigation key to the popup.
Returns True if the popup consumed the key (caller should suppress its own handling). Mark the event handled by setting
event.handled.Editors call this before processing typed characters in their own
_on_gui_input::def _on_gui_input(self, event): if self._autocomplete.is_visible and self._autocomplete.forward_key(event): return # ... usual editor key handling ...
- size_x¶
‘Property(…)’
- size_y¶
‘Property(…)’
- anchor_left¶
‘Property(…)’
- anchor_top¶
‘Property(…)’
- anchor_right¶
‘Property(…)’
- anchor_bottom¶
‘Property(…)’
- margin_left¶
‘Property(…)’
- margin_top¶
‘Property(…)’
- margin_right¶
‘Property(…)’
- margin_bottom¶
‘Property(…)’
- modal¶
‘Property(…)’
- dismiss_on_outside_click¶
‘Property(…)’
- pause_tree_when_modal¶
‘Property(…)’
- top_level¶
‘Property(…)’
- property size: simvx.core.math.types.Vec2¶
- touch_mode: str¶
‘mouse’
- property theme: simvx.core.ui.types.Theme | None¶
- property mouse_over: bool¶
- property focused: bool¶
- property disabled: bool¶
- get_theme() simvx.core.ui.types.Theme¶
- queue_redraw()¶
- get_minimum_size() simvx.core.math.types.Vec2¶
- get_rect() tuple[float, float, float, float]¶
- get_global_rect() tuple[float, float, float, float]¶
- place_bottom_strip(height: float) None¶
- place_top_strip(height: float) None¶
- set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
- set_focus()¶
- grab_focus()¶
- release_focus()¶
- has_focus() bool¶
- focus_next_control()¶
- focus_previous_control()¶
- grab_mouse()¶
- release_mouse()¶
- set_drag_preview(control: simvx.core.ui.core.Control)¶
- show_modal()¶
- close_modal()¶
- position¶
‘_SpatialVecProperty(…)’
- rotation¶
‘Property(…)’
- scale¶
‘_SpatialVecProperty(…)’
- z_index¶
‘Property(…)’
- z_as_relative¶
‘Property(…)’
- render_layer¶
‘Property(…)’
- set_render_layer(index: int, enabled: bool = True) None¶
- is_on_render_layer(index: int) bool¶
- property absolute_z_index: int¶
- property rotation_degrees: float¶
- property world_position: simvx.core.math.types.Vec2¶
- property world_rotation: float¶
- property world_scale: simvx.core.math.types.Vec2¶
- property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
- property forward: simvx.core.math.types.Vec2¶
- property right: simvx.core.math.types.Vec2¶
- translate(offset: tuple[float, float] | numpy.ndarray)¶
- rotate(radians: float)¶
- rotate_deg(degrees: float)¶
- look_at(target: tuple[float, float] | numpy.ndarray)¶
- transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
- draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
- wrap_screen(margin: float = 20)¶
- strict_errors: ClassVar[bool]¶
True
- script_error_raised¶
‘Signal(…)’
- classmethod __init_subclass__(**kwargs)¶
- property name: str¶
- property process_mode: simvx.core.descriptors.ProcessMode¶
- property visible: bool¶
- reset_error() None¶
- add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
- remove_child(node: simvx.core.node.Node)¶
- reparent(new_parent: simvx.core.node.Node)¶
- get_node(path: str) simvx.core.node.Node¶
- find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
- find(target: type | str, recursive: bool = True) simvx.core.node.Node | None¶
- walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
- property path: str¶
- add_to_group(group: str)¶
- remove_from_group(group: str)¶
- is_in_group(group: str) bool¶
- on_ready() None¶
- on_enter_tree() None¶
- on_exit_tree() None¶
- on_process(dt: float) None¶
- on_physics_process(dt: float) None¶
- on_picked(event: simvx.core.events.InputEvent) None¶
- on_unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
- start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
- stop_coroutine(gen_or_handle)¶
- clear_children()¶
- destroy()¶
- property app¶
- property tree: simvx.core.scene_tree.SceneTree¶
- __getitem__(key: str)¶
- classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
- __repr__()¶