Detect Indents automatically based on current file
This will be the default mode. This can be toggled from the status bar by using the fixed/Auto toggle as shown below.
features
The auto detcted indents of each file can be overriden by manually entering the spacing and tab config as usual in the status bar. Those details will be persited for that file across reboots.
To recompute the tab spacing config for a file, just click on the auto toggle in status bar twice. (to change mode to fixed and back to auto will recompute the spacing for the current file). Not entirely intuitive, but should be a very rare use case and didnt wanted to complicate the ui with more options and dropdows like in other editors.
changing to fixed mode will set to fixed spaic across the system.
There is also a json preference available to toggle this setting: "autoTabSpaces" : true - to enable
How it works
We use a modified version of https://www.npmjs.com/package/detect-indent . On creating a new editor, we scan the first 700 lines of text to determine the most probable indentation for the current editor.
700 lines was selected as it should be large enough to account for file comment headers if any and then we performance analysis and it takes <0.1 ms in most cases to scan 700 lines. Further, we modified the lib to directly use our editor APIs to get lines instead of getting text from the edtor as a whole and then splitting lines to improve perfomance.
The spacing computed for the file is cached temporarily for the current session and will be reused to reduce file switch times.
Detect Indents automatically based on current file
This will be the default mode. This can be toggled from the status bar by using the fixed/Auto toggle as shown below.
features
auto
toggle in status bar twice. (to change mode to fixed and back to auto will recompute the spacing for the current file). Not entirely intuitive, but should be a very rare use case and didnt wanted to complicate the ui with more options and dropdows like in other editors."autoTabSpaces" : true
- to enableHow it works
We use a modified version of https://www.npmjs.com/package/detect-indent . On creating a new editor, we scan the first 700 lines of text to determine the most probable indentation for the current editor.
700 lines was selected as it should be large enough to account for file comment headers if any and then we performance analysis and it takes <0.1 ms in most cases to scan 700 lines. Further, we modified the lib to directly use our editor APIs to get lines instead of getting text from the edtor as a whole and then splitting lines to improve perfomance.
The spacing computed for the file is cached temporarily for the current session and will be reused to reduce file switch times.