There are really multiple things here in the close_all_docviews
function:
1. we reset the Node's tab_offset
2. we ensure the core's active_view is properly set
3. we close LogViews as well as DocViews
Some conditions seems to never happen but we stay safe and try
to cover all possible cases.
Instead of having a separate start.lua.in file in the scripts directory
and no start.lua file in data/core we use the file data/core/start.lua
as a template for Meson to generate the final start.lua file for release.
In this way people naturally trying to run lite-xl from the source folder
will have a start.lua file albeit without a resolved version number.
Otherwise, when using run-local script or the meson install command the
meson-generated start.lua file will be used as it should be.
- Added version and license metadata
- Configuration data to be used in configured files to set metadata
- Portable binary and directories in the main install directory
- Binary file installed in correct places for all supported platforms
- Freedesktop AppStream support
- Added missing files install rules
In the function Node:get_divider_overlapping_point() we check if we
hit a divider (separator between two nodes). If yes the event is
intercepted and used to set the cursor and drag the separator if
appropriate.
In reality, on mouse move events, when one of the node is a split
and one of its child is not resizable we don't set the cursor to
and we don't intercept the event. However on a mouse pressed event
the event was intercepted regardless of the fact that the child
nodes are resizable or not. This latter behavior was unwanted as it
prevents mouse clicks to be processed because of a divided that is
inactive.
In addition it prevented processing of mouse clicks when the child
node was invisible leading to issue #363. For this latter the issue
was the invisible NagView in the upper part of the window.
To fix the problem we provide a divider with
Node:get_divider_overlapping_point() only if its child node are
resizable. In this way the mouse clicks or movements are intercepted
only if the divider is actually active.
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.
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.
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.
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.
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.
Brought form the 1.16.12 release.
It provides support for C++ using multi-part syntax patterns. Take
the priority over C language plugins for header files.
Use the function defined in the "common" module.
Move the check for not-nil filename from common.normalize_path
to core.open_doc. In this latter the filename can be nil if a
new unnamed document is created.
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.