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.
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.
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.
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.
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`.
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.
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.
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.
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.