Commit Graph

1370 Commits

Author SHA1 Message Date
Guldoman b4e95b865c
Make `linewrapping` consider the expanded `Scrollbar` size
This avoids reflowing the text when hovering the scrollbar.
2023-09-07 04:07:52 +02:00
Guldoman 7e44162101
Fix `Scrollbar.{expanded,contracted}_size` documentation 2023-09-07 04:07:52 +02:00
Robert Hildebrandt 185b9cb080
Fixed C++14 digit separators (#1593) 2023-09-07 01:54:52 +02:00
Takase ac5c65c521
docs(core.config): add documentation for config options (#1512)
* docs(core.config): add documentation for config options

* docs(core.config): remove wrong newline

* docs(core.config): remove trailing whitespace

* docs(core.config): add missing whitespace

* docs(core.config): add disclaimer for core.file_size_limit

* docs(core.config): fix wrong description of the pattern

* docs(core.config): fix wrong description

* docs(core.config): fix wrong description for transitions

* docs(core.config): guide user to drawwhitespace plugin

* docs(core.config): clarify libdecor usage

* docs(core.config): clarify various things

* docs(core.config): clarify more about libdecor support

* docs(core.config): fix missing enum separator

* docs(core.config): remove wayland-specific advice on config.borderless
2023-08-26 11:32:39 -04:00
sammyette 5f68e8b7a9
feat(statusview): make a separate item for doc position percent (#1579)
* feat(statusview): make a separate item for doc position percent

* chore: remove unused variable

* fix(statusview): remove command for percent doc item

* fix(statusview): change doc percent tooltip

* fix(statusview): change percent tooltip message
2023-08-26 11:19:12 -04:00
Jefferson González 215b8daef7
Autocomplete plugin improvements (#1519)
* Add icons support to autocomplete plugin

* Removed redundant flag check

* Added support for non syntax colors

* Assert if color name not in style.syntax

* Autocomplete plugin improvements

* 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
2023-08-26 10:50:48 -04:00
Guldoman 3f28557aeb
Add `NaN` guard to `View:update_scrollbar` 2023-08-26 05:11:33 +02:00
Adam cb66d5b9e7
Adds super as a modkey. (#1590)
* Adds super as a modkey.

* Added in super designation for windows.
2023-08-25 14:34:51 -04:00
Guldoman 671c8976df
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-25 14:03:23 -04:00
Takase cb667af756
docs(core.contextmenu): add documentation for contextmenu (#1567) 2023-08-24 22:32:07 -04:00
Guldoman 0dc6043dc7
Fix returned `percent` when clicking the `Scrollbar` `track` 2023-08-23 19:07:52 +02:00
Guldoman d1c3fc0f1c
Fix `scrollbar` misinterpreting `percent` (#1587) 2023-08-20 10:28:49 -04:00
Takase 6d090625f8
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-18 09:25:10 -04:00
Guldoman 22544b6814
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-04 10:56:49 -04:00
Guldoman e468545bf1
Use proper timeouts for coroutines that don't need to wait (#1467) 2023-08-04 09:40:02 -04:00
Delta-official bfc4892c98
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-04 09:38:33 -04:00
Adam 43c73ca298
Fixed things for when a thread requests a redraw. (#1570)
* Fixed things for when a thread requests a redraw.

* @guldoman's changes.

* Whoops.
2023-08-01 21:38:24 +02:00
Takase 7955fa1d36
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-07-27 13:04:44 +02:00
Takase 7b330ae81b
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-07-22 21:39:32 +02:00
Adam 82fa9bc363
Updated extension for mac. (#1563) 2023-07-20 03:06:18 +02:00
Guldoman 96d6d9acac
Return state when tokenizing plaintext syntaxes 2023-07-09 18:59:25 +02:00
Guldoman 2767ac3718
Skip checking `files` if no filename was provided to `syntax.get` 2023-07-03 22:39:54 +02:00
Luke aka SwissalpS cfcd8af373
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-06-28 03:05:03 +02:00
Luke aka SwissalpS cf028c510a
comment typo in object.lua (#1541) 2023-06-25 04:09:27 +02:00
Jan 0075b060c8
Add top tab margins (#1479)
adapted from #810 to allow styles to decide upon the top margin of the tab list
2023-06-09 09:44:20 -04:00
Guldoman daaf247ad9
Show cursor at the start of the next line when selecting full lines (#761)
This was the previous behavior that regressed with the keymap clicks.

This also better shows that the selection extends to the next line.
2023-06-09 09:37:08 -04:00
Guldoman 595196f4fa
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-06-09 09:34:34 -04:00
Guldoman a5e3d9757e
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-06-09 09:31:59 -04:00
Guldoman 96251bdbfa
When logging don't use `core.status_view` if not yet initialized 2023-06-09 03:50:34 +02:00
Guldoman bc2f22e9e7
Mark `linewrapping` `open_files` table as weak
We weren't correctly garbage-collecting `Doc`s, so we had `Highlighter`s 
stay alive over their due time.
2023-05-24 04:23:27 +02:00
Guldoman d8581c9b3f
Add mouse grab (#1501)
* Add mouse grab

We now also send mouse movement events only to the interested view.

* Add deprecation messages handler

* Make various `View`s respect `on_mouse_left`

* `StatusView`
* `TitleView`
* `TreeView`
* `ToolbarView`

* Fix scrollbar in `TreeView` not updating

We were in some cases sending outdated mouse positions to the scrollbar, 
which made it think that the mouse was hovering it.

This also updates the hovered item more responsively during scroll.
2023-05-20 13:54:58 -04:00
Jefferson González 57474facc6
Move lineguide below blinking cursor, fixes #1488 (#1511)
* Move lineguide below blinking cursor, fixes #1488

* Added config_spec custom color
2023-05-17 16:14:28 +02:00
Jefferson González 7a218f3181
detectindent: fix wrong detection reported by Adam (#1500)
* The comment patterns had to come before the string ones
* The smallest indentation size is now taken into consideration even if
  it only occurs once, we just make sure its size is more than 1 space.
2023-05-09 13:51:20 -04:00
Adam a818183e9f
Allowed for overrides of toolbar items, so plugins can add things if they want to with different fonts. (#1157) 2023-05-06 21:36:30 -04:00
Guldoman ac5683ba93
Restore horizontal scroll position after scale change (#494)
* Restore horizontal scroll position after scale change

* Consider `View` horizontal size when restoring horizontal scroll

This is needed because `View:get_h_scrollable_size` includes the 
horizontal size, while `View.scroll.x` doesn't.
2023-04-29 12:50:39 -04:00
takase1121 1fd20578ef
feat(bootstrap): return error string from C searcher 2023-04-26 08:31:45 +08:00
Adam Harrison 76a5d40edc Fixing linewrapping bug to do with wordwrapping. 2023-04-22 14:54:42 -04:00
Adam 116ea10fe2
Added in double-clicking on emptyview and tab bar. (#1478)
* Added in double-clicking on emptyview and tab bar.

* Fixed issue with split tabs.

* Early exit if no overlapping node.

* Changed category of command to tabbar.

* Additional cleanup.

* Changed for whether we should show tabs.

* Fixed erroneous hover.
2023-04-22 13:24:54 -04:00
jgmdev 8cb842549c StatusView compat fix with older Lua runtimes 2023-04-17 17:26:24 -04:00
Guldoman a6d1fe720f
Merge carets after `doc:move-to-{previous,next}-char` (#1462) 2023-04-14 17:49:26 -04:00
sammyette 2c1a0baccf
feat: add statusview item to show selections (#1445) 2023-04-10 18:16:41 -04:00
vqn 1f1b7fc1ef
#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-04-10 21:57:11 +02:00
Jan 34ba4dbee6
Add View dragging (#1402) 2023-04-07 13:15:50 -04:00
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