Guldoman
780c8c6d0d
Improve check for `find-replace` commands using `has_unique_selection`
2021-10-16 03:02:42 +02:00
Guldoman
ef60b24f63
Check both values returned by `Node:get_locked_size`
2021-10-16 02:56:01 +02:00
Adam Harrison
f2488fdd8d
Added in support for font groupings.
2021-10-12 23:24:52 -04:00
Guldoman
8a516d35ce
Correctly identify the start of the next character in `tokenizer`
...
When moving to the next character, we have to consider that the current
one might be multi-byte.
2021-10-11 22:37:31 +02:00
Guldoman
1872e82141
Make `regex.match` return the appropriate `end` index
...
This makes its behavior similar to `string.find`.
2021-10-11 22:32:50 +02:00
Guldoman
3a71528087
Allow specifying offset for `common.is_utf8_cont`
2021-10-11 22:18:02 +02:00
Francesco Abbate
0d2166c9ce
Correct Node's clipping rectangle
...
Fixing the Node's clipping rectangle make the clipping in DocView:draw()
partially redundant. This latter is now no longer needed to clip
on the right when drawing the document's lines but it still serves to
the purpose of clipping on the left, before the gutter region.
2021-10-11 09:25:38 +02:00
Francesco Abbate
8b634daa66
Use rounded value for node's size when splitting
...
Rouding node's size to an integer value ensure drawing are pixel
perfect in sizing.
2021-10-10 21:48:16 +02:00
Francesco Abbate
c7aa3ebe01
Fix clipping error in docview
2021-10-10 21:44:16 +02:00
Francesco Abbate
cb08c5cbb7
Fix dirty pixels problem on window's right side
...
The last column of pixel on the window's right side isn't correctly
drawn and pixels appear dirty and more noticeably when the a NagView
message was previously shown, a stripe of red pixels remains on the right.
We use now a more souding roundig scheme. Now the rectangles to clip or to
draw are passed around as Lua numbers without any rounding. In turns, when
the rect coordinates are passed to the renderer we ensure the border of the
rect are correctly snapped to the pixel's grid. It works by computing the
coordinates of the edges, round them to integers and then compute the rect's
width based on the rounded coordinates values.
2021-10-10 14:52:55 +02:00
Francesco
228d6ff101
Merge pull request #466 from Guldoman/new_not_dirty
...
Avoid setting a new file as dirty if it is empty
2021-10-10 10:05:19 +02:00
Guldoman
3a1274fd08
Merge reverse find functions for lua patterns and regexes
2021-10-10 01:11:41 +02:00
Guldoman
cfe0c79a04
Simplify reverse search
...
Remove `plain_rfind` optimization.
2021-10-10 01:11:40 +02:00
Guldoman
af925d603b
Fix `doc` selection in `findreplace`
...
Use `last_view` if `active_view` is `CommandView`.
2021-10-10 01:11:40 +02:00
Guldoman
1976facaf1
Use reverse search for `find-replace:previous-find`
2021-10-10 01:11:38 +02:00
Guldoman
e7be9652c9
Add `find-replace:select-previous`
2021-10-10 01:10:52 +02:00
Guldoman
56eace627a
Add reverse option to `search.find`
2021-10-10 01:10:47 +02:00
Francesco Abbate
7dd5699c96
Use dmon events in reload plugin
2021-10-08 23:15:25 +02:00
Francesco Abbate
911a3cee08
Report dmon modify events
2021-10-08 23:13:50 +02:00
Francesco Abbate
9c43727ebc
Implement directory monitoring using septag/dmon
...
Use a notification based directory monitoring based on the
septag/dmon lirbary instead of periodically rescan the whole
project's tree.
2021-10-08 21:31:22 +02:00
Francesco Abbate
92362586df
Improve highlither for document edits
...
The syntax highlighter keep a cache of the documents like tokenization.
In order to minimize the amount of tokenize re-computations we insert some
emtty lines or remove some lines in the highlither lines corresponding to
the lines added or removed to the document.
2021-10-08 21:28:27 +02:00
Francesco Abbate
7a435a568a
Fix error in incremental syntax highlighter
...
In the highlither thread We should accept a previously generated line tokenization
past first_invalid_line only if the text is the same. The text can change because of
insert or remove operations.
Close #573 .
2021-10-08 21:27:57 +02:00
Francesco Abbate
44d7f3738f
Improve highlither for document edits
...
The syntax highlighter keep a cache of the documents like tokenization.
In order to minimize the amount of tokenize re-computations we insert some
emtty lines or remove some lines in the highlither lines corresponding to
the lines added or removed to the document.
2021-10-07 19:19:08 +02:00
Francesco Abbate
8477818c96
Fix error in incremental syntax highlighter
...
In the highlither thread We should accept a previously generated line tokenization
past first_invalid_line only if the text is the same. The text can change because of
insert or remove operations.
Close #573 .
2021-10-07 19:03:16 +02:00
Guldoman
db3643653e
Sanitize selections after redo
2021-10-02 22:03:52 +02:00
Francesco
eb79381c89
Merge pull request #521 from adamharrison/remove-font-renderer
...
Remove Font Renderer + CP Replace + libagg
2021-10-02 18:45:31 +02:00
Francesco Abbate
72c950338c
Enable always show tabs by default
2021-10-02 18:44:05 +02:00
Guldoman
20ddbd6e9f
Load project module on project change ( #571 )
2021-10-02 18:39:23 +02:00
Guldoman
57bfb67f6a
Add option to disable caret blinking ( #572 )
2021-10-02 18:39:23 +02:00
Guldoman
f6b9d9ab67
Add option to disable scrolling past the end ( #566 )
2021-10-02 18:39:22 +02:00
Rongfei Wang
b0b3485152
Remove duplicate command declaration ( #565 )
2021-10-02 18:39:22 +02:00
Adam Harrison
291616df3f
Removed extra macros, used PLATFORM. Also removed MACOS, as it's redundant C code that's already encapsulated within PLATFORM.
2021-10-02 18:39:03 +02:00
Guldoman
d817944170
Force showing tabs when dragging them
2021-10-02 18:37:00 +02:00
Guldoman
dced6da03d
Implement tab drag and drop
2021-10-02 18:36:59 +02:00
Guldoman
86632b68de
Move single tab drawing to its own function
2021-10-02 18:36:59 +02:00
Adam Harrison
f80f920bda
Added in suggested changes.
2021-10-02 12:25:52 -04:00
Adam Harrison
ee61b34084
Turned off whitespace by default.
2021-10-02 12:23:32 -04:00
Guldoman
bf06aa1c4d
Load project module on project change ( #571 )
2021-10-02 16:38:45 +02:00
Guldoman
b5f0b340d2
Add option to disable caret blinking ( #572 )
2021-10-02 16:38:10 +02:00
Guldoman
ab0ca031fa
Add option to disable scrolling past the end ( #566 )
2021-09-30 13:10:38 -07:00
Rongfei Wang
cf11d67895
Remove duplicate command declaration ( #565 )
2021-09-30 13:38:32 +02:00
Adam Harrison
e25f2e9c5c
Removed font renderer.
2021-09-24 11:22:39 -04:00
Adam
8c32950f4b
Merge pull request #527 from adamharrison/native-interop
...
Native Plugins
2021-09-23 15:11:08 -04:00
Adam Harrison
466464d8a4
Mispelling.
2021-09-22 17:25:16 -04:00
Adam Harrison
b8da46e10e
Removed searchers[4].
2021-09-22 17:24:22 -04:00
Adam Harrison
713ef787c2
Removed extra macros, used PLATFORM. Also removed MACOS, as it's redundant C code that's already encapsulated within PLATFORM.
2021-09-20 23:50:06 -04:00
Adam Harrison
e13529444f
Less C code, and more namespacing is better.
2021-09-20 23:42:39 -04:00
Adam Harrison
3ca127793a
Incorporated some suggestions, and some functions.
2021-09-20 23:33:12 -04:00
Guldoman
f6b6634868
Force showing tabs when dragging them
2021-09-17 22:25:05 +02:00
Guldoman
3eba7cd7f1
Implement tab drag and drop
2021-09-17 22:25:05 +02:00
Guldoman
6a3f59c423
Move single tab drawing to its own function
2021-09-17 22:25:05 +02:00
Adam Harrison
10c3c9d4cf
Undid deletion.
2021-09-16 16:24:07 -04:00
Adam Harrison
2987554097
Moving things into final positions.
2021-09-16 15:47:12 -04:00
Adam Harrison
377ce1cd06
Moved things around, fixed a few things up.
2021-09-16 12:37:17 -04:00
Guldoman
66bfff2e26
Fix wrong locked sibling check
...
Previously if the split type was "hsplit", but `locked_size_x` was
falsy, `locked_size_y` was wrongly used.
2021-09-15 22:38:09 +02:00
Guldoman
9bfec4aca5
Ensure that the primary node always has a `View`
2021-09-15 22:38:09 +02:00
Guldoman
fb955e4e12
Only check if sibling is locked in the split direction
...
If the sibling is not locked in the direction of the split, it should
fill the space.
2021-09-15 22:38:09 +02:00
Guldoman
1e8031a0e8
Fix checking if sibling is locked when removing `View`s
...
We only checked if sibling was locked in the `x` direction.
2021-09-15 22:38:09 +02:00
Adam Harrison
e9f48ce949
Added in sample plugin and tested things out. Works.
2021-09-14 00:13:30 -04:00
Adam Harrison
a66a76f9c9
Added in searcher.
2021-09-13 23:40:01 -04:00
Francesco Abbate
218999dff8
Avoid bug when replacement stop at end of string
...
Detect when we are past the end of the string to avoid by
checking if byte is not nil.
Fix #510 .
2021-09-10 14:55:04 +02:00
Francesco Abbate
afd0672197
Use line/col to identify selection in replace command
2021-09-10 14:54:55 +02:00
Francesco Abbate
cec1e4efb9
Do not fail search if there was an option change
2021-09-09 23:30:18 +02:00
Francesco Abbate
d9afc40a17
Bring back command find-replace:select-next
...
Bring back the command like before to keep single selection but with
ctrl+f3 keybindings. Change the name of the new multi-cursor command
but keep the ctrl+d keybinding.
2021-09-09 21:40:41 +02:00
Guldoman
aa0e083cb9
Allow `find-replace:select-next` to select more occurrences after wrap
...
The initial position for the search is defined by the last selection
towards the end of the file.
After reaching the end of the file, it would always select the same
selection to start the search from.
Now, we start the search from each selection, until a new occurrence is
found.
2021-09-09 21:38:12 +02:00
Francesco Abbate
04250a206a
Add previous find and replace in session
2021-09-09 15:42:16 +02:00
Francesco Abbate
403b7f6fb6
Add missing remove tooltip call
2021-09-09 15:42:16 +02:00
Francesco Abbate
b440a22581
Remeber initial user text for hidden suggestions
...
When using hidden suggestions remember the text user was typing when
navigating suggestions.
Ensure also that in the previously searched expressiosn we have no
duplicate entries.
2021-09-09 15:42:16 +02:00
Francesco Abbate
fa8b3b33b1
Use hidden suggestions also for replace dialog
2021-09-09 15:42:16 +02:00
Francesco Abbate
4bcc1cc07c
Fix error with hidden suggestions
...
Avoid indexing a nil if there are no suggestions.
2021-09-09 15:42:16 +02:00
Francesco Abbate
f85fe102d9
Implement hidden suggestions for find dialog
2021-09-09 15:42:16 +02:00
Francesco Abbate
dfb64fbdf1
Do not add selection with newlines in replace
...
If the selected text containes newlines it doesn't make sense to
use it as the initial text in the "replace text" command view.
Do not use the selected text if a newline is found in the selection.
Fix #511 .
2021-09-09 15:39:41 +02:00
takase1121
5cc23348a1
reverse the order of args in keymap.unbind
2021-09-08 23:17:50 +08:00
takase1121
7e4236a82f
add keymap.unbind(), update contextmenu to use keymap.get_binding()
...
This is something probably people are looking for...
2021-09-08 23:11:36 +08:00
Guldoman
0a52861129
Revert horizontal scroll implementation
2021-09-08 07:11:50 +02:00
Francesco Abbate
2b277bb502
Fix problem with -psn argument on macOS
2021-09-07 06:44:15 -07:00
Francesco Abbate
67d7b894ae
Add initial suggestion in open-project-folder
2021-09-07 15:23:41 +02:00
Francesco Abbate
90c721b823
Adopt bigger fonts by default
2021-09-07 15:11:20 +02:00
Guldoman
f9c7eeeeb8
Check if session file returned anything
2021-09-07 15:03:00 +02:00
Guldoman
59aa7f0090
Fix absolute path detection in `core.project_absolute_path`
2021-09-07 15:03:00 +02:00
Guldoman
de4072e207
Avoid checking for unique selections on non-`DocView`s
2021-09-07 15:03:00 +02:00
Adam Harrison
b7f2d1ad03
Forgot to return an 'n'.
2021-09-07 15:03:00 +02:00
Adam Harrison
7811660caf
Fixed replace to make it multicursor-aware.
2021-09-07 15:03:00 +02:00
Timofffee
604626fa32
Fix macOS keymap
2021-09-07 15:03:00 +02:00
Adam Harrison
1d61cf989f
Fixed cursor movement.
2021-09-07 15:03:00 +02:00
Adam Harrison
d352eb1cb9
Fixed cursors moving around with removal and inserts with cursors. Also fixed drawing line highlights with multicursors.
2021-09-07 15:03:00 +02:00
Adam Harrison
9d4e944549
Added in two new VSC-style multicursor shortcuts.
2021-09-07 15:03:00 +02:00
Guldoman
d3bd35b577
Use plain `string:find` when matching plugin directories
2021-09-07 15:03:00 +02:00
Guldoman
7f338fc993
Allow tabs to always be visible
2021-09-07 14:59:03 +02:00
Takase
fb907c9bf4
increase code readibility
2021-09-07 14:59:03 +02:00
takase1121
97493a1a4e
add doc:get_selection_text()
2021-09-07 14:59:03 +02:00
takase1121
30d3751632
remove unused variable
2021-09-07 14:59:03 +02:00
takase1121
14565b5226
more changes to logview
...
- remove draw_text_elipsis
- remove clip rect operations
- fix text drawing when expanded
- simplify code
2021-09-07 14:59:03 +02:00
takase1121
622b162225
add core.get_log()
2021-09-07 14:59:03 +02:00
takase1121
afaf0a718d
improve logview
...
The logview is now less cluttered.
The filename and stack trace (if any) is hidden by default.
The user can click on the log entry to expand it.
2021-09-07 14:59:03 +02:00
Francesco Abbate
28e8a98ffc
Fix error in change-project-folder command
2021-09-07 05:21:45 -07:00
Francesco Abbate
3cc4cd1ada
Fix error when opening root directory
2021-09-07 05:09:26 -07:00
Guldoman
371914af67
Check if session file returned anything
2021-09-04 00:32:01 +02:00
Guldoman
e559afaefc
Add a simple cache to `DocView:get_h_scrollable_size`
...
This function gets called at every `core.step`, so we should avoid
having to recalculate the scrollable size every time, as it could get
very expensive on long lines.
2021-09-03 00:55:10 +02:00
Guldoman
46d1203d08
Fix absolute path detection in `core.project_absolute_path`
2021-09-02 18:58:24 +02:00