Skip to main content

plugins.projectsearch

local projectsearch = require "plugins.projectsearch"

ResultsView​

(field) ResultsView: plugins.projectsearch.resultsview

_test​

(field) _test: table

config.plugins.projectsearch​

position​

(field) position: "center"|"left"|"right"

Placement of the reusable global search view


plugins.projectsearch.resultsview​

NEWLINE​

(field) NEWLINE: integer

Indicates on a widget.styledtext that a new line follows.


__index​

(field) __index: core.object

Base class providing OOP functionality for Lua. All classes in Pragtical inherit from Object.


animations​

(field) animations: widget.animation[]

background_color​

(field) background_color: renderer.color

Array of bytes that represents a color used by the rendering functions.


border​

(field) border: widget.border

Represents the border of a widget.


brightness​

(field) brightness: integer

capture_text_input​

(field) capture_text_input: boolean?

Receive text input while floating without taking focus


captured_button​

(field) captured_button: ('left'|'right')?

captured_widget​

(field) captured_widget: widget

Widget that captured mouse events


child_active​

(field) child_active: widget|nil

A base widget


childs​

(field) childs: table<integer, widget>

clickable​

(field) clickable: boolean

close_button​

(field) close_button: widget.button

context​

(field) context: 'application'|'session'

context_menu​

(field) context_menu: core.contextmenu

Floating command menu with predicate filtering, scrolling, and nested submenus.


current_scale​

(field) current_scale: number

cursor​

(field) cursor: 'arrow'|'hand'|'ibeam'|'sizeh'|'sizenesw'...(+2)

defer_draw​

(field) defer_draw: boolean

display_position​

(field) display_position: ("center"|"left"|"right")?

Applied global placement


draggable​

(field) draggable: boolean

dragged​

(field) dragged: boolean

end_time​

(field) end_time: number|unknown

excludes_text​

(field) excludes_text: widget.textbox

explicit_update​

(field) explicit_update: boolean

file_picker​

(field) file_picker: widget.filepicker

filters_toggle​

(field) filters_toggle: widget.togglebutton

find_button​

(field) find_button: widget.button

find_text​

(field) find_text: widget.textbox

floating​

(field) floating: boolean

Whether the view uses floating placement


floating_closing​

(field) floating_closing: boolean?

Whether input is disabled while a closing slide runs


floating_destination​

(field) floating_destination: (core.view.position)?

Settled position retained during a slide


floating_gesture​

(field) floating_gesture: (core.view.floating_gesture)?

Active pointer drag or resize


floating_options​

(field) floating_options: (core.view.floating_options)?

Placement ownership and input policy


floating_position​

(field) floating_position: (core.view.position)?

Persistent interpolation state for a slide


floating_previous_focus​

(field) floating_previous_focus: (core.view)?

Focus target to restore when hiding


floating_transition​

(field) floating_transition: (core.view.floating_transition)?

Active slide and callback


floating_visible​

(field) floating_visible: boolean?

Whether the view is registered, including closing slides


focus_generation​

(field) focus_generation: integer

Invalidates queued focus when hiding or reopening


font​

(field) font: string|renderer.font|widget.fontreference

Represents a reference to a font stored elsewhere.


foreground_color​

(field) foreground_color: renderer.color

Array of bytes that represents a color used by the rendering functions.


h_scrollbar​

(field) h_scrollbar: widget.scrollbar

has_focus​

(field) has_focus: boolean

hovered_child​

(field) hovered_child: widget?

Child that last received hover motion


hovered_scrollbar​

(field) hovered_scrollbar: boolean

includes_text​

(field) includes_text: widget.textbox

input_text​

(field) input_text: boolean

insensitive​

(field) insensitive: boolean

is_global​

(field) is_global: boolean

Whether this is the reusable global search panel


is_scrolling​

(field) is_scrolling: boolean

label​

(field) label: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>

mouse​

(field) mouse: widget.position

Represents the position of a widget.


mouse_is_hovering​

(field) mouse_is_hovering: boolean

mouse_is_pressed​

(field) mouse_is_pressed: boolean

mouse_press​

(field) mouse_press: { button: 'left'|'right', child: widget? }?

mouse_selecting​

(field) mouse_selecting: unknown

name​

(field) name: string

next_zindex​

(field) next_zindex: integer

node​

(field) node: (core.node)?

Docked placement, absent in centered mode


parent​

(field) parent: widget|nil

A base widget


path​

(field) path: any

perform_update_size_position​

(field) perform_update_size_position: boolean

position​

(field) position: widget.position

Represents the position of a widget.


prev_height​

(field) prev_height: number?

prev_size​

(field) prev_size: widget.position

Represents the position of a widget.


prev_view​

(field) prev_view: unknown

prev_width​

(field) prev_width: number?

query​

(field) query: string

(field) queue_search: boolean

regex_toggle​

(field) regex_toggle: widget.togglebutton

render_background​

(field) render_background: boolean

replace_button​

(field) replace_button: widget.button

replace_text​

(field) replace_text: widget.textbox

replace_toggle​

(field) replace_toggle: widget.togglebutton

replaced​

(field) replaced: boolean

replacement​

(field) replacement: (string|nil)?

replacing​

(field) replacing: boolean

result_split_node​

(field) result_split_node: (core.node)?

Represents a container in the UI layout tree. Nodes can be either "leaf" (contains views/tabs) or split (contains two child nodes). The root node forms a binary tree structure that defines the editor's layout.


result_split_views​

(field) result_split_views: core.docview[]?

results_list​

(field) results_list: widget.searchreplacelist

scroll​

(field) scroll: core.view.scroll

scrollable​

(field) scrollable: boolean

search_type​

(field) search_type: string|"plain"|"regex"

searching​

(field) searching: boolean

the search was completed


sensitive_toggle​

(field) sensitive_toggle: widget.togglebutton

set_focus​

(field) set_focus: any

(field) sidebar_width: number

Remembered docked width in scale-independent units


size​

(field) size: widget.position

Modifying this property directly is not advised, use set_size() instead.


skip_scroll_ctrl​

(field) skip_scroll_ctrl: boolean

By default is set to true to allow ctrl+wheel or cmd+wheel on mac to scale the interface, you can set it to false on your parent widget to allow manually intercepting ctrl+wheel.


source_view​

(field) source_view: (core.view)?

Base view.


start_time​

(field) start_time: number|unknown

stop​

(field) stop: boolean

super​

(field) super: widget

A base widget


textview​

(field) textview: widget

A base widget


tooltip​

(field) tooltip: (string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>)?

tooltip_command​

(field) tooltip_command: string?

total_files​

(field) total_files: number

total_files_processed​

(field) total_files_processed: integer

type_name​

(field) type_name: string

updated​

(field) updated: boolean

v_scrollbar​

(field) v_scrollbar: widget.scrollbar

visible​

(field) visible: boolean

whole_word​

(field) whole_word: boolean

wholeword_toggle​

(field) wholeword_toggle: widget.togglebutton

zindex​

(field) zindex: integer

from_state​

function core.view.from_state(state: table)
-> view: (core.view)?

Create and initialize a new view instance from a previously saved state.

This function is called when restoring workspace/session state. Implementations are responsible for:

  • creating the view instance
  • applying any persisted state

If loading the instance failed nil will be returned.

@return view: (core.view)?


__call​

(method) core.object:__call(...any)
-> obj: core.object

Metamethod allowing class to be called like a constructor. Enables syntax: local obj = MyClass(args) instead of MyClass:new(args) Automatically creates instance and calls new() with provided arguments.

@return obj: core.object — The new instance of the class


__tostring​

(method) plugins.projectsearch.resultsview:__tostring()
-> string

activate​

(method) widget:activate()

Emitted to input_text widgets when clicked.


add_child​

(method) widget:add_child(child: widget)

Add a child widget, automatically assign a zindex if non set and sorts them in reverse order for better events matching.

@param child: widget — A base widget


animate​

(method) widget:animate(target?: table, properties: table<string, number>, options?: widget.animation.options)

Registers a new animation to be ran on the update cycle.

@param target?: table — If nil assumes properties belong to widget it self.

@param options?: widget.animation.options


apply_options​

(method) plugins.projectsearch.resultsview:apply_options(options: plugins.projectsearch.resultsview.options, enable_run?: boolean)

@param options: plugins.projectsearch.resultsview.options


apply_position​

(method) plugins.projectsearch.resultsview:apply_position(position: "center"|"left"|"right")

Move the global view without recreating its inputs, results or document panes.

position:
| "left"
| "right"
| "center"

@param position: "center"|"left"|"right" — Requested placement


begin_replace​

(method) plugins.projectsearch.resultsview:begin_replace()

Starts the replacement procedure and worker threads using previously matched results.


(method) plugins.projectsearch.resultsview:begin_search(path?: string, text: string, search_type: "plain"|"regex", insensitive?: boolean, whole_word?: boolean)

Start the search procedure and worker threads.

search_type:
| "plain"
| "regex"

bring_to_front​

(method) core.view:bring_to_front()
-> view: core.view

Raise a shown floating view and its owned popups above the other floating views.

@return view: core.view — This view, for chaining


capture_mouse​

(method) widget:capture_mouse(scrolling?: boolean, button?: 'left'|'right')

All mouse events will be directly sent to the widget even if mouse moves outside the widget region.

button:
| 'left'
| 'right'

@param scrolling?: boolean — Capture for scrolling

@param button?: 'left'|'right' — Defaults to left


centered​

(method) widget:centered()

Center the widget horizontally and vertically to the screen or parent widget.


clamp_scroll_position​

(method) core.view:clamp_scroll_position()

Clamp scroll position to valid range (0 to max scrollable size). Called automatically by update(). Override get_scrollable_size() to customize.


deactivate​

(method) widget:deactivate()

Emitted to input_text widgets on lost focus.


destroy​

(method) widget:destroy()

Hide the widget, release its floating placement, and recursively destroy its children.


destroy_childs​

(method) widget:destroy_childs()

Recursively destroy all childs from the widget.


drag​

(method) widget:drag(x: number, y: number)

Used internally when dragging is activated.


draw​

(method) plugins.projectsearch.resultsview:draw()
-> boolean

draw_background​

(method) core.view:draw_background(color: renderer.color)

Draw a solid background color for the entire view. Commonly called at the start of draw() methods.

@param color: renderer.color — Array of bytes that represents a color used by the rendering functions.


draw_border​

(method) widget:draw_border(x?: number, y?: number, w?: number, h?: number)

Draw the widget configured border or custom one.


draw_scrollbar​

(method) widget:draw_scrollbar()

draw_styled_text​

(method) widget:draw_styled_text(text: table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>, x: integer, y: integer, only_calc?: boolean, start_idx?: integer, end_idx?: integer)
-> width: integer
2. height: integer

Render or calculate the size of the specified range of elements in a styled text elemet.

@param text: table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>

@return width: integer

@return height: integer


draw_text_multiline​

(method) widget:draw_text_multiline(font: string|renderer.font|widget.fontreference, text: string, x: integer, y: integer, color: renderer.color, only_calc: boolean)
-> resx: integer
2. resy: integer
3. width: integer
4. height: integer

Taken from the logview and modified it a tiny bit. TODO: something similar should be on pragtical core.

@param font: string|renderer.font|widget.fontreference — Represents a reference to a font stored elsewhere.

@param color: renderer.color — Array of bytes that represents a color used by the rendering functions.

@return resx: integer

@return resy: integer

@return width: integer

@return height: integer


extend​

(method) core.object:extend()
-> cls: core.object

Create a new class that inherits from this one. Returns a new class with this class as its parent. Example: local MyClass = Object:extend()

@return cls: core.object — The new class table


extends​

(method) core.object:extends(T: any)
-> extends: boolean

Check if object inherits from the given type (inheritance-aware). Use this to check class hierarchy. Example: view:extends(View) returns true for View and all subclasses

@param T: any — Class to check inheritance from

@return extends: boolean — True if object is T or inherits from T


focus_results​

(method) plugins.projectsearch.resultsview:focus_results()

Focus the result list and reveal its selection without focusing any text input. Choose the first match if no result has been selected yet.


get_bottom​

(method) widget:get_bottom()
-> number

Get the bottom y coordinate relative to parent


get_content_bounds​

(method) core.view:get_content_bounds()
-> x1: number
2. y1: number
3. x2: number
4. y2: number

Get the content bounds in content coordinates (accounting for scroll).

@return x1: number — Left edge

@return y1: number — Top edge

@return x2: number — Right edge

@return y2: number — Bottom edge


get_content_offset​

(method) widget:get_content_offset()
-> x: number
2. y: number

Get the content origin while preserving fractional layout coordinates. Snap only the scroll displacement so descendants move by whole pixels together without shifting their borders relative to the parent's viewport.

@return x: number — Screen x coordinate after horizontal scrolling

@return y: number — Screen y coordinate after vertical scrolling


get_floating_bounds​

(method) widget:get_floating_bounds()
-> x: number
2. y: number
3. w: number
4. h: number

Get the widget's outer screen rectangle, including its border.

@return x: number — Outer screen x coordinate

@return y: number — Outer screen y coordinate

@return w: number — Width including the border

@return h: number — Height including the border


get_floating_drag_region​

(method) core.view:get_floating_drag_region()
-> x: number?
2. y: number?
3. w: number?
4. h: number?

Get the screen rectangle where a floating view can be dragged. Override to restrict dragging to a header; defaults to the full popup bounds.

@return x: number? — Screen x coordinate, or nil to disable dragging

@return y: number? — Screen y coordinate

@return w: number? — Region width

@return h: number? — Region height


get_focus_target​

(method) widget:get_focus_target()
-> target: core.view

Focus the active child or its TextView, falling back to this widget's input or itself.

@return target: core.view — View that should receive keyboard focus


get_font​

(method) widget:get_font(font?: string|renderer.font|widget.fontreference)
-> renderer.font

Get the real renderer.font associated with a widget.font.

@param font?: string|renderer.font|widget.fontreference — Represents a reference to a font stored elsewhere.

@return: renderer.font


get_h_scrollable_size​

(method) widget:get_h_scrollable_size()
-> number

Calculates the x scrollable size taking into account the right most widget or the size of the widget it self if greater.


get_height​

(method) widget:get_height()
-> number

Get height including borders.


get_module​

(method) core.view:get_module()
-> path: string?

Returns the module path of this view.

This method resolves the Lua module name that loaded the concrete view class (for example "core.view").

If the view class cannot be associated with any loaded module, nil is returned.

@return path: string?


get_name​

(method) plugins.projectsearch.resultsview:get_name()
-> string

Text displayed on the application title and view tab.


get_position​

(method) widget:get_position()
-> widget.position

Get the relative position in relation to parent

@return: widget.position


get_real_height​

(method) widget:get_real_height()
-> number

Overall height of the widget accounting all visible child widgets.


get_real_width​

(method) widget:get_real_width()
-> number

Overall width of the widget accounting all visible child widgets.


get_right​

(method) widget:get_right()
-> number

Get the right x coordinate relative to parent


get_scrollable_size​

(method) widget:get_scrollable_size()
-> number

Calculates the y scrollable size taking into account the bottom most widget or the size of the widget it self if greater.


get_size​

(method) widget:get_size()
-> widget.position

@return: widget.position


get_state​

(method) core.view:get_state()
-> state: table?

Serialize this view into a persistable state table.

This method is called when the editor is saving workspace/session state. The returned table must contain only plain Lua data (no functions, userdata, metatables, or cyclic references).

Returning nil indicates that this view should NOT be restored when reloading the workspace.

@return state: table?


get_width​

(method) widget:get_width()
-> number

Get width including borders.


hide​

(method) widget:hide()

Hide the widget.


hide_animated​

(method) widget:hide_animated(lock_x?: boolean, lock_y?: boolean, options?: widget.animation.options)

Perform an animated hide.

@param lock_x?: boolean — Do not resize width while animating

@param lock_y?: boolean — Do not resize height while animating

@param options?: widget.animation.options


hide_floating​

(method) core.view:hide_floating(options?: core.view.floating_transition)
-> view: core.view

Hide the floating view, close owned popups, cancel input, and restore focus. A closing slide delays removal while the view immediately stops receiving input. Disabled transitions remove the view and run the completion callback immediately.

@param options?: core.view.floating_transition — Optional closing slide (to) and callback

@return view: core.view — This view, for chaining


hit_test​

(method) widget:hit_test(x: number, y: number)
-> inside: boolean

Reuse widget hit testing for RootView's floating pointer routing.

@param x: number — Screen x coordinate

@param y: number — Screen y coordinate

@return inside: boolean — Whether the point lies over the widget


is​

(method) core.object:is(T: any)
-> is_exact: boolean

Check if object is exactly of the given type (no inheritance check). Use this for strict type matching. Example: view:is(DocView) returns true only if view is a DocView, not a subclass

@param T: any — Class to check against

@return is_exact: boolean — True if object is exactly type T


is_class_of​

(method) core.object:is_class_of(T: any)
-> is_instance: boolean

Check if the given object is exactly an instance of this class. Inverse of is() - checks if T is an instance of self. Example: DocView:is_class_of(obj) checks if obj is exactly a DocView

@param T: any — Object to check

@return is_instance: boolean — True if T is exactly an instance of this class


is_extended_by​

(method) core.object:is_extended_by(T: any)
-> is_extended: boolean

Check if the given object/class inherits from this class. Inverse of extends() - checks if T is a subclass of self. Example: View:is_extended_by(DocView) checks if DocView inherits from View

@param T: any — Object or class to check

@return is_extended: boolean — True if T inherits from this class


is_floating_owner_visible​

(method) core.view:is_floating_owner_visible()
-> visible: boolean?

Check whether floating popups owned by this view should remain visible. Docked owners must be active in their node; container children follow their parent. Override for composites with their own visibility rules.

@return visible: boolean? — Falsy when the owner is hidden or its tab is inactive


is_visible​

(method) widget:is_visible()
-> boolean

Check if the widget is visible also recursing to the parent visibility.


mouse_on_top​

(method) widget:mouse_on_top(x: number, y: number)
-> boolean

Check if the given mouse coordinate is hovering the widget


move_towards​

(method) core.view:move_towards(t: table, k: string|number, dest: number, rate?: number, name?: string)

Smoothly animate a value towards a destination. Use this for animations instead of direct assignment.

@param t: table — Table containing the value

@param k: string|number — Key in table

@param dest: number — Target value

@param rate?: number — Animation speed (0-1, default 0.5, higher = faster)

@param name?: string — Transition name (for config.disabled_transitions)


new​

(method) plugins.projectsearch.resultsview:new(path?: string, text: string, search_type?: "plain"|"regex", insensitive?: boolean, whole_word?: boolean, replacement?: string)

Constructor

search_type:
| "plain"
| "regex"

on_change​

(method) widget:on_change(value: any)

Event emitted when the value of the widget changes. If applicable, child widgets should call this method when its value changes.


on_click​

(method) widget:on_click(button: "left"|"right", x: number, y: number)

Click event emitted on a succesful on_mouse_pressed and on_mouse_released events combo.

button:
| "left"
| "right"

on_file_dropped​

(method) widget:on_file_dropped(filename: string, x: number, y: number)
-> processed: boolean

Send file drop event to hovered child.

@return processed: boolean


on_floating_dismiss​

(method) plugins.projectsearch.resultsview:on_floating_dismiss(reason: "escape"|"focuslost"|"outside")

Dismiss centered global search through its normal visibility and focus lifecycle.

reason:
| "escape"
| "outside"
| "focuslost"

@param reason: "escape"|"focuslost"|"outside" — Cause supplied by RootView


on_floating_visibility_changed​

(method) widget:on_floating_visibility_changed(visible: boolean)

Synchronize widget visibility with RootView, including owner-driven popup removal.

@param visible: boolean — Whether the floating widget remains shown


on_ime_text_editing​

(method) core.view:on_ime_text_editing(text: string, start: number, length: number)

Handle IME (Input Method Editor) text composition events. Override for IME support in text editors. Called during composition.

@param text: string — Composition text being edited

@param start: number — Start position of selection within composition

@param length: number — Length of selection within composition


on_key_pressed​

(method) plugins.projectsearch.resultsview:on_key_pressed(stroke: string)
-> consumed: boolean

Close centered search on Escape only while it owns keyboard focus.

@param stroke: string — Normalized key binding

@return consumed: boolean — Whether the search popup handled Escape


on_mouse_capture_lost​

(method) widget:on_mouse_capture_lost()

End a pointer gesture without emitting a click. Override to clear drag state.


on_mouse_enter​

(method) widget:on_mouse_enter(x: any, y: any, dx: any, dy: any)

Emitted once when the mouse hovers the widget.


on_mouse_leave​

(method) widget:on_mouse_leave(x: any, y: any, dx: any, dy: any)

Emitted once when the mouse leaves the widget.


on_mouse_left​

(method) widget:on_mouse_left()

on_mouse_moved​

(method) widget:on_mouse_moved(x: number, y: number, dx: number, dy: number)
-> boolean

Besides the on_mouse_moved this event emits on_mouse_enter and on_mouse_leave for easy hover effects. Also, if the widget is scrollable and pressed this will drag it unless there is an active input_text child active.


on_mouse_pressed​

(method) plugins.projectsearch.resultsview:on_mouse_pressed(button: "left"|"right", x: number, y: number, clicks: integer)
-> boolean

on_mouse_released​

(method) widget:on_mouse_released(button: "left"|"right", x: number, y: number)
-> processed: boolean

Send release to the pressed target, even outside its bounds.

button:
| "left"
| "right"

@return processed: boolean


on_mouse_wheel​

(method) widget:on_mouse_wheel(y: number, x: number)
-> boolean

on_scale_change​

(method) plugins.projectsearch.resultsview:on_scale_change(new_scale: number, prev_scale: number)

Scale docked width while centered placement follows the available viewport.

@param new_scale: number — Updated interface scale

@param prev_scale: number — Previous interface scale


on_text_input​

(method) widget:on_text_input(text: string)
-> processed: boolean

Redirects any text input to active child with the input_text flag.

@return processed: boolean


on_touch_moved​

(method) core.view:on_touch_moved(x: number, y: number, dx: number, dy: number, i: number)

Handle touch move events (touchscreen/trackpad gestures). Override for touch-specific behavior. Base implementation handles scrolling.

@param x: number — Current touch x coordinate

@param y: number — Current touch y coordinate

@param dx: number — Delta x since last position

@param dy: number — Delta y since last position

@param i: number — Touch finger/pointer index


open_selected_result​

(method) plugins.projectsearch.resultsview:open_selected_result(open_in_split?: boolean)
-> boolean|nil

Opens a DocView of the user selected match.


owns_view​

(method) core.view:owns_view(view?: core.view)
-> owned: boolean

Check whether a view is this view or belongs to it through a container or owner. Follows parent, subparent, and floating owner links while guarding against cycles.

@param view?: core.view — Candidate view

@return owned: boolean — Whether the candidate belongs to this view


queue_refresh​

(method) plugins.projectsearch.resultsview:queue_refresh()

refresh​

(method) plugins.projectsearch.resultsview:refresh()

Re-perform the search procedure using previous search options.


release_mouse​

(method) widget:release_mouse(skip_cancel?: boolean)

Release this widget's capture and clear capture state on its ancestors.

@param skip_cancel?: boolean — Skip the cancellation callback when already handling capture loss


remove_child​

(method) widget:remove_child(child: widget)

Remove a child widget.

@param child: widget — A base widget


run_animations​

(method) widget:run_animations()

Runs all registered animations removing duplicated and finished ones.


schedule_update​

(method) widget:schedule_update(delayed: any)

Schedule a core update and redraw. Since widgets try to not fire updates and draws to child widgets to reduce cpu consumption this function can be used when a re-update and re-draw is strictly needed.


scrollbar_dragging​

(method) core.view:scrollbar_dragging()
-> dragging: boolean

Check if user is currently dragging either scrollbar.

@return dragging: boolean — True if scrollbar drag is in progress


scrollbar_hovering​

(method) core.view:scrollbar_hovering()
-> hovering: boolean

Check if mouse is hovering over either scrollbar track.

@return hovering: boolean — True if mouse is over scrollbar


scrollbar_overlaps_point​

(method) core.view:scrollbar_overlaps_point(x: number, y: number)
-> overlaps: boolean

Check if a screen point overlaps either scrollbar. Useful for determining cursor style or handling clicks.

@param x: number — Screen x coordinate

@param y: number — Screen y coordinate

@return overlaps: boolean — True if point is over vertical or horizontal scrollbar


set_border_width​

(method) widget:set_border_width(width: integer)

Set the widget border size and appropriately re-set the widget size.


set_floating​

(method) core.view:set_floating(enabled: boolean, options?: core.view.floating_options)
-> view: core.view

Enable or disable floating placement and configure popup input and ownership. Call show_floating() to show the view after enabling this mode. Detach it from its node or parent container before showing. Disabling hides it.

@param enabled: boolean — Whether the view should use floating placement

@param options?: core.view.floating_options — Options merged with existing ones when enabling

@return view: core.view — This view, for chaining


set_floating_bounds​

(method) widget:set_floating_bounds(x: number, y: number, w: number, h: number)

Apply outer popup bounds using the widget's border-aware size and position setters. Pass dimensions unchanged: set_size() already accounts for the border.

@param x: number — Outer screen x coordinate

@param y: number — Outer screen y coordinate

@param w: number — Width including the border

@param h: number — Height including the border


set_label​

(method) widget:set_label(text: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>)

A text label for the widget, not all widgets support this.

@param text: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>


set_position​

(method) widget:set_position(x?: integer, y?: integer)

Set the position of the widget and updates the child absolute coordinates


set_size​

(method) widget:set_size(width?: integer, height?: integer)

set_target_size​

(method) widget:set_target_size(axis: string|'x'|'y', value: number)
-> boolean

Called by pragtical node system to properly resize the widget.

axis:
| 'x'
| 'y'

set_tooltip​

(method) widget:set_tooltip(tooltip?: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>, command?: string)

Text displayed when the widget is hovered. If a command name is also given its associated binding will be displayed as part of the tooltip.

@param tooltip?: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>


show​

(method) widget:show()

Show the widget.


show_animated​

(method) widget:show_animated(lock_x?: boolean, lock_y?: boolean, options?: widget.animation.options)

Perform an animated show.

@param lock_x?: boolean — Do not resize width while animating

@param lock_y?: boolean — Do not resize height while animating

@param options?: widget.animation.options


show_floating​

(method) plugins.projectsearch.resultsview:show_floating(options?: core.view.floating_transition)
-> view: plugins.projectsearch.resultsview

Slide centered global search down from the top using the core floating transition.

@param options?: core.view.floating_transition — Explicit transition overriding the default slide

@return view: plugins.projectsearch.resultsview — This view


(method) plugins.projectsearch.resultsview:stop_search()

Flag that the search threads should be stopped.


supports_text_input​

(method) core.view:supports_text_input()
-> boolean

Whether this view accepts text input (enables IME). Override and return true for text editors and input fields.


swap_active_child​

(method) widget:swap_active_child(child?: widget)

Replaces current active child with a new one and calls the activate/deactivate events of the child. This is especially used to send text input events to widgets with input_text support.

@param child?: widget — If nil deactivates current child


toggle_background​

(method) widget:toggle_background(enable?: boolean)

When set to false the background rendering is disabled.


toggle_visible​

(method) widget:toggle_visible(animated?: boolean, lock_x?: boolean, lock_y?: boolean, options?: widget.animation.options)

Toggle visibility of widget.

@param options?: widget.animation.options


try_close​

(method) core.view:try_close(do_close: function)

Called when view is requested to close (e.g., tab close button). Override to show confirmation dialogs for unsaved changes. Example: core.command_view:enter("Save?", \{submit = do_close\})

@param do_close: function — Call this function to actually close the view


update​

(method) plugins.projectsearch.resultsview:update()
-> boolean

update_floating​

(method) plugins.projectsearch.resultsview:update_floating()

Fit centered global search inside the viewport on scale or window-size changes. RootView calls this before updating and drawing a shown floating view.


update_if_scaled​

(method) widget:update_if_scaled()

Explicitly call the widget update procedure when the scale change even if the widget is not visible.


update_position​

(method) widget:update_position(recursive?: boolean)

Called on the update function to be able to scroll the child widgets.

@param recursive?: boolean — Update descendants; defaults to true.


update_replacement​

(method) plugins.projectsearch.resultsview:update_replacement()

Sets the replacement text depending on currently toggled options


update_scrollbar​

(method) core.view:update_scrollbar()

Update scrollbar positions and sizes. Called automatically by update(). Rarely needs to be called manually.


update_size_position​

(method) widget:update_size_position()

Similar to update, but here you should perform expensive calculations that will get executed for a predefined period of time when a widget is initialized, scale has changed or a widget switched from hidden to visible.


plugins.projectsearch.resultsview.options​

filters​

(field) filters: { includes: string?, excludes: string? }?

has_focus​

(field) has_focus: boolean?

insensitive​

(field) insensitive: boolean?

path​

(field) path: string?

replacement​

(field) replacement: string?

run​

(field) run: boolean?

search_type​

(field) search_type: ("plain"|"regex")?

text​

(field) text: string?

whole_word​

(field) whole_word: boolean?

hide​

function plugins.projectsearch.hide(options?: plugins.projectsearch.resultsview.options)
-> view: (plugins.projectsearch.resultsview)?

Hide global search and restore focus synchronously before outside clicks continue. A queued show must not later focus an input that has already been hidden.

@param options?: plugins.projectsearch.resultsview.options

@return view: (plugins.projectsearch.resultsview)? — Reusable global search, if created


search_plain​

function plugins.projectsearch.search_plain(text: string, path?: string, insensitive?: boolean, whole_word?: boolean, replacement?: string)
-> (plugins.projectsearch.resultsview)?

Start a plain text search.

@return: (plugins.projectsearch.resultsview)?


search_regex​

function plugins.projectsearch.search_regex(text: string, path?: string, insensitive?: boolean, whole_word?: boolean, replacement?: string)
-> (plugins.projectsearch.resultsview)?

Start a regex search.

@return: (plugins.projectsearch.resultsview)?


set_position​

function plugins.projectsearch.set_position(position: "center"|"left"|"right")

Configure global search placement, moving an existing view immediately. The preference is saved by Settings when its position selector is used.

position:
| "left"
| "right"
| "center"

@param position: "center"|"left"|"right" — Docking edge or floating popup


show​

function plugins.projectsearch.show(options?: plugins.projectsearch.resultsview.options)
-> view: plugins.projectsearch.resultsview

Show or focus global search, preserving its query and result state.

@param options?: plugins.projectsearch.resultsview.options

@return view: plugins.projectsearch.resultsview — Reusable global search


toggle​

function plugins.projectsearch.toggle(options?: plugins.projectsearch.resultsview.options)
-> view: plugins.projectsearch.resultsview

Toggle the global project search view, or focus it when invoked from the editor.

@param options?: plugins.projectsearch.resultsview.options

@return view: plugins.projectsearch.resultsview — Reusable global search