diff --git a/README.md b/README.md index d1bd33f..823c8a7 100644 --- a/README.md +++ b/README.md @@ -12,26 +12,10 @@ with a .cpp or .h file as filename to open a new tab containing a vertical split with the corresponding header file in the left window and the corresponding source file in the right window. -Use - - :Split - -to open the corresponding header or source file to your currently open file in -a vertical split. - ## Configuration You can configure the following settings: -### g:splitopen_extensions - -Use this dictionary to define your pairs of left-hand- right-hand-side file -types. E.g. - - let g:splitopen_extensions = {"h": "cpp"} - -always places a .cpp file on the right-hand side when opening an .h file and -vice versa. ### g:splitopen_set_fzf_keys @@ -48,15 +32,6 @@ SplitOpen is GPL-3.0 licensed. See LICENSE file for more info. ## Changelog -v1.1.0 -* Added Split() command - -v1.0.0 -* Fixed error when reloading plugin - -v0.0.4 -* Add filetype configuraton - v0.0.3 * Add fzf.vim keybinding diff --git a/autoload/splitopen.vim b/autoload/splitopen.vim index 1151120..d4f2aac 100644 --- a/autoload/splitopen.vim +++ b/autoload/splitopen.vim @@ -1,68 +1,11 @@ -function s:invert_dict(source_dict) - let result = {} - for [key, value] in items(a:source_dict) - let result[value] = key - endfor - return result -endfunction - -let s:extensions = g:splitopen_extensions -let s:extensions_rev = s:invert_dict(s:extensions) - -function s:isLeftSideExtension(extension) - return has_key(s:extensions, a:extension) -endfunction - -function s:isRightSideExtension(extension) - return has_key(s:extensions_rev, a:extension) -endfunction - -function s:getFileExtension(filename) - return fnamemodify(a:filename, ":e") -endfunction - -function s:getFileRoot(filename) - return fnamemodify(a:filename, ":r") -endfunction - -function s:getSwitchExtension(filename) - let extension = s:getFileExtension(a:filename) - if s:isLeftSideExtension(extension) - return s:extensions[extension] - elseif s:isRightSideExtension(extension) - return s:extensions_rev[extension] - endif -endfunction - -function s:getSwitchFile(filename) - return s:getFileRoot(a:filename) . "." . s:getSwitchExtension(a:filename) -endfunction - -function s:addLeftSplit(filename) - execute("vsplit " . s:getSwitchFile(a:filename)) - execute("wincmd l") -endfunction - -function s:addRightSplit(filename) - execute("vsplit " . s:getSwitchFile(a:filename)) - execute("wincmd L") - execute("wincmd h") -endfunction - -function s:splitOpenFile(filename) - let extension = s:getFileExtension(a:filename) - if s:isLeftSideExtension(extension) - call s:addRightSplit(a:filename) - elseif s:isRightSideExtension(extension) - call s:addLeftSplit(a:filename) - endif -endfunction - -function! splitopen#SplitOpenFile(filename) +function splitopen#SplitOpenFile(filename) execute("tabedit " . a:filename) - call s:splitOpenFile(a:filename) -endfunction - -function! splitopen#SplitFile() - call s:splitOpenFile(expand("%:p")) + let l:file_extension = tolower(fnamemodify(a:filename, ":e")) + if l:file_extension == "cpp" + execute("FSSplitLeft") + execute("wincmd l") + elseif l:file_extension == "h" + execute("FSSplitRight") + execute("wincmd h") + endif endfunction diff --git a/doc/splitopen.txt b/doc/splitopen.txt index 8d64698..c4b3e6e 100644 --- a/doc/splitopen.txt +++ b/doc/splitopen.txt @@ -5,8 +5,7 @@ CONTENTS *SplitOpenContents* 1. Usage ..............................|SplitOpenUsage| 2. Configuration ......................|SlitOpenConfiguraton| - 2.1 g:splitopen_extensions.........|SplitOpenConfiguration_extensions| - 2.2 g:splitopen_set_fzf_keys.......|SplitOpenConfiguration_set_fzf_keys| + 2.1 g:splitopen_set_fzf_keys.......|SplitOpenConfiguration_set_fzf_keys| 3. License ............................|SplitOpenLicense| 4. Changelog ..........................|SplitOpenChangelog| @@ -21,31 +20,14 @@ with a .cpp or .h file as filename to open a new tab containing a vertical split with the corresponding header file in the left window and the corresponding source file in the right window. -Use - - :Split - -to open the corresponding header or source file to your currently open file in -a vertical split. - ================================================================================ 2. Configuration *SplitOpenConfiguration* You can configure the following settings: -------------------------------------------------------------------------------- -2.1 g:splitopen_extensions *SplitOpenConfiguration_extensions* -Use this dictionary to define your pairs of left-hand- right-hand-side file -types. E.g. - - let g:splitopen_extensions = {"h": "cpp"} - -always places a .cpp file on the right-hand side when opening an .h file and -vice versa. - --------------------------------------------------------------------------------- -2.2 g:splitopen_set_fzf_keys *SplitOpenConfiguration_set_fzf_keys* +2.1 g:splitopen_set_fzf_keys *SplitOpenConfiguration_set_fzf_keys* Set this option to 1 @@ -62,12 +44,6 @@ SplitOpen is GPL-3.0 licensed. See LICENSE file for more info. ================================================================================ 4. Changelog *SplitOpenChangelog* -v1.1.0 - * Added Split() command -v1.0.0 - * Fixed error when reloading plugin -v0.0.4 - * Add filetype configuraton v0.0.3 * Add fzf.vim keybinding v0.0.2 diff --git a/plugin/splitopen.vim b/plugin/splitopen.vim index 2534fdb..91cabdd 100644 --- a/plugin/splitopen.vim +++ b/plugin/splitopen.vim @@ -1,13 +1,4 @@ -command! -nargs=1 SplitOpen :call splitopen#SplitOpenFile("") -command! Split :call splitopen#SplitFile() - -" map left-split / right-split file extensions -if !exists("g:splitopen_extensions") - let g:splitopen_extensions = { - \ "h": "cpp", - \ "H": "CPP", - \ } -endif +command -nargs=1 SplitOpen :call splitopen#SplitOpenFile("") if !exists('g:splitopen_set_fzf_keys') let g:splitopen_set_fzf_keys = 0 @@ -18,6 +9,5 @@ if g:splitopen_set_fzf_keys \ 'ctrl-s': 'SplitOpen', \ 'ctrl-t': 'tab split', \ 'ctrl-x': 'split', - \ 'ctrl-v': 'vsplit', - \ } + \ 'ctrl-v': 'vsplit' } endif