Commit Graph
100 Commits
Author SHA1 Message Date
jgmdev b9bb64a2f0 Merge branch 'master' into master-2.1 2022-05-22 22:26:47 -04:00
jgmdev 26e47f7583 plugin contextmenu: simplify predicate 2022-05-15 17:17:28 -04:00
Jefferson GonzálezandGitHub ac1d15f235 Merge pull request #990 from jgmdev/PR/allow-strict-predicate
command predicates: added support for strict matching
2022-05-15 16:23:34 -04:00
jgmdev 4d3e8d8bd0 command predicates: added support for strict matching by appending '!' on string predicates 2022-05-15 16:10:57 -04:00
Jefferson GonzálezandGitHub 0a66163c10 Merge pull request #987 from jgmdev/PR/fix-object-is-add-extends
object: made is() stricter and added extends()
2022-05-15 15:32:01 -04:00
Jefferson GonzálezandGitHub 28346f13d9 Merge pull request #984 from jgmdev/PR/tokenizer-fix-utf8-bug
tokenizer: fix next utf8 char retrieval bug
2022-05-15 15:28:42 -04:00
Jefferson GonzálezandGitHub 2b9f58b4f6 Merge pull request #982 from jgmdev/PR/keymap-changes
keymap: changes and docs
2022-05-15 15:27:58 -04:00
Jefferson GonzálezandGitHub 425b85a536 Merge pull request #979 from jgmdev/PR/install-docs
meson: install docs/api to datadir for lsp support
2022-05-15 15:27:33 -04:00
Jefferson GonzálezandGitHub f89b370369 Merge pull request #988 from jgmdev/PR/adjust-renderer-api-doc
docs: added font.group to renderer and other adjustments
2022-05-14 20:35:17 -04:00
jgmdev 8bda5d4198 docs: added font.group to renderer and other adjustments 2022-05-14 20:16:59 -04:00
jgmdev 94430bcbd2 tokenizer: fix next utf8 char retrieval bug 2022-05-13 11:21:46 -04:00
jgmdev 59d91087e9 adjust and consolidate duplicated predicate code 2022-05-12 22:15:29 -04:00
jgmdev b8ed4a43f6 keymap: changes and docs
* Prevent adding duplicate bindings
* Clean reverse_map on overwrite or add direct
* Added get_bindings to complement get_binding
* Added doc comments for easier comprehension
* Check if command is function on add_direct
2022-05-12 21:16:02 -04:00
jgmdev fd0a433f59 object: made is() stricter and added extends()
Currently some plugins had/have issues with predicates that check
if active view is a docview to perform certain operations like draw
in the case of minimap or lineguide. Since is() was checking the
entire inheritance tree it was returning true for views that inherit
from the same parent, which caused CommandView to be matched along
DocView, etc... This change does the following to solve the issue:

* Make Object:is() only match the top level parent of the object which
  is more in line with what one would expect from a method named 'is'.
* Introduces Object:extends() which keeps the same functionality that
  Object:is() offered before.
2022-05-12 20:33:01 -04:00
Jefferson GonzálezandGitHub e747dce7fe Merge pull request #986 from jgmdev/PR/doc-upper-lower-utf8
Add utf8 support on doc lower and upper commands
2022-05-12 18:56:13 -04:00
Jefferson GonzálezandGitHub 2a009186cf Merge pull request #961 from Guldoman/PR_fix_doc_replace_results
Manage return values from "replacer" function in `Doc:replace`
2022-05-12 18:51:31 -04:00
jgmdev 1d1b3e0a09 Add utf8 support on doc lower and upper commands 2022-05-12 18:33:56 -04:00
Jefferson GonzálezandGitHub 0665da49ae Merge pull request #983 from jgmdev/PR/utf8-fix-conflicts
c core: fix extra utf8 build conflict on windows
2022-05-12 11:39:44 -04:00
jgmdev 359880e963 c core: fix extra utf8 build conflict on windows 2022-05-11 00:22:01 -04:00
jgmdev 93be54e9c3 meson: install docs/api to datadir for lsp support 2022-05-05 13:02:34 -04:00
Jefferson GonzálezandGitHub 2c968073e4 Merge pull request #972 from Guldoman/PR_pretty_serialize
Add pretty printing to `common.serialize`
2022-05-05 01:35:04 -04:00
Jefferson GonzálezandGitHub 308431d32a Merge pull request #971 from jgmdev/PR/core-private-to-public
core: expose rescan_project_directories and configure_borderless_window
2022-05-05 01:34:32 -04:00
jgmdev b5fe333345 core: expose rescan_project_directories and configure_borderless_window 2022-05-02 13:55:25 -04:00
Jefferson GonzálezandGitHub e572c58f24 Add utf8 support to tokenizer (#945)
* add utf8 support to tokenizer

* wrap utf8 functions in string table using a 'u' prefix

* document new utf8 functions
2022-04-26 09:42:02 -04:00
Jefferson GonzálezandGitHub c0970f41c0 Merge pull request #916 from Guldoman/PR_enhanced_scrollbar
Enhance scrollbar
2022-04-14 13:42:18 -04:00
jgmdev 23bd21a191 language_md: remove extra empty line 2022-03-30 09:30:55 -04:00
Jefferson GonzálezandGitHub 693bf2cf29 Merge pull request #907 from jgmdev/PR/less-hacky-tokenizer-fix
syntax: remove pattern re-ordering on optimization
2022-03-29 22:26:50 -04:00
jgmdev b0c005a5ac syntax: remove pattern re-ordering on optimization
* Introduces a flag that syntax writers can turn off named
  space_handling, turning it off means that your syntax will take care
  of handling the excessive amount of spaces that can slow down the
  tokenizer.
* Adds another pattern at the end of every single table that also
  improves tokenizer performance by matching words that weren't match by
  any of the synxtax patterns.
* Modifies language_md to turn off the provided space_handling and do its
  own since it has rules that require a space at the beginning, also
  handles long consecutives amount of dashes used in tables that degrade
  performance.
* This changes where discussed in collaboration with @Guldoman and
  @takase1121 thanks to all!
2022-03-29 22:11:14 -04:00
Jefferson GonzálezandGitHub 7372d2f82d Merge pull request #906 from jgmdev/PR/temp-file-other-dir
core: fixes and changes to temp files
2022-03-29 16:33:08 -04:00
Jefferson GonzálezandGitHub aca1cd6b6b Merge pull request #892 from jgmdev/PR/status-view-move-item
statusview: added functions for easy custom item ordering
2022-03-29 16:25:31 -04:00
Jefferson GonzálezandGitHub 61ad6b052e Merge pull request #895 from jgmdev/PR/c-cpp-fixes-improvements
language_c/cpp: fixes and improvements
2022-03-29 16:20:22 -04:00
jgmdev e74761da95 language_c/cpp: fixes and improvements
* support colorization of function and variables type declarations
* support the macro concatenation operator ##
* support what seems to be new cpp number notation format #'###
* improved uppercase constants matching
2022-03-29 16:16:12 -04:00
Jefferson GonzálezandGitHub fac54d2ff4 Merge pull request #904 from jgmdev/PR/fix-syntax-optimization
syntax: fix conflicts introduced with #896
2022-03-29 15:44:19 -04:00
Jefferson GonzálezandGitHub 29968b6f35 Merge pull request #905 from jgmdev/PR/md-add-parenthesis-bullet
language_md: parenthesis support to numbered bullets
2022-03-29 15:41:54 -04:00
jgmdev ca37644aa9 core: fixes and changes to temp files
* fix delete_temp_files() deleting in EXEDIR but temp_filename() was
  creating temp files in USERDIR
* make delete_temp_files() public so it can be used by plugins
* add optional `dir` parameter to both delete_temp_files() and
  temp_filename() to allow specifying a different directory, this is
  for example useful when generting markdown previews, the temp file
  should be generated in the project dir in case the readme references
  images that are relative to it, so the web browser can find them.
2022-03-28 22:36:49 -04:00
jgmdev 5f9d45895d language_md: parenthesis support to numbered bullets 2022-03-28 21:03:59 -04:00
jgmdev e862fe9052 syntax: fix conflicts introduced with #896
* mainly the language_md got affected which has some exotic rules
* some other languages are also using spaces at start of pattern
  and even if not affected this change tackles that
2022-03-28 20:51:09 -04:00
Jefferson GonzálezandGitHub 951f0913da syntax: add pattern to boost tokenizer performance (#896) 2022-03-25 11:25:32 -04:00
Jefferson GonzálezandGitHub a2d5a7a904 Merge pull request #894 from adamharrison/fix-anonymous-syntaxes
Fixed anonymous syntaxes.
2022-03-22 22:06:25 -04:00
jgmdev c82d6b08d9 statusview: added functions for easy custom item ordering 2022-03-21 18:40:14 -04:00
jgmdev bbac4d1560 treeview: add proper predicate for delete command 2022-03-20 01:58:39 -04:00
jgmdev c3bcf68851 treeview: use root_view:get_primary_node().active_view for focus. 2022-03-20 01:05:07 -04:00
jgmdev f0cc973e38 treeview: also handle focus change from mouse and then commandview 2022-03-20 00:53:13 -04:00
Jefferson GonzálezandGitHub ad25216de7 Merge pull request #890 from Guldoman/PR_treeview_fix_scroll
Fix `TreeView` scroll via scrollbar
2022-03-20 00:31:26 -04:00
Jefferson GonzálezandGitHub 331c78faac Merge pull request #889 from Guldoman/PR_move_to_selection
Move cursor to the beginning/end of its selection
2022-03-20 00:22:00 -04:00
jgmdev b741c204db treeview: better handle previous view when focus/unfocus from CommandView 2022-03-19 23:10:26 -04:00
jgmdev 3ffabced62 treeview: move delete command to proper predicate 2022-03-19 22:33:41 -04:00
Jefferson GonzálezandGitHub b5ead3992e Merge pull request #888 from Guldoman/PR_treeview_collapse_to_parent
Make `treeview:collapse` select parent if current item can't collapse
2022-03-18 18:01:44 -04:00
jgmdev a7fc7b4408 treeview: fix crash on tooltip.x been nil 2022-03-18 06:02:48 -04:00
Jefferson GonzálezandGitHub 30de42f4ab Merge pull request #755 from Jipok/draw_tab_rework
rootview.lua: Refactor Node:draw_tab
2022-03-18 05:05:55 -04:00
jgmdev e8427ae168 treeview: fixed github merging error 2022-03-18 04:23:32 -04:00
Jefferson GonzálezandGitHub 5a63f6dc2e Merge pull request #770 from takase1121/treeview-initial-size
add option for treeview initial size
2022-03-18 04:18:56 -04:00
jgmdev 02f6dcc07d treeview: added @AlexSol suggestions
* suggestions included collapse, expand and focus
* also added missing common.merge
* some other minor fixes
2022-03-18 03:57:14 -04:00
Jefferson GonzálezandGitHub 0e323f4a35 Merge pull request #886 from adamharrison/fix-left-click-issues
Fixed a bunch of problems relating to multicursor.
2022-03-17 21:00:51 -04:00
Jefferson GonzálezandGitHub 1f468fca24 Merge pull request #883 from jgmdev/detectindent-improvements
plugin detectident: fixes and improvements
2022-03-17 18:29:46 -04:00
jgmdev 5830b7d9f0 plugin detectindent: pre-compile regexes 2022-03-17 00:14:36 -04:00
Jefferson GonzálezandGitHub 20763ed7ff Merge pull request #864 from jgmdev/markdown-adjustments
language_md: removed scale adjustment code
2022-03-15 22:14:34 -04:00
jgmdev dcbebef2ab plugin detectident: fixes and improvements
* 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.
2022-03-15 21:17:15 -04:00
jgmdev 2ce4dbc8ef language_md: some more improvements
* handle images with links
* handle escaping of * and `
* support coloring a heading custom id
* reverted from regex to lua patterns
2022-03-13 14:43:50 -04:00
Jefferson GonzálezandGitHub 17017b63ae Merge pull request #875 from jgmdev/language-c-cpp-improvements
Languages c and cpp improvements
2022-03-11 17:44:17 -04:00
Jefferson GonzálezandGitHub 1725a48ce2 Merge pull request #879 from jgmdev/plugins-skip-version
config: added skip_plugins_version
2022-03-11 17:30:36 -04:00
Jefferson GonzálezandGitHub d0d0028472 Merge pull request #877 from jgmdev/statusview-commands
StatusView: added ability to hide and commands
2022-03-11 17:26:02 -04:00
jgmdev 620b669517 statusview: added ability to hide and commands
Also fixed the right panel not been draggable.
2022-03-11 17:23:16 -04:00
Jefferson GonzálezandGitHub 46795972f0 Merge pull request #876 from jgmdev/nagview-scroll
nagview: support vscroll when message is too long
2022-03-11 17:11:38 -04:00
jgmdev b880aa42f9 language_c: fixes and improvements
* 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.
2022-03-11 17:05:08 -04:00
jgmdev 4b0531cdfc language_cpp: improvements and fixes
* 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.
2022-03-11 17:02:42 -04:00
jgmdev d9909cf4ea config: added skip_plugins_version
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.
2022-03-10 22:29:33 -04:00
jgmdev 0aa53a0e7f nagview: support vscroll when message is too long
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
2022-03-10 06:57:16 -04:00
Jefferson GonzálezandGitHub e08353ea08 Merge pull request #873 from jgmdev/user-and-project-reload-fix
Fix config overwritten on user/project modules save
2022-03-09 19:40:35 -04:00
jgmdev eeb2b28a03 config overwritten on user/project modules save
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.
2022-03-09 02:15:01 -04:00
Jefferson GonzálezandGitHub 52a47e0d73 Merge pull request #870 from lite-xl/treeview-fix
plugin treeview: skip rootview events if not visible.
2022-03-07 18:50:36 -04:00
Jefferson GonzálezandGitHub 8a31a2b169 Merge pull request #871 from Guldoman/fix_bad_clip_draw_text
Always check if the beginning of the text needs to be clipped
2022-03-07 18:49:14 -04:00
jgmdev 48e86bb117 plugin treeview: skip rootview events if not visible. 2022-03-07 16:52:32 -04:00
Jefferson GonzálezandGitHub 6386bac4e5 Merge pull request #869 from jgmdev/fix-loading-order
Initialization: load core views before user plugins
2022-03-06 21:22:53 -04:00
jgmdev 9d4e475a2c init: also load default nodes and commands before user plugins and project module. 2022-03-06 21:21:00 -04:00
jgmdev d7d88a2037 init: load core views before user plugins 2022-03-06 21:03:16 -04:00
Jefferson GonzálezandGitHub 1be425d1de Merge pull request #867 from Guldoman/fix_load_project_module
Load project module on startup
2022-03-06 21:02:22 -04:00
jgmdev 6cb403b450 meson: increased min version to 0.47 and added check flag on run_command. 2022-03-05 20:15:48 -04:00
Jefferson GonzálezandGitHub d82b668a09 Merge pull request #863 from jgmdev/scale-fix
plugin scale: replace non existing font.set_size with font.copy
2022-03-05 20:03:05 -04:00
jgmdev c4f7380a95 language_md: removed scale adjustment code that was needed because of a bug on scale plugin. 2022-03-05 19:13:24 -04:00
jgmdev e5ca08e13f plugin scale: replace non existing font.set_size with font.copy 2022-03-05 19:03:33 -04:00
Jefferson GonzálezandGitHub 1fa1960b05 Merge pull request #862 from jgmdev/markdown-consolidation
language_md: improvements consolidating #814 and #840 thanks to @Not-a-web-Developer and @TorchedSammy
2022-03-04 14:58:25 -04:00
jgmdev 2d3d9a1671 language_md: improvements consolidating #814 and #840 2022-03-04 14:29:29 -04:00
Jefferson GonzálezandGitHub 0e79607895 Merge pull request #859 from jgmdev/commit-on-version
Add git commit on version of devel builds
2022-03-04 14:18:36 -04:00
Jefferson GonzálezandGitHub 2f7da44275 Merge pull request #860 from Guldoman/tokenizer_start_of_line
Allow syntax patterns to match with the beginning of the line
2022-03-04 14:13:14 -04:00
Jefferson GonzálezandGitHub 2736072dce Merge pull request #858 from Guldoman/move_towards_epsilon
Use epsilon to compare values in `View:move_towards`
2022-03-03 15:21:25 -04:00
jgmdev a587182982 meson: when running git rev-parse use HEAD instead of checking current branch name 2022-03-02 18:55:46 -04:00
jgmdev 1e765b5c28 EmptyView: handle lite-xl version strings that overlap. 2022-03-02 03:55:03 -04:00
jgmdev 05e355d383 meson: append git commit if possible and to non release builds 2022-03-02 03:53:04 -04:00
Jefferson GonzálezandGitHub be5f94e913 Merge pull request #852 from jgmdev/statusview-enhacements
Improvements to the StatusView, closes #677
2022-02-28 18:19:46 -04:00
jgmdev e9775ced78 StatusView: added items hovered option for bg color and param to on_draw as suggested by @Guldoman 2022-02-28 17:56:17 -04:00
jgmdev 4c80aa7a40 StatusView: reposition left and right panel offsets on window resize. 2022-02-28 17:04:37 -04:00
jgmdev 15a31418ca StatusView: restored indent confirmed 2022-02-24 14:22:52 -04:00
jgmdev 128e10ba47 StatusView: add spaces as separate items instead of pre-pending them to items. 2022-02-24 13:58:40 -04:00
jgmdev 131bdf9fb2 StatusView: implemented and applied get_item_visible_area. 2022-02-24 02:23:29 -04:00
jgmdev b1ce685489 StatusView: better calculate panel sizes and handle out of bounds drags. 2022-02-24 00:21:21 -04:00
jgmdev c5648e1f02 StatusView: implemented dragging and scrolling. 2022-02-23 19:25:25 -04:00
jgmdev 3452d499e5 Show hand cursor on clickable elements as suggested by @Guldoman 2022-02-23 06:07:53 -04:00
jgmdev 90983b22a4 StatusView v2.0, some changes include:
* 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.
2022-02-23 05:15:14 -04:00
jgmdev 7cb4e93d14 Improvements to the StatusView
* 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().
2022-02-21 03:40:25 -04:00