Commit Graph
1041 Commits
Author SHA1 Message Date
Guldomanandtakase1121 8c451928bf Ignore keypresses during IME composition (#1573)
Some IMEs continue sending keypresses even during composition, so we 
just ignore them.
2023-10-18 13:14:23 +08:00
Guldomanandtakase1121 a066190ee2 Improve common.serialize (#1640)
* Make `common.serialize` more locale-independent

* Handle inf/nan numbers in `common.serialize`
2023-10-18 13:14:14 +08:00
Guldomanandtakase1121 1ad3b70e9e Mark unsaved named files as dirty (#1598) 2023-10-18 13:14:02 +08:00
Guldomanandtakase1121 316fbbe743 Remove DPI detection for default SCALE
This often leads to `SCALE` values that are way off, and makes Lite XL 
unusable, so we now just default it to 1.
2023-10-16 12:04:37 +08:00
Guldomanandtakase1121 397b61e7c6 Fix returned percent when clicking the Scrollbar track 2023-08-26 08:56:35 +08:00
Takase 890e4882f3 fix(core): defer core:open-log until everything is loaded (#1585)
* fix(core): defer core:open-log until everything is loaded

* docs(core): document why core:open-log is opened in a thread
2023-08-26 08:53:05 +08:00
Takase 09dd111c61 docs(core.contextmenu): add documentation for contextmenu (#1567) 2023-08-26 08:52:29 +08:00
Guldomanandtakase1121 3d93e16597 Normalize strokes in fixed order (#1572)
* Use normalized strokes when removing duplicates only when appropriate

* Use normalized stroke in `keymap.unbind`

* Normalize strokes by sorting the modifiers before the keys

This also sorts the modifiers in a fixed manner, decided by 
`modkeys.keys`.
We need to do this because we display the strokes in a few places like 
the command palette.
2023-08-26 08:52:10 +08:00
Guldomanandtakase1121 86cfbe5f3b Make DocView aware of scrollbars sizes (#1177)
* Make `DocView:scroll_to_make_visible` aware of vertical scrollbar width

* Make `DocView` aware of horizontal scrollbar size
2023-08-19 13:31:37 +08:00
Delta-officialandtakase1121 e62a672d7e Normalize stroke before adding keybind (#1334)
* Normalize stroke before adding keybind

* improve normalization algorithm and implement normalization in several functions

Signed-off-by: delta <darkussdelta@gmail.com>

---------

Signed-off-by: delta <darkussdelta@gmail.com>
2023-08-19 13:31:19 +08:00
Takase 5d0bcc99fa Documentation for core.command (#1564)
* docs(core.command): add documentation

* fix(core.common): fix warnings

* docs(core.command): add "core." prefix to all custom types

* docs(core.command); add name as parameter to command.perform

* docs(core.command): fix typo and wording

* docs(core.command): add disclaimer to command.generate_predicate

* docs(core.command): fix wording for predicate

* docs(core.command): document command name

* docs(core.command): document the always_true predicate
2023-08-19 13:30:45 +08:00
TakaseandGuldoman ad0d280ecc Documentation for core.common (#1510)
* docs(core.common): add and improve documentation

* refactor(core.common): remove unused variable to get_height()

* docs(core.common): remove messy newlines

* docs(core.common): fix wording

* docs(core.common): use integer instead of number

Co-authored-by: Guldoman <giulio.lettieri@gmail.com>

* docs(core.common): update docs

the docs now follow the style in docs/ directory.
some of the changes suggested are also implemented.

* docs(core.common): fix typo

Co-authored-by: Guldoman <giulio.lettieri@gmail.com>

* docs(core.common): restyle annoatations

Extra whitespaces are removed and @overload is used whenever possible.

* docs(core.common): fix various documentation errors

* docs(core.common): simplify unicode description

* docs(core.common): fix return value

Co-authored-by: Guldoman <giulio.lettieri@gmail.com>

* docs(core.common): clarify common.bench for not being a benchmark

* docs(common): add disclaimer for numbers in common.serialize

---------

Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
2023-08-19 13:30:45 +08:00
Guldomanandtakase1121 e9678cc140 Skip checking files if no filename was provided to syntax.get 2023-08-19 13:29:48 +08:00
Luke aka SwissalpSandtakase1121 b5617a3eef Fix #1538 log scrolls automatically (the real PR) (#1546)
* fix #1538 log scrolls automatically

adds:
- when user scrolls, position is kept no matter how many new entries
arrive
- when user scrolls up to last entry, autoscroll is enabled again

does not add buttons to jump up/down
see #1538

* move scroll-test out of on_mouse_wheel

* determine diff_index with loop

* remove check at move_towards yoffset

* use while loop instead of repeat loop

* remove meaningless setter

* remove stray var
2023-08-19 13:29:48 +08:00
Luke aka SwissalpSandtakase1121 bd53bc3718 comment typo in object.lua (#1541) 2023-08-19 13:29:48 +08:00
Guldomanandtakase1121 f1f81c8851 Make Doc:sanitize_position return a more appropriate col (#1469)
If `line` is out of range, return the `col` "closest" to the original
values.
2023-08-19 13:28:14 +08:00
Guldomanandtakase1121 68e9c4670e Revert "core syntax: strip the path from filename on syntax.get (#1168)" (#1322)
* Revert "core syntax: strip the path from filename on syntax.get (#1168)"

This reverts commit af6c4bc152.

The previous behavior was correct and allowed access to the full path for path-dependant syntaxes.

* Use `Doc.abs_filename` to obtain syntax when possible

This allows matching full paths in language syntaxes, but we lose the
possibility of matching the project root.
2023-08-19 13:28:14 +08:00
Guldomanandtakase1121 ff884d7d4a When logging don't use core.status_view if not yet initialized 2023-08-19 13:27:31 +08:00
takase1121 c0b1fe348f feat(bootstrap): return error string from C searcher 2023-08-19 12:45:15 +08:00
Guldomanandtakase1121 97f3159415 Merge carets after doc:move-to-{previous,next}-char (#1462) 2023-08-19 12:43:56 +08:00
vqnandtakase1121 f60228f610 #1393 followup (#1463)
* Fix incorrect check in doc:raw_remove

Restore caret position on command doc:cut

* merge cursors and fix new line in clipboard

* add new line to the last copied line
2023-08-19 12:41:57 +08:00
vqnandtakase1121 12e0634f9c fix cursors positions when deleting multiple selections (#1393)
* correctly handle overlapping selections merge cursors in Doc:raw_remove
2023-08-19 12:39:33 +08:00
Guldomanandtakase1121 6d217204f6 Allow tokenizer to pause and resume in the middle of a line (#1444) 2023-08-19 12:39:22 +08:00
Adamandtakase1121 6deca53303 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-08-19 12:39:22 +08:00
Guldomanandtakase1121 bf35417f82 Don't calculate widths per-uft8-char when not needed (#1409) 2023-08-19 12:38:49 +08:00
Guldomanandtakase1121 95611366bb Use correct view for scrolling to find-replace:repeat-find results (#1400) 2023-08-19 12:38:34 +08:00
vqnandtakase1121 067271bc02 fix incorrect x_offset if opened docs have different tab sizes (#1383) 2023-08-19 12:38:13 +08:00
Guldomanandtakase1121 b0e524dd15 Improve DocView:get_visible_line_range precision (#1382) 2023-08-19 12:37:50 +08:00
Jefferson Gonzálezandtakase1121 70ed171612 NagView: properly rescale on scale change (#1379)
* drop font option since style.font is always used
2023-08-19 12:37:49 +08:00
Jefferson Gonzálezandtakase1121 6925c06599 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-08-19 12:37:29 +08:00
Adamandtakase1121 017711b369 Getting rid of annoying forward slash on windows. (#1345) 2023-08-19 12:30:41 +08:00
Guldomanandtakase1121 bddb5e274d 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-08-19 12:28:48 +08:00
xwiiandtakase1121 38fa9f976c Use table.move to implement common.splice (#1324)
* Use `table.move` to implement `common.splice`

* Disallow negative `remove` in `common.splice`
2023-08-19 12:28:47 +08:00
sammyetteandtakase1121 1984573214 fix: center title and version in emptyview (#1311)
* fix: divide by amount of lines
2023-08-19 12:28:21 +08:00
Guldomanandtakase1121 138cea45d5 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-08-19 12:28:19 +08:00
Daveandtakase1121 0fa0a59c8b Minor typos in init text 2023-08-19 12:28:18 +08:00
Guldoman 74349f8e56 Fix horizontal scroll with touchpad on MacOS 2022-12-28 17:26:57 +01:00
Jefferson GonzálezandGitHub 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
xwiiandGitHub 271a804986 Fix popping subsyntaxes that end consecutively (#1246) 2022-12-27 20:24:52 -04:00
Simon KrauterandGitHub 8603644726 Fix two typos in data/init.lua (#1272) 2022-12-27 19:56:30 -04:00
Martin AshbyandGitHub d4989d98bd Add example settings to _overwrite_ an existing key binding (#1270) 2022-12-27 18:40:22 -05:00
sammyetteandGitHub 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
GuldomanandGitHub 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álezandGitHub 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 SkrapitsandGitHub 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
GuldomanandGitHub 9d48441685 Add regex.find_offsets, regex.find, improve regex.match (#1232)
`regex.match` now behaves like `string.match`.
This required changes in the `tokenizer` and in the `detectindent` 
plugin.
2022-12-11 22:25:42 -04:00
sammyetteandGitHub e13f265fac feat: alert user via nagview if file cannot be saved (#1230)
* feat: alert user via nagview if file cannot be saved
it will prompt the user to choose whether they
want to save to another location and perform
the save as command
* refactor: change defer draw call to thread
* feat: log error when attempting to save doc
2022-12-11 21:38:58 -04:00
sammyandGitHub dfa2f93d9c feat: encode home in statusview file path (#1224) 2022-12-06 06:19:52 -04:00
GuldomanandGitHub f7ad8753eb Improve regex.gsub performance (#1220) 2022-12-02 19:21:05 -05:00
jgmdev 0373d29f99 statusview: respect right padding of item tooltip
When the tooltip was rendered on the last item of right items the right
padding was not properly getting accounted as part of the tooltip width.

This commit also fixes:

* Passing StatusView to item.get_item() instead of StatusView.item
* Some adjustments to annotations.
2022-11-24 12:34:49 -04:00