Francesco Abbate
2cf3c6f747
Ensure project reload when changing project module
...
Changes in project's module required an application restart to work.
Now the project will be re-scanned when the project's module changes.
In addition ensure borderless window config is changed when changed
in user's preferences.
2021-12-28 14:36:21 +01:00
Francesco Abbate
05b003eeb5
Avoid references to project's dir in TreeView
...
It is not a good practice to keep a reference to the project's
directory object outside of the "core" module itself.
The TreeView was using such a reference in the cache item for each
file or directory entry. Replace the reference to the object with
the absolute name of the project directory.
2021-12-28 14:36:21 +01:00
Francesco Abbate
1f0785b73f
Scan project folder after project module is loaded
...
Otherwise the initial scan of the project folder is done without
taking into account the config.ignore_files directives.
2021-12-28 10:59:01 +01:00
takase1121
33f7fe4fda
toggle comment for whole line if nothing is selected
2021-12-26 15:12:28 +08:00
takase1121
69a857bbbf
fallback to toggle-line-comment and vice versa if needed
2021-12-26 15:05:27 +08:00
takase1121
4d31b1bc40
add toggle-block-comment
2021-12-25 12:57:00 +08:00
Guldoman
eac82e69fb
Add parameters to `core.on_dirmonitor_{modify,delete}`
2021-12-22 23:43:56 +01:00
Francesco Abbate
9155be7a22
Ensure TreeView cache entry is removed on delete
...
Address issue:
https://github.com/lite-xl/lite-xl/issues/689
Attempt to provide a more accurate fix to commit:
59f64088e1
For this latter what happens is that any change inside a directory
cause the corresponding entry to be folded in the TreeView.
The new change is more accurate because we remove only the stale
entry corresponding to the delete event and we do not reset the
cache of the parent directory using the modify event.
2021-12-22 23:40:54 +01:00
Guldoman
9e7bdf49e9
Revert "Merge pull request #697 from Guldoman/treeview_remove_changed"
...
This reverts commit 4e078cc217
, reversing
changes made to 0c488c9492
.
2021-12-22 23:39:26 +01:00
Jipok
a19baeacb1
Support portable user config( Fix #762 )
2021-12-22 23:36:03 +05:00
takase1121
00e2e281d3
remove unsaved flag from log.txt
2021-12-22 10:54:25 +08:00
takase1121
2f65d5a26f
make the date field consistent
2021-12-22 10:53:53 +08:00
takase1121
8f06ef9b81
ensure date is rendered properly
2021-12-22 10:50:35 +08:00
Adam Harrison
978550d2a2
Restores external pastes to be normal pastes.
2021-12-21 16:23:34 -05:00
Adam
61379a9ab8
Merge pull request #713 from Jipok/master
...
Copy/cut whole line if selection empty
2021-12-21 15:53:12 -05:00
takase1121
54f6579e9d
change INFO to use style.text
2021-12-21 17:38:25 +08:00
takase1121
3e175f5ad5
Merge branch 'master' of github.com:lite-xl/lite-xl into better-logview
2021-12-21 17:37:19 +08:00
takase1121
8d7867d118
adapt style.good and style.error
2021-12-21 17:36:32 +08:00
Adam
8101c1eae3
Merge pull request #749 from Jipok/new_colors
...
Add predefined colors to style.lua: good, warn, error, modified
2021-12-20 23:06:28 -05:00
Jipok
6c1c983d1c
rootview.lua: Refactor Node:draw_tab
2021-12-21 02:20:31 +05:00
Jipok
941b283681
Support rgba hex format
2021-12-20 23:54:03 +05:00
Francesco Abbate
3109263c5d
Call dmon_unwatch when changing project
...
Fix a conspicuous omission to call the dmon_unwatch function
when changing project directory.
This uncovered a bug or a quirk of the dmon library where the watch_ids
can change as a result of calling dmon_unwatch because they are just
indexes on a contiguous array. Use a workaround to always unwatch the
first valid watch_id N times.
2021-12-20 14:42:48 +01:00
Jipok
8178fc46bb
Add some comments to style
2021-12-20 17:12:37 +05:00
Jipok
c353dd6eda
Add for config.highlight_current_line new variant: no_selection
2021-12-20 16:23:01 +05:00
Guldoman
29318be9c7
Consume unmatched character correctly
...
We must consume the whole UTF-8 character, not just a single byte.
2021-12-20 12:04:20 +01:00
Francesco Abbate
37c00c877a
Ensure TreeView cache entry is removed on delete
...
Address issue:
https://github.com/lite-xl/lite-xl/issues/689
Attempt to provide a more accurate fix to commit:
59f64088e1
For this latter what happens is that any change inside a directory
cause the corresponding entry to be folded in the TreeView.
The new change is more accurate because we remove only the stale
entry corresponding to the delete event and we do not reset the
cache of the parent directory using the modify event.
2021-12-20 11:03:49 +01:00
Francesco Abbate
405bd1c2bd
Fix logic in project's file insertion
...
The function "file_search" in core.init was sometimes giving a wrong index
value, off by one.
The problem happened for example when the entry to search was "less than"
the first entry, the function returned a value of two instead of one as
expected.
The bug was easily observed creating a new directory with a name that comes
as the first in alphabetical order within the project.
2021-12-20 09:05:45 +01:00
Guldoman
23f83857c5
Don't search if there are no files
2021-12-20 08:40:43 +01:00
Jipok
0461d3bdce
Predifined colors: good, warn, error, modified
2021-12-20 01:51:52 +05:00
Jipok
4183d3b2fd
Add predefined colors to style: good, bad
2021-12-20 01:27:53 +05:00
Guldoman
2e9619f630
Directly link to our repo
2021-12-19 18:13:19 +01:00
takase1121
695c7bf781
add instruction when logview is open
2021-12-19 09:36:43 +08:00
takase1121
1526cd176c
move selection logic to mouse click
2021-12-19 09:36:24 +08:00
Adam
7ae33bf6f4
Merge pull request #738 from adamharrison/restart-keymap
...
Added in restart keymapping.
2021-12-18 13:44:04 -05:00
takase1121
becdb99222
center icons to accomodate for size difference
2021-12-18 22:42:33 +08:00
takase1121
31df408d93
make timestamp fix sized
2021-12-18 20:11:50 +08:00
takase1121
fd3b4334ce
add clipping to drawing log items
2021-12-18 20:11:24 +08:00
takase1121
b5dff196f6
make error icon red
2021-12-18 20:10:25 +08:00
takase1121
ab4ecd515b
multiple improvements to logging
...
- added style.log table
- removed contextmenu
- use ctrl+click to copy individual log entries
- use icon instead of + or - for log items in logview
2021-12-18 10:51:44 +08:00
Adam Harrison
b7631ba44a
Added in restart keymapping.
2021-12-15 16:50:38 -05:00
Adam
dadfa4b3e8
Merge pull request #729 from adamharrison/fix-treeview-clicking
...
Fix TreeView and StatusView clicking
2021-12-11 19:05:52 -05:00
Adam
9a813c818b
Merge pull request #715 from Guldoman/split_rootview
...
Split `Node` and `EmptyView` from `RootView`
2021-12-11 18:15:33 -05:00
Adam Harrison
ff5c3c1492
Also fixed statusview.
2021-12-11 18:00:42 -05:00
Jipok
7381a13d6f
Revert "Make pasting multiple lines from clipboard same way as a single line"
...
This reverts commit 6a135f7c06
.
2021-12-12 02:23:47 +05:00
Guldoman
4faaf089ef
Consume unmatched character correctly
...
We must consume the whole UTF-8 character, not just a single byte.
2021-12-11 03:43:33 +01:00
Jipok
6a135f7c06
Make pasting multiple lines from clipboard same way as a single line
2021-12-10 19:25:28 +05:00
Jipok
4a563ddea1
Delete old forgotten self.cursor_clipboard
2021-12-10 19:23:49 +05:00
Jipok
4eee123eff
Make cursor_clipboard globa, not per doc
2021-12-08 17:34:10 +05:00
Guldoman
7cb2068bb8
Split `Node` and `EmptyView` from `RootView`
2021-12-06 22:28:29 +01:00
Jipok
acc7ceefd4
Correct paste after 'Cut/copy whole line'
2021-12-06 17:59:49 +05:00
Jipok
93d9e61a03
Copy/cut whole line if selection empty
2021-12-05 20:30:03 +05:00
Guldoman
5029e2ce29
Add name to plain text fallback syntax
2021-12-02 22:34:49 +01:00
Adam Harrison
01e38f041a
Used basenames for ignore_files rather than full paths.
2021-11-27 13:16:49 -05:00
Adam
a607ef95f9
Merge pull request #682 from Guldoman/indent_refactor
...
Refactor how to get the indentation of a `Doc`
2021-11-27 11:55:36 -05:00
Adam
4767ffe58d
Merge pull request #693 from adamharrison/fix-scrollbar-split
...
Added in check to make sure you can use a scrollbar on a split.
2021-11-27 11:44:22 -05:00
Adam
1b22c85dd5
Merge pull request #694 from adamharrison/fix-context-menu
...
Added in cut, copy and paste to the context menu, amongst other things.
2021-11-27 11:44:10 -05:00
Adam
3e79595e24
Merge pull request #695 from adamharrison/additional-scale-variables
...
Added in additional environment variables to scale off of.
2021-11-26 22:07:32 -05:00
Adam
4e078cc217
Merge pull request #697 from Guldoman/treeview_remove_changed
...
Remove changed files/dirs from `TreeView` cache
2021-11-26 22:07:19 -05:00
Francesco Abbate
0c488c9492
Fix logic in project's file insertion
...
The function "file_search" in core.init was sometimes giving a wrong index
value, off by one.
The problem happened for example when the entry to search was "less than"
the first entry, the function returned a value of two instead of one as
expected.
The bug was easily observed creating a new directory with a name that comes
as the first in alphabetical order within the project.
2021-11-26 13:45:13 +01:00
Guldoman
59f64088e1
Remove changed files/dirs from `TreeView` cache
2021-11-24 06:16:54 +01:00
Guldoman
5dca37b11a
Don't search if there are no files
2021-11-24 05:03:42 +01:00
Adam Harrison
7ee23da187
Added in additional environment variables to scale off of.
2021-11-23 22:30:35 -05:00
Adam Harrison
463605ff41
Fixed event propogation.
2021-11-23 21:56:07 -05:00
Adam Harrison
64f66e5d1e
Added in cut, copy and paste to the context menu. Also removed find pattern, as that's no longer a valid command. Also made it so commands only show up if their predicates are valid.
2021-11-23 21:03:38 -05:00
Adam Harrison
cc3fddd1e5
Added in check to make sure you can use a scrollbar on a split.
2021-11-23 20:34:01 -05:00
Guldoman
cd2adb4a30
Apply again 1976facaf1
...
Use reverse search for `find-replace:previous-find`
2021-11-23 22:22:52 +01:00
Adam Harrison
96db380c73
Manual merge of into .
2021-11-23 15:57:22 -05:00
Adam
43a6e21135
Merge pull request #681 from Guldoman/prepopulate_highlighter
...
Prepopulate highlighter
2021-11-23 15:38:20 -05:00
Guldoman
23a0f6ca79
Speed up highlighter notify
...
Avoid calling `table.{insert,remove}` multiple times, as this causes
multiple shifts in the `self.lines` table.
2021-11-22 06:23:16 +01:00
Guldoman
3d9901695b
Use the new `Doc:get_indent_info` throughout `core`
2021-11-20 04:37:15 +01:00
Guldoman
b77b1c0221
Add `Doc:get_indent_info`
...
It returns the indentation type, size and confirmation status, used by
the `Doc`.
2021-11-20 04:36:58 +01:00
Guldoman
d0a2c913f5
Pre-populate the highlighter
...
This avoids problems with calls to `[insert,remove]_notify` on lines
that the highlighter has not yet added.
2021-11-20 01:18:37 +01:00
Guldoman
f24aa64cd5
Add `soft_reset` to highlighter
...
This allows clearing the `lines` table without removing entries.
2021-11-20 01:15:13 +01:00
Joshua Minor
4f55555ca9
Selection expands by word or line on double or triple click followed by drag.
2021-11-19 09:46:13 -08:00
Takase
8e6f594790
Merge branch 'master' into replace-unpack
2021-11-17 08:42:08 +08:00
takase1121
6d36f2684a
add polyfill for table.pack and table.unpack
2021-11-17 08:37:37 +08:00
Adam Harrison
18959aebef
Fixed predicate and minor propogation issue.
2021-11-16 19:12:39 -05:00
Adam
c58029df8b
Merge pull request #589 from adamharrison/clicks-keymap
...
Added in clicks to keymap.
2021-11-16 15:49:52 -05:00
Takase
285ea4f495
Merge branch 'master' into keymap-improvements
2021-11-15 21:59:04 +08:00
Adam
ca448c5fdb
Merge pull request #664 from Guldoman/highlight_caret_line
...
Highlight any line that contains a caret
2021-11-14 16:27:25 -05:00
Adam Harrison
2463c5d209
Made keymap more flexible.
2021-11-14 15:51:27 -05:00
Adam Harrison
acc6667f57
Bug.
2021-11-14 15:45:46 -05:00
Adam Harrison
d8473a3e00
Changed click prefixes to be numbers, as Takase suggested.
2021-11-14 15:44:54 -05:00
Adam Harrison
2931bdeb68
Can't forget mac.
2021-11-14 15:41:28 -05:00
Adam Harrison
50c0659445
Also changed docview mousewheel into a scroll command.
2021-11-14 15:41:28 -05:00
Adam Harrison
7babed1e6b
Added in more broad strokes for clicking to match wheel. 's' is single, 'd' is double, 't' is triple, and no prefix will always take any amount of clicks.
2021-11-14 15:41:28 -05:00
Adam Harrison
7a3e8ed86a
Added in mousewheel as part of this.
2021-11-14 15:41:28 -05:00
Adam Harrison
c04dc648de
Refactored things out.
2021-11-14 15:41:28 -05:00
Adam Harrison
1968d31b7c
Keymap.
2021-11-14 15:41:28 -05:00
Adam Harrison
6bdcfc824d
Rearranged things to make a bit more sense.
2021-11-14 15:41:28 -05:00
Adam Harrison
7905ddd26f
Fixed propogation again.
2021-11-14 15:41:28 -05:00
Adam Harrison
4e313d9fc5
Propogated mouse clicks correctly.
2021-11-14 15:41:28 -05:00
Adam Harrison
ce2ec9f442
Moved commands out to the outer event loop.
2021-11-14 15:41:28 -05:00
Adam Harrison
6f53ee1b69
Added in double, and triple clicking.
2021-11-14 15:41:28 -05:00
Adam Harrison
4a0d390a7c
Added in macos keys.
2021-11-14 15:41:28 -05:00
Adam Harrison
612818ca05
Added in clicks to keymap.
2021-11-14 15:41:28 -05:00
Adam Harrison
1376eaf54d
Made varaible anonymous.
2021-11-14 15:40:23 -05:00
Guldoman
6bc4fbb238
Restore `TitleView` only when needed
...
Before, every time the user came back from fullscreen, the `TitleView`
was shown regardless of its previous status.
2021-11-09 22:21:45 +01:00
Guldoman
b3eef15e7a
Highlight any line that contains a caret
...
Now lines with selections can be highlighted if they contain a caret.
2021-11-09 21:33:47 +01:00
Adam Harrison
5b8c08e93a
Missing parentheses.
2021-11-07 17:57:15 -05:00
Adam Harrison
24669293c7
Made it so that we originally start on the parent directory of the current project, but provide a list of recently used projects if on that directory. If a directory separator is added, then everything is as normal.
2021-11-07 17:54:42 -05:00
Adam
40f698e4bf
Merge pull request #625 from Guldoman/allow_closing_primary
...
Select a new primary node when closing the current one
2021-11-07 15:10:19 -05:00
Adam
b7042fd9f7
Merge pull request #631 from Guldoman/fix_missing_subsyntax
...
Use `header` to get syntax only when provided
2021-11-07 15:09:50 -05:00
Adam Harrison
05dcddaeec
Made plugin load order deterministic.
2021-11-07 13:14:48 -05:00
Adam
286183f917
Merge pull request #634 from Guldoman/fix_highlighter_holes
...
Don't insert `nil` in highlighter lines table
2021-11-04 20:45:03 -04:00
Guldoman
9e721937af
Don't insert `nil` in highlighter lines table
...
When `highlighter:insert_notify` was called, a hole in the array was
created.
If another call to `highlighter:insert_notify` happened before the hole
was filled, a `Position out of bounds` error could have been raised.
2021-10-26 00:12:16 +02:00
Guldoman
df665ddc38
Use `header` to get syntax only when provided
2021-10-25 14:06:07 +02:00
Guldoman
92db048e7c
Use plain search by default in `search.find`
2021-10-25 00:18:20 +02:00
Francesco Abbate
5cdd800910
Fix problem checking utf-8 cont at end of string
2021-10-23 15:03:09 +02:00
Guldoman
331b8e90ec
Select a new primary node when closing the current one
...
The new primary node can be any non-locked leaf node that isn't already
primary.
2021-10-23 03:34:24 +02:00
Francesco
6f732f67f9
Merge pull request #612 from Guldoman/fix_regex
...
Fix regex in tokenizer
2021-10-22 21:44:44 +02:00
Francesco Abbate
ddb6196e9e
Force project rescan on network filesystems
2021-10-21 23:57:17 +02:00
Francesco Abbate
e9c16c4367
Add a limit for very slow filesystems
...
When adding a directory in a project we check if the filesystem is too
slow. If it is too slow we act as if the projects was files-limited by
the number of files but we show a specific warning.
This solution is not perfect but for very low filesystem it can limit
the problem. Otherwise the application would be totally irresponsive.
2021-10-21 23:18:31 +02:00
Francesco Abbate
167e41de65
Fix problem with treeview keeping the editor busy
...
Fix a problem introduced when fixing the dirty pixel problem, commit
cb08c5c
. The node, when determining the layout was rounding the size
of the fixed-size view. In turns this latter was calling move_towards
to the default_size it wanted. If default_size was non-integer the
value vas never archieved because it was rounded during layout and
move_towars was keeping the editor busy by setting the
core.need_redraw flag.
2021-10-21 23:18:31 +02:00
Francesco Abbate
f18ac849fb
Fix error introduced with 43fc35d7
2021-10-21 23:18:31 +02:00
Francesco Abbate
9c52c420c5
Do not use normalize_path when not needed
2021-10-21 23:18:31 +02:00
Francesco Abbate
f472c24c73
First attempt to treat correctly network volumes
...
On windows paths belonging to network volumes will be gives like:
\\address\share-name\path
Now the code recognize these paths and treat them correctly.
2021-10-21 23:18:31 +02:00
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