Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package vim-plugins for openSUSE:Factory checked in at 2024-01-12 23:45:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vim-plugins (Old) and /work/SRC/openSUSE:Factory/.vim-plugins.new.21961 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vim-plugins" Fri Jan 12 23:45:57 2024 rev:52 rq:1138232 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/vim-plugins/vim-plugins.changes 2023-09-14 16:28:46.989264250 +0200 +++ /work/SRC/openSUSE:Factory/.vim-plugins.new.21961/vim-plugins.changes 2024-01-12 23:46:18.676540281 +0100 @@ -1,0 +2,8 @@ +Fri Jan 5 07:44:32 UTC 2024 - Jiri Slaby <jsl...@suse.cz> + +- update + * NERDtree_version 7.1.0 + * table_mode_version 4.8.1 + * cscope_maps.vim + +------------------------------------------------------------------- Old: ---- vimplugin-NERDtree-6.10.16.tar.gz vimplugin-table-mode-4.7.6.1.tar.gz New: ---- vimplugin-NERDtree-7.1.0.tar.gz vimplugin-table-mode-4.8.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vim-plugins.spec ++++++ --- /var/tmp/diff_new_pack.nDwU9y/_old 2024-01-12 23:46:20.068591231 +0100 +++ /var/tmp/diff_new_pack.nDwU9y/_new 2024-01-12 23:46:20.068591231 +0100 @@ -1,7 +1,7 @@ # # spec file for package vim-plugins # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -42,7 +42,7 @@ %define multiplesearch_version 1.3 %define neomutt_version 20220612 %define NERDcommenter_version 2.7.0 -%define NERDtree_version 6.10.16 +%define NERDtree_version 7.1.0 %define project_version 1.4.1 %define quilt_version 0.9.7 %define rails_version 5.2 @@ -51,7 +51,7 @@ %define showmarks_version 2.3 %define snipmate_version 0.83 %define supertab_version 2.1 -%define table_mode_version 4.7.6.1 +%define table_mode_version 4.8.1 %define taglist_version 4.6 %define tlib_version 1.28 %define tregisters_version 0.2 ++++++ cscope_maps.vim ++++++ --- /var/tmp/diff_new_pack.nDwU9y/_old 2024-01-12 23:46:20.168594892 +0100 +++ /var/tmp/diff_new_pack.nDwU9y/_new 2024-01-12 23:46:20.172595038 +0100 @@ -88,14 +88,14 @@ " go back to where you were before the search. " - nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR> - nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR> - nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR> - nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR> - nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR> - nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR> + nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR> + nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR> + nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR> + nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR> + nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR> + nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> - nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR> + nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR> " Using 'CTRL-spacebar' (intepreted as CTRL-@ by vim) then a search type @@ -104,16 +104,16 @@ " " (Note: earlier versions of vim may not have the :scs command, but it " can be simulated roughly via: - " nmap <C-@>s <C-W><C-S> :cs find s <C-R>=expand("<cword>")<CR><CR> + " nmap <C-@>s <C-W><C-S> :cs find s <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>c :scs find c <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>t :scs find t <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>e :scs find e <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>f :scs find f <C-R>=expand("<cfile>")<CR><CR> - nmap <C-@>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> - nmap <C-@>d :scs find d <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>c :scs find c <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>t :scs find t <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>e :scs find e <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>f :scs find f <C-R>=expand("<cfile>")<CR><CR> + nmap <C-@>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> + nmap <C-@>d :scs find d <C-R>=expand("<cword>")<CR><CR> " Hitting CTRL-space *twice* before the search type does a vertical @@ -127,8 +127,8 @@ nmap <C-@><C-@>c :vert scs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-@><C-@>t :vert scs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-@><C-@>e :vert scs find e <C-R>=expand("<cword>")<CR><CR> - nmap <C-@><C-@>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR> - nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> + nmap <C-@><C-@>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR> + nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <C-@><C-@>d :vert scs find d <C-R>=expand("<cword>")<CR><CR> ++++++ vimplugin-NERDtree-6.10.16.tar.gz -> vimplugin-NERDtree-7.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/.github/PULL_REQUEST_TEMPLATE.md new/nerdtree-7.1.0/.github/PULL_REQUEST_TEMPLATE.md --- old/nerdtree-6.10.16/.github/PULL_REQUEST_TEMPLATE.md 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/.github/PULL_REQUEST_TEMPLATE.md 2023-12-31 09:36:39.000000000 +0100 @@ -5,18 +5,3 @@ --- ### New Version Info -#### Author's Instructions -- [ ] Derive a new `MAJOR.MINOR.PATCH` version number. Increment the: - - `MAJOR` version when you make incompatible API changes - - `MINOR` version when you add functionality in a backwards-compatible manner - - `PATCH` version when you make backwards-compatible bug fixes -- [ ] Update [CHANGELOG.md](https://github.com/scrooloose/nerdtree/blob/master/CHANGELOG.md), following the established pattern. -#### Collaborator's Instructions -- [ ] Review [CHANGELOG.md](https://github.com/scrooloose/nerdtree/blob/master/CHANGELOG.md), suggesting a different version number if necessary. -- [ ] After merging, tag the commit using these (Mac-compatible) bash commands: - ```bash - git checkout master - git pull - sed -n "$(grep -n -m2 '####' CHANGELOG.md | cut -f1 -d: | sed 'N;s/\n/,/')p" CHANGELOG.md | sed '$d' - git tag -a $(read -p "Tag Name: " tag;echo $tag) -m"$(git show --quiet --pretty=%s)";git push origin --tags - ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/.github/workflows/vint.yml new/nerdtree-7.1.0/.github/workflows/vint.yml --- old/nerdtree-6.10.16/.github/workflows/vint.yml 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/.github/workflows/vint.yml 2023-12-31 09:36:39.000000000 +0100 @@ -7,9 +7,9 @@ runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@master + uses: actions/checkout@v3 - name: Run vint with reviewdog - uses: reviewdog/action-vint@v1.0.1 + uses: reviewdog/action-vint@v1 with: github_token: ${{ secrets.github_token }} reporter: github-pr-review diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/CHANGELOG.md new/nerdtree-7.1.0/CHANGELOG.md --- old/nerdtree-6.10.16/CHANGELOG.md 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/CHANGELOG.md 2023-12-31 09:36:39.000000000 +0100 @@ -3,7 +3,37 @@ PATCH versions are listed from newest to oldest under their respective MAJOR.MINOR version in an unordered list. The format is: - **.PATCH**: Pull Request Title (PR Author) [PR Number](Link to PR) + or + - **.PATCH**: + - Pull Request Title 1 (PR Author) [PR Number](Link to PR) + - Pull Request Title 2 (PR Author) [PR Number](Link to PR) + . + . + . + - Pull Request Title n (PR Author) [PR Number](Link to PR) --> +#### 7.1 +- **.0**: + - fix: typo in the docs. (bl4kraven) [#1390](https://github.com/preservim/nerdtree/pull/1390) + - feat: add NERDTreeExplore command. (msibal6) [#1389](https://github.com/preservim/nerdtree/pull/1389) + - fix: mapping description in NERDTree.txt. (roccomao) [#1393](https://github.com/preservim/nerdtree/pull/1393) +#### 7.0 +- **.1**: + - Fix NERDTreeFind to handle directory case sensitivity. (dangibson) [#1387](https://github.com/preservim/nerdtree/pull/1387) + - New Show file lines toggle. (hsnks100) [#1384](https://github.com/preservim/nerdtree/pull/1384) + - Add case sensitivity for refreshing nodes. (rzvxa) [#1382](https://github.com/preservim/nerdtree/pull/1382) + - Clarified the NERDTreeChangePermissions prompt. (rzvxa) [#1381](https://github.com/preservim/nerdtree/pull/1381) + - New reveal functionality for Windows. (rzvxa) [#1366](https://github.com/preservim/nerdtree/pull/1366) + - Fix bracket escaping in path names. (kai-patel) [#1359](https://github.com/preservim/nerdtree/pull/1359) + - Fix Case Sensitive Move Operation. (rzvxa) [#1375](https://github.com/preservim/nerdtree/pull/1375) + - New menu command for changing selected node permissions. (mjkloeckner) [#1348](https://github.com/preservim/nerdtree/pull/1348) + - Fix documentation errors. (BubuDavid) [#1372](https://github.com/preservim/nerdtree/pull/1372) + - Fix typo in nerdtree.vim file. (SandeshPyakurel) [#1380](https://github.com/preservim/nerdtree/pull/1380) +- **.0**: + - Now we warn about invalid files instead of ignoring them silently. (rmonico) [#1365](https://github.com/preservim/nerdtree/pull/1365) + - New g:NERDTreeWinPos options for top and bottom. (rzvxa) [#1363](https://github.com/preservim/nerdtree/pull/1363) + - Fix error in README. (nickspoons) [#1330](https://github.com/preservim/nerdtree/pull/1330) + - Fix typo in the documentation. (chapeupreto) [#1306](https://github.com/preservim/nerdtree/pull/1306) #### 6.10 - **.16**: Fix documentation errors. (lifecrisis) [#1269](https://github.com/preservim/nerdtree/pull/1269) - **.15**: Ensure backward compatible testing of types. (lifecrisis) [#1266](https://github.com/preservim/nerdtree/pull/1266) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/README.markdown new/nerdtree-7.1.0/README.markdown --- old/nerdtree-6.10.16/README.markdown 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/README.markdown 2023-12-31 09:36:39.000000000 +0100 @@ -84,7 +84,7 @@ After installing NERDTree, the best way to learn it is to turn on the Quick Help. Open NERDTree with the `:NERDTree` command, and press `?` to turn on the Quick Help, which will show you all the mappings and commands available in the NERDTree. Of course, your most complete source of information is the documentation: `:help NERDTree`. ## NERDTree Plugins -NERDTree can be extended with custom mappings and functions using its built-in API. The details of this API and are described in the included documentation. Several plugins have been written, and are available on Github for installation like any other plugin. The plugins in this list are maintained (or not) by their respective owners, and certain combinations may be incompatible. +NERDTree can be extended with custom mappings and functions using its built-in API. The details of this API are described in the included documentation. Several plugins have been written, and are available on Github for installation like any other plugin. The plugins in this list are maintained (or not) by their respective owners, and certain combinations may be incompatible. * [Xuyuanp/nerdtree-git-plugin](https://github.com/Xuyuanp/nerdtree-git-plugin): Shows Git status flags for files and folders in NERDTree. * [ryanoasis/vim-devicons](https://github.com/ryanoasis/vim-devicons): Adds filetype-specific icons to NERDTree files and folders, @@ -164,7 +164,7 @@ ```vim " If another buffer tries to replace NERDTree, put it in the other window, and bring back NERDTree. -autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | +autocmd BufEnter * if winnr() == winnr('h') && bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | \ let buf=bufnr() | buffer# | execute "normal! \<C-W>w" | execute 'buffer'.buf | endif ``` @@ -172,7 +172,7 @@ ```vim " Open the existing NERDTree on each new tab. -autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif +autocmd BufWinEnter * if &buftype != 'quickfix' && getcmdwintype() == '' | silent NERDTreeMirror | endif ``` or change your NERDTree-launching shortcut key like so: ```vim @@ -183,11 +183,33 @@ ### How can I change the default arrows? ```vim -let g:NERDTreeDirArrowExpandable = 'â¸' -let g:NERDTreeDirArrowCollapsible = 'â¾' +let g:NERDTreeDirArrowExpandable = '?' +let g:NERDTreeDirArrowCollapsible = '?' ``` The preceding values are the non-Windows default arrow symbols. Setting these variables to empty strings will remove the arrows completely and shift the entire tree two character positions to the left. See `:h NERDTreeDirArrowExpandable` for more details. +### How can I show lines of files? + +```vim +let g:NERDTreeFileLines = 1 +``` + +Lines in the file are displayed as shown below. +``` +</pack/packer/start/nerdtree/ +⸠autoload/ +⸠doc/ +⸠lib/ +⸠nerdtree_plugin/ +⸠plugin/ +⸠syntax/ + _config.yml (1) + CHANGELOG.md (307) + LICENCE (13) + README.markdown (234) + screenshot.png (219) +``` + ### Can NERDTree access remote files via scp or ftp? Short answer: No, and there are no plans to add that functionality. However, Vim ships with a plugin that does just that. It's called netrw, and by adding the following lines to your `.vimrc`, you can use it to open files over the `scp:`, `ftp:`, or other protocols, while still using NERDTree for all local files. The function seamlessly makes the decision to open NERDTree or netrw, and other supported protocols can be added to the regular expression. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/autoload/nerdtree/ui_glue.vim new/nerdtree-7.1.0/autoload/nerdtree/ui_glue.vim --- old/nerdtree-6.10.16/autoload/nerdtree/ui_glue.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/autoload/nerdtree/ui_glue.vim 2023-12-31 09:36:39.000000000 +0100 @@ -57,6 +57,7 @@ call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleFilters, 'scope': 'all', 'callback': s.'toggleIgnoreFilter' }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleFiles, 'scope': 'all', 'callback': s.'toggleShowFiles' }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleBookmarks, 'scope': 'all', 'callback': s.'toggleShowBookmarks' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleFileLines, 'scope': 'all', 'callback': s.'toggleShowFileLines' }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCloseDir, 'scope': 'Node', 'callback': s.'closeCurrentDir' }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCloseChildren, 'scope': 'DirNode', 'callback': s.'closeChildren' }) @@ -641,6 +642,7 @@ function! nerdtree#ui_glue#setupCommands() abort command! -n=? -complete=dir -bar NERDTree :call g:NERDTreeCreator.CreateTabTree('<args>') command! -n=? -complete=dir -bar NERDTreeToggle :call g:NERDTreeCreator.ToggleTabTree('<args>') + command! -n=? -complete=dir -bar NERDTreeExplore :call g:NERDTreeCreator.CreateExploreTree('<args>') command! -n=0 -bar NERDTreeClose :call g:NERDTree.Close() command! -n=1 -complete=customlist,nerdtree#completeBookmarks -bar NERDTreeFromBookmark call g:NERDTreeCreator.CreateTabTree('<args>') command! -n=0 -bar NERDTreeMirror call g:NERDTreeCreator.CreateMirror() @@ -685,6 +687,12 @@ call b:NERDTree.ui.toggleShowHidden() endfunction +" FUNCTION: s:toggleShowFileLines() {{{1 +" toggles the display of hidden files +function! s:toggleShowFileLines() abort + call b:NERDTree.ui.toggleShowFileLines() +endfunction + " FUNCTION: s:toggleZoom() {{{1 function! s:toggleZoom() abort call b:NERDTree.ui.toggleZoom() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/autoload/nerdtree.vim new/nerdtree-7.1.0/autoload/nerdtree.vim --- old/nerdtree-6.10.16/autoload/nerdtree.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/autoload/nerdtree.vim 2023-12-31 09:36:39.000000000 +0100 @@ -198,16 +198,42 @@ runtime! nerdtree_plugin/**/*.vim endfunction -"FUNCTION: nerdtree#runningWindows(dir) {{{2 +"FUNCTION: nerdtree#runningWindows() {{{2 function! nerdtree#runningWindows() abort return has('win16') || has('win32') || has('win64') endfunction -"FUNCTION: nerdtree#runningCygwin(dir) {{{2 +"FUNCTION: nerdtree#runningCygwin() {{{2 function! nerdtree#runningCygwin() abort return has('win32unix') endfunction +"FUNCTION: nerdtree#runningMac() {{{2 +function! nerdtree#runningMac() abort + return has('gui_mac') || has('gui_macvim') || has('mac') || has('osx') +endfunction + +" FUNCTION: nerdtree#osDefaultCaseSensitiveFS() {{{2 +function! nerdtree#osDefaultCaseSensitiveFS() abort + return s:osDefaultCaseSensitiveFS +endfunction + +" FUNCTION: nerdtree#caseSensitiveFS() {{{2 +function! nerdtree#caseSensitiveFS() abort + return g:NERDTreeCaseSensitiveFS == 1 || + \((g:NERDTreeCaseSensitiveFS == 2 || g:NERDTreeCaseSensitiveFS == 3) && + \nerdtree#osDefaultCaseSensitiveFS()) +endfunction + +"FUNCTION: nerdtree#pathEquals(lhs, rhs) {{{2 +function! nerdtree#pathEquals(lhs, rhs) abort + if nerdtree#caseSensitiveFS() + return a:lhs ==# a:rhs + else + return a:lhs ==? a:rhs + endif +endfunction + " SECTION: View Functions {{{1 "============================================================ @@ -246,4 +272,12 @@ call b:NERDTree.render() endfunction +if nerdtree#runningWindows() + let s:osDefaultCaseSensitiveFS = 0 +elseif nerdtree#runningMac() + let s:osDefaultCaseSensitiveFS = 0 +else + let s:osDefaultCaseSensitiveFS = 1 +endif + " vim: set sw=4 sts=4 et fdm=marker: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/doc/NERDTree.txt new/nerdtree-7.1.0/doc/NERDTree.txt --- old/nerdtree-6.10.16/doc/NERDTree.txt 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/doc/NERDTree.txt 2023-12-31 09:36:39.000000000 +0100 @@ -287,6 +287,7 @@ f........Toggle whether the file filters are used...................|NERDTree-f| F........Toggle whether files are displayed.........................|NERDTree-F| B........Toggle whether the bookmark table is displayed.............|NERDTree-B| +L........Toggle whether the number of lines in files is displayed...|NERDTree-L| q........Close the NERDTree window..................................|NERDTree-q| A........Zoom (maximize/minimize) the NERDTree window...............|NERDTree-A| @@ -602,6 +603,14 @@ Toggles whether the bookmarks table is displayed. ------------------------------------------------------------------------------ + *NERDTree-L* +Default key: L +Map setting: *NERDTreeMapToggleFileLines* +Applies to: no restrictions. + +Toggles whether the number of lines in files is displayed. + +------------------------------------------------------------------------------ *NERDTree-q* Default key: q Map setting: *NERDTreeMapQuit* @@ -673,6 +682,9 @@ |NERDTreeAutoCenterThreshold| Controls the sensitivity of autocentering. +|NERDTreeCaseSensitiveFS| Tells the NERDTree whether or not it is + running in on a case sensitive file system. + |NERDTreeCaseSensitiveSort| Tells the NERDTree whether to be case sensitive or not when sorting nodes. @@ -809,6 +821,26 @@ |NERDTreeAutoCenter| for details. ------------------------------------------------------------------------------ + *NERDTreeCaseSensitiveFS* +Values: 0, 1, 2 or 3. +Default: 2. + +If set to 0, the NERDTree will interact with the file system without case +sensitivity. + +If set to 1, the NERDTree will interact with the file system in a case-sensitive +manner. + +If set to 2, the NERDTree assumes its case sensitivity from the OS it is +running on. It Will default to case-insensitive on Windows and macOS +machines and case-sensitive on everything else. Since it's not a foolproof +way of detection, NERDTree won't proceed with any write actions when +the destination is ambiguous. + +Setting it to 3 will perform just like 2, but without suppressing write +actions. + +------------------------------------------------------------------------------ *NERDTreeCaseSensitiveSort* Values: 0 or 1. Default: 0. @@ -1041,6 +1073,20 @@ navigating to a different part of the tree. ------------------------------------------------------------------------------ + *NERDTreeShowFilesLines* +Values: 0 or 1. +Default: 0. + +If this setting is set to 1 then the NERDTree shows number of lines for each +file. + +This setting can be toggled dynamically, per tree, with the |NERDTree-L| +mapping. +Use one of the follow lines for this setting: > + let NERDTreeShowFilesLines=0 + let NERDTreeShowFilesLines=1 +< +------------------------------------------------------------------------------ *NERDTreeShowHidden* Values: 0 or 1. Default: 0. @@ -1128,7 +1174,7 @@ ------------------------------------------------------------------------------ *NERDTreeWinPos* -Values: "left" or "right" +Values: "left", "right", "top" or "bottom" Default: "left". This setting is used to determine where NERDTree window is placed on the @@ -1138,6 +1184,13 @@ simultaneously. For example, you could have the taglist plugin on the left of the window and the NERDTree on the right. +When setting this variable to "top" or "bottom" make sure to also change the +|NERDTreeWinSize| to a more reasonable size. + +For example: +> + let g:NERDTreeWinSize = 15 +< ------------------------------------------------------------------------------ *NERDTreeWinSize* Values: a positive integer. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/lib/nerdtree/creator.vim new/nerdtree-7.1.0/lib/nerdtree/creator.vim --- old/nerdtree-6.10.16/lib/nerdtree/creator.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/lib/nerdtree/creator.vim 2023-12-31 09:36:39.000000000 +0100 @@ -38,6 +38,29 @@ return 'NERD_tree_' endfunction +" FUNCTION: s:Creator.CreateExploreTree(dir) {{{1 +function! s:Creator.CreateExploreTree(dir) + try + let path = g:NERDTreePath.New(a:dir) + catch /^NERDTree.InvalidArgumentsError/ + call nerdtree#echo('Invalid directory name:' . a:dir) + return + endtry + + let creator = s:Creator.New() + if getbufinfo('%')[0].changed && !&hidden && !&autowriteall + let l:splitLocation = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'top' ? 'topleft ' : 'botright ' + let l:splitDirection = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'right' ? 'vertical' : '' + silent! execute l:splitLocation . l:splitDirection . ' new' + else + silent! execute 'enew' + endif + + call creator.createWindowTree(a:dir) + "we want windowTree buffer to disappear after moving to any other buffer + setlocal bufhidden=wipe +endfunction + " FUNCTION: s:Creator.CreateTabTree(a:name) {{{1 function! s:Creator.CreateTabTree(name) let creator = s:Creator.New() @@ -182,16 +205,17 @@ " Initialize the NERDTree window. Open the window, size it properly, set all " local options, etc. function! s:Creator._createTreeWin() - let l:splitLocation = g:NERDTreeWinPos ==# 'left' ? 'topleft ' : 'botright ' + let l:splitLocation = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'top' ? 'topleft ' : 'botright ' + let l:splitDirection = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'right' ? 'vertical' : '' let l:splitSize = g:NERDTreeWinSize if !g:NERDTree.ExistsForTab() let t:NERDTreeBufName = self._nextBufferName() - silent! execute l:splitLocation . 'vertical ' . l:splitSize . ' new' + silent! execute l:splitLocation . l:splitDirection . ' ' . l:splitSize . ' new' silent! execute 'edit ' . t:NERDTreeBufName - silent! execute 'vertical resize '. l:splitSize + silent! execute l:splitDirection . ' resize '. l:splitSize else - silent! execute l:splitLocation . 'vertical ' . l:splitSize . ' split' + silent! execute l:splitLocation . l:splitDirection . ' ' . l:splitSize . ' split' silent! execute 'buffer ' . t:NERDTreeBufName endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/lib/nerdtree/path.vim new/nerdtree-7.1.0/lib/nerdtree/path.vim --- old/nerdtree-6.10.16/lib/nerdtree/path.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/lib/nerdtree/path.vim 2023-12-31 09:36:39.000000000 +0100 @@ -65,6 +65,25 @@ let self.cachedDisplayString = self.addDelimiter(self.cachedDisplayString) . ' -> ' . self.symLinkDest endif + if !self.isDirectory && b:NERDTree.ui.getShowFileLines() != 0 + let l:bufname = self.str({'format': 'Edit'}) + let l:lines = 0 + if executable('wc') + let l:lines = split(system('wc -l "'.l:bufname.'"'))[0] + elseif nerdtree#runningWindows() + let l:lines = substitute(system('type "'.l:bufname.'" | find /c /v ""'), '\n', '', 'g') + else + let s:lines = readfile(l:bufname) + let l:lines = 0 + for s:line in s:lines + let l:lines += 1 + if l:lines >= 20000 + break + endif + endfor + endif + let self.cachedDisplayString = self.addDelimiter(self.cachedDisplayString) . ' ('.l:lines.')' + endif if self.isReadOnly let self.cachedDisplayString = self.addDelimiter(self.cachedDisplayString) . ' ['.g:NERDTreeGlyphReadOnly.']' endif @@ -530,7 +549,7 @@ return 0 endif for i in range(0, l:that_count-1) - if self.pathSegments[i] !=# a:parent.pathSegments[i] + if !nerdtree#pathEquals(self.pathSegments[i], a:parent.pathSegments[i]) return 0 endif endfor @@ -554,11 +573,7 @@ " Args: " path: the other path obj to compare this with function! s:Path.equals(path) - if nerdtree#runningWindows() - return self.str() ==? a:path.str() - else - return self.str() ==# a:path.str() - endif + return nerdtree#pathEquals(self.str(), a:path.str()) endfunction " FUNCTION: Path.New(pathStr) {{{1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/lib/nerdtree/tree_dir_node.vim new/nerdtree-7.1.0/lib/nerdtree/tree_dir_node.vim --- old/nerdtree-6.10.16/lib/nerdtree/tree_dir_node.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/lib/nerdtree/tree_dir_node.vim 2023-12-31 09:36:39.000000000 +0100 @@ -121,8 +121,14 @@ if a:path.equals(self.path) return self endif - if stridx(a:path.str(), self.path.str(), 0) ==# -1 - return {} + if nerdtree#caseSensitiveFS() + if stridx(a:path.str(), self.path.str(), 0) ==# -1 + return {} + endif + else + if stridx(tolower(a:path.str()), tolower(self.path.str()), 0) ==# -1 + return {} + endif endif if self.path.isDirectory @@ -278,6 +284,10 @@ else let l:pathSpec = escape(fnamemodify(self.path.str({'format': 'Glob'}), ':.'), ',') + if nerdtree#runningWindows() + let l:pathSpec = substitute(l:pathSpec, "\\[\\(.*\\]\\)", "[[]\\1", "g") + endif + " On Windows, the drive letter may be removed by "fnamemodify()". if nerdtree#runningWindows() && l:pathSpec[0] == nerdtree#slash() let l:pathSpec = self.path.drive . l:pathSpec @@ -421,6 +431,7 @@ endif let invalidFilesFound = 0 + let invalidFiles = [] for i in files try let path = g:NERDTreePath.New(i) @@ -428,6 +439,7 @@ call g:NERDTreePathNotifier.NotifyListeners('init', path, self.getNerdtree(), {}) catch /^NERDTree.\(InvalidArguments\|InvalidFiletype\)Error/ let invalidFilesFound += 1 + let invalidFiles += [i] endtry endfor @@ -437,7 +449,7 @@ call nerdtree#echo('') if invalidFilesFound - call nerdtree#echoWarning(invalidFilesFound . ' file(s) could not be loaded into the NERD tree') + call nerdtree#echoWarning(invalidFilesFound . ' Invalid file(s): ' . join(invalidFiles, ', ')) endif return self.getChildCount() endfunction @@ -564,12 +576,13 @@ let files = self._glob('*', 1) + self._glob('.*', 0) let newChildNodes = [] let invalidFilesFound = 0 + let invalidFiles = [] for i in files try "create a new path and see if it exists in this nodes children let path = g:NERDTreePath.New(i) let newNode = self.getChild(path) - if newNode !=# {} + if newNode !=# {} && path.str() ==# newNode.path.str() call newNode.refresh() call add(newChildNodes, newNode) @@ -580,7 +593,8 @@ call add(newChildNodes, newNode) endif catch /^NERDTree.\(InvalidArguments\|InvalidFiletype\)Error/ - let invalidFilesFound = 1 + let invalidFilesFound += 1 + let invalidFiles += [i] endtry endfor @@ -589,7 +603,7 @@ call self.sortChildren() if invalidFilesFound - call nerdtree#echoWarning('some files could not be loaded into the NERD tree') + call nerdtree#echoWarning(invalidFilesFound . ' Invalid file(s): ' . join(invalidFiles, ', ')) endif endif endfunction diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/lib/nerdtree/ui.vim new/nerdtree-7.1.0/lib/nerdtree/ui.vim --- old/nerdtree-6.10.16/lib/nerdtree/ui.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/lib/nerdtree/ui.vim 2023-12-31 09:36:39.000000000 +0100 @@ -103,6 +103,7 @@ let help .= '" '. g:NERDTreeMapToggleFilters .': file filters (' . (self.isIgnoreFilterEnabled() ? 'on' : 'off') . ")\n" let help .= '" '. g:NERDTreeMapToggleFiles .': files (' . (self.getShowFiles() ? 'on' : 'off') . ")\n" let help .= '" '. g:NERDTreeMapToggleBookmarks .': bookmarks (' . (self.getShowBookmarks() ? 'on' : 'off') . ")\n" + let help .= '" '. g:NERDTreeMapToggleFileLines .': files lines (' . (self.getShowFileLines() ? 'on' : 'off') . ")\n" " add quickhelp entries for each custom key map let help .= "\"\n\" ----------------------------\n" @@ -147,6 +148,7 @@ let newObj._showFiles = g:NERDTreeShowFiles let newObj._showHidden = g:NERDTreeShowHidden let newObj._showBookmarks = g:NERDTreeShowBookmarks + let newObj._showFileLines = g:NERDTreeFileLines return newObj endfunction @@ -284,6 +286,11 @@ return self._showHidden endfunction +" FUNCTION: s:UI.getShowFileLines() {{{1 +function! s:UI.getShowFileLines() + return self._showFileLines +endfunction + " FUNCTION: s:UI._indentLevelFor(line) {{{1 function! s:UI._indentLevelFor(line) " Replace multi-character DirArrows with a single space so the @@ -511,6 +518,15 @@ call self.renderViewSavingPosition() call self.centerView() endfunction + +" FUNCTION: s:UI.toggleShowFileLines() {{{1 +" toggles the display of file lines +function! s:UI.toggleShowFileLines() + let self._showFileLines = !self._showFileLines + call self.nerdtree.root.refresh() + call self.renderViewSavingPosition() + call self.centerView() +endfunction " FUNCTION: s:UI.toggleZoom() {{{1 " zoom (maximize/minimize) the NERDTree window diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/nerdtree_plugin/fs_menu.vim new/nerdtree-7.1.0/nerdtree_plugin/fs_menu.vim --- old/nerdtree-6.10.16/nerdtree_plugin/fs_menu.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/nerdtree_plugin/fs_menu.vim 2023-12-31 09:36:39.000000000 +0100 @@ -23,8 +23,8 @@ call NERDTreeAddMenuItem({'text': '(m)ove the current node', 'shortcut': 'm', 'callback': 'NERDTreeMoveNode'}) call NERDTreeAddMenuItem({'text': '(d)elete the current node', 'shortcut': 'd', 'callback': 'NERDTreeDeleteNode'}) -if has('gui_mac') || has('gui_macvim') || has('mac') - call NERDTreeAddMenuItem({'text': '(r)eveal in Finder the current node', 'shortcut': 'r', 'callback': 'NERDTreeRevealInFinder'}) +if nerdtree#runningMac() + call NERDTreeAddMenuItem({'text': '(r)eveal the current node in the Finder', 'shortcut': 'r', 'callback': 'NERDTreeRevealInFinder'}) call NERDTreeAddMenuItem({'text': '(o)pen the current node with system editor', 'shortcut': 'o', 'callback': 'NERDTreeExecuteFile'}) call NERDTreeAddMenuItem({'text': '(q)uicklook the current node', 'shortcut': 'q', 'callback': 'NERDTreeQuickLook'}) endif @@ -35,6 +35,7 @@ endif if nerdtree#runningWindows() + call NERDTreeAddMenuItem({'text': '(r)eveal the current node in the Explorer', 'shortcut': 'r', 'callback': 'NERDTreeRevealInExplorer'}) call NERDTreeAddMenuItem({'text': '(o)pen the current node with system editor', 'shortcut': 'o', 'callback': 'NERDTreeExecuteFileWindows'}) endif @@ -45,6 +46,7 @@ if has('unix') || has('osx') call NERDTreeAddMenuItem({'text': '(l)ist the current node', 'shortcut': 'l', 'callback': 'NERDTreeListNode'}) + call NERDTreeAddMenuItem({'text': '(C)hange node permissions', 'shortcut':'C', 'callback': 'NERDTreeChangePermissions'}) else call NERDTreeAddMenuItem({'text': '(l)ist the current node', 'shortcut': 'l', 'callback': 'NERDTreeListNodeWin32'}) endif @@ -148,18 +150,38 @@ let quotedFileName = fnameescape(a:newNodeName) let editStr = g:NERDTreePath.New(a:newNodeName).str({'format': 'Edit'}) endif - " 1. ensure that a new buffer is loaded - call nerdtree#exec('badd ' . quotedFileName, 0) - " 2. ensure that all windows which display the just deleted filename - " display a buffer for a new filename. let s:originalTabNumber = tabpagenr() let s:originalWindowNumber = winnr() - call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . a:bufNum . " | exec ':e! " . editStr . "' | endif", 0) + let l:tempBufferName = 'NERDTreeRenameTempBuffer' + + " 1. swap deleted file buffer with a temporary one + " this step is needed to compensate for case insensitive filesystems + + " 1.1. create an intermediate(temporary) buffer + call nerdtree#exec('badd ' . l:tempBufferName, 0) + let l:tempBufNum = bufnr(l:tempBufferName) + " 1.2. ensure that all windows which display the just deleted filename + " display the new temp buffer. + call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . a:bufNum . " | exec ':e! " . l:tempBufferName . "' | endif", 0) + " 1.3. We don't need the deleted file buffer anymore + try + call nerdtree#exec('confirm bwipeout ' . a:bufNum, 0) + catch + " This happens when answering Cancel if confirmation is needed. Do nothing. + endtry + + " 2. swap temporary buffer with the new filename buffer + " 2.1. create the actual new file buffer + call nerdtree#exec('badd ' . quotedFileName, 0) + + " 2.2. ensure that all windows which display the temporary buffer + " display a buffer for the new filename. + call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . l:tempBufNum . " | exec ':e! " . editStr . "' | endif", 0) call nerdtree#exec('tabnext ' . s:originalTabNumber, 1) call nerdtree#exec(s:originalWindowNumber . 'wincmd w', 1) - " 3. We don't need a previous buffer anymore + " 2.3. We don't need the temporary buffer anymore try - call nerdtree#exec('confirm bwipeout ' . a:bufNum, 0) + call nerdtree#exec('confirm bwipeout ' . l:tempBufNum, 0) catch " This happens when answering Cancel if confirmation is needed. Do nothing. endtry @@ -205,7 +227,24 @@ let prompt = s:inputPrompt('move') let newNodePath = input(prompt, curNode.path.str(), 'file') while filereadable(newNodePath) - call nerdtree#echoWarning('This destination already exists. Try again.') + " allow renames with different casing when g:NERDTreeCaseSensitiveFS + " is set to either 0 or 3 and the 2 paths are equal + if (g:NERDTreeCaseSensitiveFS == 0 || g:NERDTreeCaseSensitiveFS == 3) && + \nerdtree#pathEquals(curNode.path.str(), newNodePath) + break + endif + + call nerdtree#echoWarning('This destination already exists, Try again.') + + " inform the user about the flag if we think it is a false positive + " when g:NERDTreeCaseSensitiveFS is set to 2 + if g:NERDTreeCaseSensitiveFS == 2 && + \!nerdtree#osDefaultCaseSensitiveFS() && + \nerdtree#pathEquals(curNode.path.str(), newNodePath) + echon "\n(If it is a false positive please consider assigning NERDTreeCaseSensitiveFS's value)" + endif + + " prompt the user again let newNodePath = substitute(input(prompt, curNode.path.str(), 'file'), '\(^\s*\|\s*$\)', '', 'g') endwhile @@ -333,6 +372,29 @@ call nerdtree#echo('node not recognized') endfunction +" FUNCTION: NERDTreeChangePermissions() {{{1 +function! NERDTreeChangePermissions() + let l:node = g:NERDTreeFileNode.GetSelected() + let l:prompt = "change node permissions (chmod args): " + let l:newNodePerm = input(l:prompt) + + if !empty(l:node) + let l:path = l:node.path.str() + let l:cmd = 'chmod ' .. newNodePerm .. ' ' .. path + let l:error = split(system(l:cmd), '\n') + + if !empty(l:error) + call nerdtree#echo(l:error[0]) + endif + + call b:NERDTree.root.refresh() + call b:NERDTree.render() + return + endif + + call nerdtree#echo('node not recognized') +endfunction + " FUNCTION: NERDTreeCopyNode() {{{1 function! NERDTreeCopyNode() let currentNode = g:NERDTreeFileNode.GetSelected() @@ -453,6 +515,17 @@ call system('xdg-open ' . shellescape(l:node.path.str())) endfunction +" FUNCTION: NERDTreeRevealInExplorer() {{{1 +function! NERDTreeRevealInExplorer() + let l:node = g:NERDTreeFileNode.GetSelected() + + if empty(l:node) + return + endif + + call system('cmd.exe /c explorer /select, ' . shellescape(l:node.path.str())) +endfunction + " FUNCTION: NERDTreeExecuteFileWindows() {{{1 function! NERDTreeExecuteFileWindows() let l:node = g:NERDTreeFileNode.GetSelected() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/plugin/NERD_tree.vim new/nerdtree-7.1.0/plugin/NERD_tree.vim --- old/nerdtree-6.10.16/plugin/NERD_tree.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/plugin/NERD_tree.vim 2023-12-31 09:36:39.000000000 +0100 @@ -29,6 +29,7 @@ "SECTION: Initialize variable calls and other random constants {{{2 let g:NERDTreeAutoCenter = get(g:, 'NERDTreeAutoCenter', 1) let g:NERDTreeAutoCenterThreshold = get(g:, 'NERDTreeAutoCenterThreshold', 3) +let g:NERDTreeCaseSensitiveFS = get(g:, 'NERDTreeCaseSensitiveFS', 2) let g:NERDTreeCaseSensitiveSort = get(g:, 'NERDTreeCaseSensitiveSort', 0) let g:NERDTreeNaturalSort = get(g:, 'NERDTreeNaturalSort', 0) let g:NERDTreeSortHiddenFirst = get(g:, 'NERDTreeSortHiddenFirst', 1) @@ -52,6 +53,8 @@ let g:NERDTreeShowHidden = get(g:, 'NERDTreeShowHidden', 0) let g:NERDTreeShowLineNumbers = get(g:, 'NERDTreeShowLineNumbers', 0) let g:NERDTreeSortDirs = get(g:, 'NERDTreeSortDirs', 1) +let g:NERDTreeFileLines = get(g:, 'NERDTreeFileLines', 0) + if !nerdtree#runningWindows() && !nerdtree#runningCygwin() let g:NERDTreeDirArrowExpandable = get(g:, 'NERDTreeDirArrowExpandable', 'â¸') @@ -128,6 +131,7 @@ let g:NERDTreeMapToggleFiles = get(g:, 'NERDTreeMapToggleFiles', 'F') let g:NERDTreeMapToggleFilters = get(g:, 'NERDTreeMapToggleFilters', 'f') let g:NERDTreeMapToggleHidden = get(g:, 'NERDTreeMapToggleHidden', 'I') +let g:NERDTreeMapToggleFileLines = get(g:, 'NERDTreeMapToggleFileLines', 'L') let g:NERDTreeMapToggleZoom = get(g:, 'NERDTreeMapToggleZoom', 'A') let g:NERDTreeMapUpdir = get(g:, 'NERDTreeMapUpdir', 'u') let g:NERDTreeMapUpdirKeepOpen = get(g:, 'NERDTreeMapUpdirKeepOpen', 'U') @@ -142,6 +146,7 @@ "============================================================ call nerdtree#ui_glue#setupCommands() + " SECTION: Auto commands {{{1 "============================================================ augroup NERDTree diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdtree-6.10.16/syntax/nerdtree.vim new/nerdtree-7.1.0/syntax/nerdtree.vim --- old/nerdtree-6.10.16/syntax/nerdtree.vim 2021-09-28 02:43:04.000000000 +0200 +++ new/nerdtree-7.1.0/syntax/nerdtree.vim 2023-12-31 09:36:39.000000000 +0100 @@ -28,7 +28,7 @@ hi! link NERDTreeNodeDelimiters Ignore endif -"highlighing for directory nodes and file nodes +"highlighting for directory nodes and file nodes syn match NERDTreeDirSlash #/# containedin=NERDTreeDir if g:NERDTreeDirArrowExpandable !=# '' ++++++ vimplugin-table-mode-4.7.6.1.tar.gz -> vimplugin-table-mode-4.8.1.tar.gz ++++++ ++++ 2797 lines of diff (skipped)