When using `doc:move-to-{previous,next}-char` in a selection, we were
moving the cursor to the character before the initial/after the last
character of the selection.
Now we follow what other editors do and move it to just before the
initial/just after the final character.
* Improved performance 67x by not using the tokenizer, this means that
now opening files or saving them where indentation is re-detected
is much more faster.
* Improved the algorithm to detect the space size.
* Do not compete with language_cpp.lua over the .h and .inl files,
these files can contain both cpp and c so we choose the former which
supports both syntaxes.
* Added support for magic and uppercase constants.
* Removed pcall(require, "plugins.language_c") since it doesn't works
as it seems to have been intended.
* Removed duplicate keywords
* Added support for magic and uppercase constants.
* Basically merged most changes from the lite-xl-plugins repo.
This new config flag ignores the plugins version check at startup
which helps a lot when working on new or old plugins that doesn't match
the mod or lite-xl version and you still desire to load them to fix them
by checking with lite-xl it self which errors need to be corrected.
Also some other minor changes:
* fix transition when nagview is closed
* do not draw or update when not visible
* do not process events when not visible
* cleaned a bit the logic on next and show
* fixes#848
When a user modifies and saves the init.lua or a project module file the
reload_customizations() function was performing unnecessary reloading
of core.config and core.style. This resulted on the replacement of config
tables with new tables, breaking all active references been used by
the consumers of this config options. Been redundant this means
that every consumer was using its own copy of a configuration table
different from the one referenced on core.config and user changes not
taking place.
* Fixed some issues with inotify and multiple events at the same time. Seems to be working now.
* Cleaned up and simplified function, and commented, and fixed a number of bugs.
* Simplifying and fixing further.
* Improved performance for skipping large amounts of files.
* Added in extra checks, and changed paths. We should probably unify these path styles.
* Fixed stutter.
* Removed extraneous functions.
* Cleaned up more, added more testing; dealt with multiple sequential events correctly.
Removed dmon, and replaced with logic that works across Linux, Mac, FreeBSD and Windows. Have tested on all platforms, and seems to work.
Co-authored-by: Jan200101 <sentrycraft123@gmail.com>
Before, syntax patterns/regexes that started with `^` didn't have the
desired effect of matching with the start of the line.
Now those patterns are used only when matching the whole line.
* Items are now objects that can be retrieved and manipulated.
* clip rect is used for left and right panes
* initial support for items to do their own custom drawing by also
doing a clip rect for them
* a custom background color can be specified for the item.
* a command or function can be executed on item click.
* Introduced functionality to easily hide or show all or specific items.
* Better handling of deprecated get_items()
* Spacing is automatically added to items and cleaned on deprecated
items.
* Default items where separated and given the names:
doc:file, doc:position, doc:indentation, doc:lines,
doc:line-ending, core.commandview.
* Some default right or left click actions where given to the default
items.
* Started adding required bits to support dragging to left and right
panes when some items aren't visible.
Note: should work well enough already but maybe some repetitive stuff can be
cleaned out.
* Support for predicates by introducing add_item().
* Support for performing click actions on items.
* Support for optional tooltips on item hover.
* Deprecate the usage of get_item().
* Fixed rendering computations for y offset.
* Force monospacing if every ascii character has the same integer advance.
* Added in explanatory comment.
* Fixed issues.
* Made lines less long.
The pattern cannot be tested in advance as it seems that Lua inspect
the pattern only partially, the part that is actually used.
We resort to use pcall to catch any error when using the pattern.
This is needed for example when a selection has both `line1` and `col1`
at 1, and the left arrow is pressed: `line2` and `col2` change, while
`line1` and `col1` don't, but we still want to scroll.
Evolve the rule for directory in ignore_files to be more natural
and easy to understand.
When a final '/' or '/$' is found we consider the pattern to match
a directory and the pattern is not modifed. In turns, is used, before
matching a directory's name a final '/' is appended to its name
before checking if it matches the pattern.
With the previous rule a final '/' in the pattern meant also a directory
but the '/' was removed from the pattern.
When a user's or project's module configuration file is changed we
make sure that the config.plugins fields are all restored so that
all plugins already loaded can continue to work.