Commit Graph

1327 Commits

Author SHA1 Message Date
Adam a0de8ea81d
Added in support for foreground and background events. (#1395) 2023-04-07 12:58:56 -04:00
vqn 45e0454a3b
add autocompletion to multicursor (#1394)
* use Doc:remove
2023-04-07 12:54:52 -04:00
vqn f3cfb90ccf
fix cursors positions when deleting multiple selections (#1393)
* correctly handle overlapping selections merge cursors in Doc:raw_remove
2023-04-07 12:54:00 -04:00
Adam 1a0d3a4a03
Added in explicit touchscreen keyboard support. (#1389) 2023-04-07 12:42:46 -04:00
Guldoman 86fa90a76b
Allow `tokenizer` to pause and resume in the middle of a line (#1444) 2023-04-01 12:12:39 -04:00
Adam dc2ae6dd9c
Disable `trimwhitespace` and `drawwhitespace` via their configs (#1446)
Instead of completely disabling them, we now use their internal toggle.

Also moved `drawwhitespace` commands inside the plugin.

---

* Fixed bug where commands would show even when plugin was disbled. Also removed antiquated way of disabling.

* Fixed typos.

* Also moved trimwhitespace out of config, if it already has a default enabled value of false.

* Changed documentation.

* Clarified comments.
2023-03-29 01:57:24 +02:00
Guldoman e8c317494a
Limit `core.threads` without a timeout to run 30 times per second 2023-03-29 00:33:29 +02:00
Adam Harrison 3306fc99c1 Made things clearer, as per jgm's suggestion. 2023-03-28 14:17:30 -04:00
Adam 2cae7c51a5
Made coroutines make more sense, and fixed a bug. (#1381)
* Made coroutines make more sense, and fixed a bug.

* Fixed typo.

* Additional checking for off-cycles.

* Fixed issue with calling step too much.

* If we have no redraw, set next step time for next frame.

* Added in `now` variables to reduce calls.
2023-03-28 12:57:47 -04:00
Guldoman c92d7dc239
Don't calculate widths per-uft8-char when not needed (#1409) 2023-03-28 01:17:11 +02:00
Guldoman d15108309c
Make `TreeView` follow the current tab (#1411)
* Make `TreeView` follow the current tab

* Use `TreeView:toggle_expand` in `TreeView:set_selection_to_path`

We can't use `item.expanded` directly because we need to update the 
cached tree structure.
2023-03-16 17:29:33 -04:00
Guldoman 1ec3d28ff6
Use correct view for scrolling to `find-replace:repeat-find` results (#1400) 2023-03-03 11:42:31 +01:00
Adam 2035886fcd
Added in ability to specify prefix via env variable. (#1388) 2023-02-15 21:48:09 -04:00
vqn a07a4e3706
fix incorrect x_offset if opened docs have different tab sizes (#1383) 2023-02-09 13:26:32 -04:00
Guldoman 195520ea12
Make tab scrolling more flexible (#1384)
* Add `Object:{is_class_of,is_extended_by}` to check inverse relationships

* Make tab scrolling more flexible

This adds tab scrolling commands and connects them to mouse scroll
events.
This way scrolling behavior can be customized more easily.

For example an alternative behavior could be:
```lua
keymap.add({
  ["wheelup"] = "root:switch-to-hovered-previous-tab",
  ["wheeldown"] = "root:switch-to-hovered-next-tab"
})
```
2023-02-09 12:51:41 -04:00
jgmdev 02a99b17fe Correct the inverted tabs scrolling 2023-02-06 15:44:19 -04:00
Eric Gaudet a2acc6d770
Make mouse scrollwheel hovering tabs scroll the tab bar (#1314) 2023-02-06 15:40:04 -04:00
Guldoman 841a456106
Allow groups to be used in end delimiter patterns in tokenizer (#1317)
* Allow empty groups as first match in tokenizer
* Avoid pushing tokens with empty strings
* Allow groups to be used in end delimiter in tokenizer
* Use the first entry of the type table for the middle part of a subsyntax
This applies to delimited matches with a table for `type` and without a 
`syntax` field.
* Match only once if using `at_start` in tokenizer `find_text`
* Check if match is escaped in the "close" case too
Also allow continuing matching if the match was escaped.
2023-02-06 15:24:40 -04:00
Guldoman c6d269d35e
Improve `DocView:get_visible_line_range` precision (#1382) 2023-02-06 14:03:29 -04:00
Jefferson González 0495ac28a6
plugins scale: also rescale style.expanded_scrollbar_size (#1380) 2023-02-06 13:40:12 -04:00
Jefferson González d784133777
NagView: properly rescale on scale change (#1379)
* drop font option since style.font is always used
2023-02-06 13:38:00 -04:00
Jefferson González e800a5de3c
Restore in-selection replace as discussed in #1331 (#1368) 2023-02-06 13:34:59 -04:00
Jefferson González 5b2538e856
Improved plugins config table handling (#1356)
* Warns user if trying to disable a plugin that is already
  enabled when doing `config.plugins.plugin_name = false` and also
  prevents replacing the current plugin config table with the false
  value to mitigate runtime issues.
* Uses a merge strategy by default when assigning a table to a plugin
  config to prevent a user from removing a plugin default config values
  as experienced and explained on this issue lite-xl-plugins#158
* This change is basically backwards compatible, but will require a
  change on the settings ui plugin on how it checks for already
  enabled plugins, since rawget will no longer be a working hack
  or workaround for this.
* As suggested by Adam dropped loaded key and switched to package.loaded
2023-02-06 13:32:44 -04:00
Guldoman 2e02aede7c
Make mod-version follow semver (#1036)
* Make mod-version follow semver
  Now plugins can optionally specify the minor and patch version they 
support.
  If no minor or patch version is specified, it's considered 0.
  Plugins are only loaded if they have the same major version and a 
  smaller or equal minor+patch version.
* Add modversion to logging and plugin mismatch nagview

---------

Co-authored-by: Jefferson González <jgmdev@gmail.com>
2023-02-01 20:28:21 -04:00
vqn d207adc230
Context menu fixes and keyboard navigation (#1338)
* fix Doc contextmenu not registering commands if scale plugin is not found
* fix TreeView contextmenu commands not working if the mouse hovers DocView
* add keyboard navigation to TreeView contextmenu
* fix incorrect contextmenu predicate
2023-01-30 13:36:17 -04:00
Himura Kazuto 0a0754d1c3
Replace globally when replacing from selection (#1331) 2023-01-30 13:00:48 -04:00
sammyette 719540e73d
feat: add option to only draw whitespace if it is within selection (#1312)
* refactor: remove sort_positions usage
* refactor: move draw conditional to has_any_selection and other changes
  - snake case (sssss)
  - break after finding selection
* fix: typo of config plugins
* fix: do check for show selected only properly
* feat: only draw within selection per substitution
* `drawwhitespace`: Make `show_selected_only` work properly

---------

Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
2023-01-30 12:43:26 -04:00
Adam ad272fce53
Abstracted open_doc out to allow for more easy overriding. (#1344) 2023-01-30 12:12:44 -04:00
Adam 813b8b278b
Getting rid of annoying forward slash on windows. (#1345) 2023-01-30 12:10:11 -04:00
Adam aa627d4023
Added in Config Postload (#1336)
* Added in an `onload` variable to configs which is called by the plugin loader.

* Used appropriate parameter.

* Fixed tabbing.
2023-01-19 10:14:45 -05:00
Guldoman 9308dfdd66
Avoid drawing hidden text in `DocView:draw_line_text` (#1298)
* Stop drawing text past the `DocView` edge in `DocView:draw_line_text`

* Don't add draw commands if they fall outside the latest clip

The check was previously done with the window rect, so this will reduce 
a bit more the number of commands sent.
2023-01-18 22:15:26 -05:00
xwii 6e04a4f970
Use `table.move` to implement `common.splice` (#1324)
* Use `table.move` to implement `common.splice`

* Disallow negative `remove` in `common.splice`
2023-01-13 19:33:13 +01:00
Merlin Volkmer 673c564e09
language_md: add nix code block highlighting (#1323) 2023-01-12 15:12:55 +01:00
sammyette 1504ad7f4c
fix: center title and version in emptyview (#1311)
* fix: divide by amount of lines
2023-01-06 15:27:05 -04:00
Guldoman 385ee69f94
`linewrapping`: Disable horizontal scrolling when enabled (#1309) 2023-01-05 16:02:12 -05:00
Guldoman 72c0ad768e
Make `dirwatch` sorting compatible with what `file_bisect` expects (#1300)
The result of `a.filename < b.filename` is sometimes different from 
`system.path_compare(a.filename, a.type, b.filename, b.type)` which 
causes issues to `file_bisect`, as it expects the sorting to be done 
with `system.path_compare`.
2023-01-05 15:59:15 -05:00
Dave 4e272c33de Minor typos in init text 2022-12-30 13:32:20 +01:00
Guldoman 74349f8e56
Fix horizontal scroll with touchpad on MacOS 2022-12-28 17:26:57 +01:00
Jefferson González 870d685b59
contextmenu: adjust y positioning if less than zero (#1268)
* use clamp for both x and y coords
2022-12-28 02:51:24 -04:00
xwii 271a804986
Fix popping subsyntaxes that end consecutively (#1246) 2022-12-27 20:24:52 -04:00
Simon Krauter 8603644726
Fix two typos in data/init.lua (#1272) 2022-12-27 19:56:30 -04:00
Martin Ashby d4989d98bd
Add example settings to _overwrite_ an existing key binding (#1270) 2022-12-27 18:40:22 -05:00
Guldoman 18e3542be0
Allow `TreeView` file operation commands when focused (#1256)
Impacts `treeview:{rename,new-file,new-folder,open-in-system}`.
Previously those were only available when the mouse was over the 
`TreeView`.
They now use the same predicate as `treeview:delete`.
2022-12-26 13:41:14 -04:00
Guldoman 97bfe503a0
`detectindent`: Limit subsyntax depth (#1253) 2022-12-20 22:28:29 -04:00
sammyette 1810db0705
fix: move tab scroll buttons to remove spacing before 1st tab (#1231)
* fix: move tab scroll buttons to remove spacing before 1st tab
* fix: always show tab scroll buttons
* fix: cleanup code, get scroll button rect for correct button
* fix: expand to full size for tabs if scroll buttons arent visible
* fix: define n as visible tabs number
2022-12-20 22:06:53 -04:00
Guldoman c42f01ed1f
Improve IME location updates (#1170)
* Avoid updating IME input rect if it hasn't changed
* Update the IME input rect even when the composition didn't change
* Apply IME input blocking workaround to non-Linux only
2022-12-20 20:11:13 -04:00
Jefferson González 902539b97a
trimwhitespace: expose functionality and extra features (#1238) 2022-12-20 18:13:56 -04:00
Guldoman 213dc7142e
`toolbarview`: Remove tooltip when hidden (#1251) 2022-12-20 18:07:29 -04:00
Jefferson González 3c64c32379
core: ported regex.gsub to faster native version (#1233)
* added regex.gmatch iterator and other fixes
* fixed issues reported by Guldoman
* push strings with fixed len just in case for binary safety
* added limit to regex.gsub and use pushinteger
* added description to regex.gsub limits param
* replaced substitutions regex description for correctness
* ignore negative limits on regex.gsub
2022-12-20 17:46:37 -04:00
Cyriaque Skrapits 5b5b5fd3e3
contextmenu: make divider less aggressive (#1228)
Following changes are applied:
- use divider color instead of caret;
- add a vertical padding on the divider.
2022-12-20 17:29:53 -04:00