| Age | Commit message (Collapse) | Author |
|
When the autocomplete is manually triggered by a plugin if it is
already open it will keep the previous results instead of skipping
them while prioritizing the new items provided by the caller.
Other Changes:
* Better handling of duplicated entries.
* Ensure that a previously set on_close callback is not overwritten
without a call.
Sould fix pragtical/lsp#8
|
|
Improvements to the Lua doc comments that allows improved
generation of the Lua API reference using the gendocs plugin.
|
|
Various core plugins that implement some caching rely on weak table
keys of core.doc to cache content, with the idea that once the document
is closed the cached content will be cleaned. The reality is that
sometimes it can take a really long time until the garbage collector
decides that the key is no longer been referenced and the cache data
is kept longer than needed.
For this reason we now listen for Doc:on_close events and clean the cache
immediately, applicable plugins are:
* autocomplete
* autoreload
* detectindent
* drawwhitespace
* linewrapping
These changes introduce a new `core.collect_garbage` flag that
when set to true will queue a call to `collectgarbage('collect')`.
Currently it is been employed each time a document is closed in
an effort to reduce memory consumption.
We also remove the highlighter reference to the doc when closing
a doc to mitigate a circular reference issue.
Lastly, now the autoreload and detectindent plugins are applied to
visible documents only.
|
|
|
|
When triggered manually and first character is a punctuation,
it causes none of the items to match if they don't also contain the
punctiation. We remove the punctuations to ensure results with plugins
like lsp will match even if the don't contain the starting punctuation
symbol.
This solves issues in languages like C/C++ where # causes lsp to return
a list of snippets as follows:
* if
* ifndef
* include
Without this change non of the items would match.
|
|
* move window creation and management to Lua (#1751)
* remove scaling logic from font code
for the time being its been hardcoded to 1 for the non SDL Renderer basewin setup, so nothing is lost for non MacOS users.
will be revisited in the future when scaling is improved with SDL3 and moved into scripts.
* remove unused window_renderer argument from font functions
* move window logic to lua, pass window via argument
* rename window creation functions `*_create`, `*_destroy`, add real init
* Set active window when processing frame
* get size directly from RenWindow, get active window size from renderer
* correct reverted draw calls
* fix window not reappearing on restart
* add simple logic to persist the core window
* fix style
* add renwindow documentation
* make windows hidden by default again
* reorder ren_update_rects execution, add comment to note future work
* Adapt code that calls system.win functions
* Remove scale detection from start.lua
* Trimmed spaces from renwindow docs
* Enable darkmode on window creation and added min win size
---------
Co-authored-by: Jan <sentrycraft123@gmail.com>
|
|
Add a config option for the maximum number of visible entries in the command palette.
* Make `autocomplete` item scrolling more natural
|
|
This PR improves upon #67 and restores correct highlight colors.
|
|
This change handles the issue reported on lite-xl/lite-xl-lsp#82 about
the suggestions box becoming too wide to be visible when the symbols
text is too large.
Instead of delegating the responsability to plugins making use of
the autocomplete API we tackle the issue directly on the plugin
itself by performing the required calculations to resize the
suggestions box and truncate items text when needed.
|
|
This function will allow other plugins like LSP to easily access the
partial symbol of the currently active DocView. Also this commit
introduces:
* Documentation of internal data structures used by the plugin for
easier understanding of the code and completion support.
* Documentation of the plublicly exposed functions.
|
|
|
|
Added the ability of overwriting the default config.symbol_pattern and
config.non_word_chars from language files by using the following
properties:
* symbol_pattern
* non_word_chars
* symbol_non_word_chars - used by autocomplete plugin to detect the
starting of a symbol when translating from current cursor position
This change will allow languages like css that support the `-` as part
of a symbol name to define custom symbols pattern and non word
characters for better autocompletion and lsp behavior.
|
|
* Support suggestion symbols scoping
- global: all open documents
- local: current document
- related: all open documents with same syntax
- none: language syntax symbols only
* Register style.syntax[] entries as icons
* Other related fixes
|
|
|
|
|
|
|
|
|
|
* use Doc:remove
|
|
|
|
|
|
|
|
|
|
When a command is performed with parameters, those are now passed to the
predicate.
The predicate can then return, after the validity boolean, any other
value that will then be passed to the actual command.
If the predicate only returns the validity boolean, the original
parameters are passed through to the actual command.
This allows predicates to manipulate the received parameters, and allows
them to pass the result of an expensive computation to the actual
command, which won't have to recalculate it.
String and table predicates will now also return `core.active_view`.
|
|
Before, when a `Doc` had no name, an error was thrown.
|
|
|
|
|
|
which takes a col.
|
|
|
|
Add syntax symbols for auto-complete
|
|
|
|
|
|
|
|
|
|
|
|
configs can be set anywhere, even if we don't know the plugin beforehand.
|
|
|
|
Some (probably lots) of people are used to tabbing through autocomplete.
now, tab is binded to autocomplete:cycle while enter is binded to
autocomplete:complete.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
New plugins should use the version tag:
-- mod-version: 1
The old version tag "-- lite-xl 1.16" will be considerer equivalent
to mod-version 1.
|
|
|
|
|
|
Implemented to avoid excessive memory usage when loading big files with
many unique words.
|
|
`autocomplete.add()` can now be used to add additional auto complete suggestions
with descriptions
|
|
|