Commit Graph

1156 Commits

Author SHA1 Message Date
Francesco Abbate ba72613f60 Add missing pthread dependency 2021-10-03 00:04:30 +02:00
Francesco Abbate b7ef9a5609 Fix files limited project with dir monintoring
Changed approach to files limited project. Now we keep into the
top-level dir a list of subdirectories to be shown. When in file
limited mode we will not scan subdirectories unless they are in
the list of shown subdirectories.

With the new mechanism the function get_subdirectory_files always
recurse into subdirectories by default but is able to figure out
to stop recursing into subdirectories for files limited project.

The new mechanism is more robust of the previous one. Now the
rescan of subdirectories is compatible with files limited project.
2021-10-03 00:04:30 +02:00
Francesco Abbate db24dbc3a0 Fix a new things about project rescan
Add a flag core.redraw to force redraw when rescan is done.

Inhibit recursion when files_limit is reached.

Still doesn't work correctly for files limited directories.
2021-10-03 00:04:30 +02:00
Francesco Abbate 6c5abdd95d Smarter algorithm to patch files list
New algorithm use the fact that files list are always
sorted to optimize the table's insertions and removals.
2021-10-03 00:04:29 +02:00
Francesco Abbate 8f36b776b7 Fix error in rescan list replace 2021-10-03 00:04:29 +02:00
Francesco Abbate b992c147c0 Ensure all project files are correctly filtered 2021-10-03 00:04:29 +02:00
Francesco Abbate 0f3fb4d77d Fix a few things about dmon
Ensure that we call coroutine.yield when scanning recursively.

Do not use a weak-key based on project dir when adding the job for rescan.
Since "dir" was not unique many threads were missing.

Ensure we do not block waiting for events if there are pending rescan.
2021-10-03 00:04:29 +02:00
Francesco Abbate d36293ff60 Ensure directory is rescanned after the first read 2021-10-03 00:04:29 +02:00
Francesco Abbate 66bedbffb9 Implement project files rescan on dir changes
In theory the dmon based directory monitoring is enough to ensure that
the list of project files is always correct. In reality some events
may be missing and the project files list may get disaligned with the
real list of files.

To avoid the problem we add an additional rescan to be done later in a
thread on any project subdirectory affected by an event of directory of
file change.

In the rescan found the same files already present the thread terminates.
If a difference is found the files list is modified and a new rescan is
scheduled.
2021-10-03 00:04:29 +02:00
Francesco Abbate 83c5d963b8 More accurate path compare function 2021-10-03 00:04:29 +02:00
Francesco Abbate cb4c7d397d Update dmon from septag/dmon commit 74bbd93b
The new version includes fixes from jgmdev, github PR:

https://github.com/septag/dmon/pull/11

to solve incorrect behavior on linux not reporting directory creation.

Includes also a further revision from septag.
2021-10-03 00:04:29 +02:00
Francesco Abbate becd817ec4 Show max files warning message for initial project
If the max number of files limit is achieved when the application
is starting the StatusView is not yet configured so we cannot
show the warning.

We show the warning in the function scanning the directory only if
the StatusView is up. On the other side, when the application starts
it will check if the initial project dir hit the max files limit and
show the warning if needed.
2021-10-03 00:04:29 +02:00
Francesco Abbate 019280f2ed Fix several problem with directory update
When scanning a subdirectory on-demand ensure files aready present
are not added twice. Files or directory can be already present due
to dir monitoring create message.

Fix check for ignore files when adding a file to respond to a dir monitor
event to use each part of the file's path.

Fix C function to compare files for treeview placement.
2021-10-03 00:04:29 +02:00
Francesco Abbate 593916ada7 Fix bug with expanding directory when file limited
Introduce a new field in items generated by TreeView:each_item()
to point "dir" to the toplevel directory entry.

In this was we can simplify the code and know if the toplevel
directory is files limited.
2021-10-03 00:04:28 +02:00
Francesco Abbate 865111738a Treat watch dir errors and fix various things
Verity if dmon_watch returns an error.

Add a check if an added file for which we received a create event is
ignored based on the user's config.

Add some explanatory comments in the code.
2021-10-03 00:04:28 +02:00
Francesco Abbate 7b7dfe8c75 Remove the treeview check for modified files
In the treeview the implementation was checking the files list
to detect if it changed because of a project scan. Since we removed
the project scan we no longer need the check.

Removed the TreeView's self.last table that stores previous files
object by top-level directories.
2021-10-03 00:04:28 +02:00
Francesco Abbate 7aca4e6ba2 Remove the project scan thread
Since the directory monitoring is now basically working we remove the
project scan thread periodically scanning the project directory.

Each project's directory is scanned only once at the beginning when
calling the function `core.add_project_directory` and is updated
incrementally when directory change events are treated.

The config variable `project_scan_rate` is removed as well as the
function `core.reschedule_project_scan`.
2021-10-03 00:04:28 +02:00
Francesco Abbate c46781dbed Update dmon from septag/dmon with fix for linux
Update from https://github.com/septag/dmon, commit: 48234fc2 to
include a fix for linux.
2021-10-03 00:04:28 +02:00
Francesco Abbate fe2d0b5237 First integration of dmon for directory monitoring 2021-10-03 00:04:28 +02:00
Francesco Abbate 3589031579 Bump version number 2021-10-02 18:44:27 +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 468229e4d0 Small cleanup of `scale` plugin 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
Jean-André Santoni 0b4d1e2bce Fix the size and blurriness of the icon on OSX (#553)
* Fix the size and blurriness of the icon on OSX

* Don't nest ifndef

* Fix
2021-10-02 18:39:22 +02:00
Not-a-web-Developer a97a3d80da fixed the build link in readme.md 2021-10-02 18:39:21 +02:00
Adam 6aa316e3c3 Rearranged DPI calc so that on calc failure, returns 1. (#547) 2021-10-02 18:39:21 +02:00
Adam ed3ea35ed5 Potentially fixing issue with cache not invalidating on restart. (#548) 2021-10-02 18:39:21 +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
Francesco Abbate 34983668d8 Normalize to project dir in treeview open
When left-clicking in a TreeView file we use now
core.normalize_to_project_dir to normalize correctly
the file name.
2021-10-02 18:37:01 +02:00
Francesco Abbate d067cc8577 Scale custom syntax fonts for scale plugin
Close #539.
2021-10-02 18:37:01 +02:00
Francesco Abbate 48475c70a0 Avoid unnecessary call to SDL_GetModState 2021-10-02 18:37:01 +02:00
Adam ab73f914ad Added in custom runtime environment variable for ease of testing. (#538) 2021-10-02 18:37:00 +02:00
Guldoman e2f7c984de Reset syntax highlighting on file rename 2021-10-02 18:37:00 +02:00
Francesco 0ff0ee2c61 Fix numpad fn keys (#532)
* Fix the numeric keypad function keys

As suggested in:

https://github.com/lite-xl/lite-xl/issues/64

* Apply scancode lookup to KEY_UP events
2021-10-02 18:37:00 +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 2ac7c7f09b Syntax. 2021-09-16 17:43:17 -04:00
Adam Harrison 4b828eff65 Markdown subsyntax highlighting. 2021-09-16 17:29:44 -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
Francesco Abbate 25744d93ce Merge branch with modifications for 2.0.2 release 2021-09-11 08:19:40 +02:00
Francesco Abbate 18189e63b6 Fix repackage script to restore project version 2021-09-10 15:48:43 +02:00
Francesco Abbate 8dd530e5cf Add -branch option in repackage script 2021-09-10 15:47:33 +02: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