# FileSystem AutoCompletion #
Enable auto-completion of paths from the file system à la [VIM](http://vimdoc.sourceforge.net/htmldoc/insert.html#i_CTRL-X_CTRL-F).
File completion can be explicitly triggered by Ctrl+Alt+/ (on OSX, Cmd instead of Ctrl) shortcut.
This combination can be always rebound to a different key combination in usual SublimeText manner, by opening the User keybindings file (see menu: `Preferences/Package Settings/FileSystem Autocompletion`).
For example, you should also be able to use the Vim shortcut Ctrl+X,Ctrl+F by adding the following to your **Keybindings - User** file:
```json
{ "keys": ["ctrl+x","ctrl+f"], "command": "file_system_comp_trigger"}
```
This plugin handles spaces in file names and find the correct file path beginning. If you find any problem, please open an issue.
## Current directory ##
The project-file directory will be used by default (if found).
However, a path starting with '.' will use the current view's directory instead.
The path search order can be configured via the usual settings file:
"path_search_order": ["project", "view", "window"]
## Installation ##
Either by using the package manager or manually by cloning/downloading the latest snapshot of the `master` branch into the Sublime's package folder (e.g. `~/Library/Application Support/Sublime Text 3/Packages/` on OSX).
## Spaces ##
This plugin should handle file paths that contains spaces including escaped spaces with `\`.
For example if there are three files:
quick test
quick test 1
quick test 2
Then `quick test` followed by our shortcut will display all three options and when selecting the second one for instance it will get expanded to `quick test 1`. On the other hand `quick\ test` followed by our shortcut with the same selection will be expanded to `quick\ test\ 1`. If the path is detected to be escaped it will continue to escape all the followed spaces.
## File path beginning ##
The problem is that a file name can be contain many special characters. For example `\input{some file}` is a valid file. However, it is also a way how to include a file in LaTeX document and more likely we want to have a completion of the path `some file` rather than path `\input{some file}`. This plugin, therefore, tries to determine the beginning of a path from which it should look for the completion by finding the longest possible path that exists. For the example above, with the cursor positioned at the end of `some file`, it will try:
/Users/user/\input{some file
Users/user/\input{some file
krikava/\input{some file
\input{some file
input{some file
some file
file
and it will stop as soon as any of these path exists (a glob pattern with appended `*` returns something).
## License ##
All parts of this plugin are licensed under GPL v3 (see LICENSE.txt).