commit 9de3e950fc52ed09dfe9e9ed31287a8cf4ef2d33
parent fc85a6f07c2cd694be93496ffad75be126240068
Author: mjkloeckner <martin.cachari@gmail.com>
Date: Sun, 5 Feb 2023 02:17:13 -0300
New menu command: Change selected node permissions
Diffstat:
1 file changed, 24 insertions(+), 0 deletions(-)
diff --git a/nerdtree_plugin/fs_menu.vim b/nerdtree_plugin/fs_menu.vim
@@ -45,6 +45,7 @@ call NERDTreeAddMenuItem({'text': (has('clipboard')?'copy (p)ath to clipboard':'
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
@@ -333,6 +334,29 @@ function! NERDTreeListNodeWin32()
call nerdtree#echo('node not recognized')
endfunction
+" FUNCTION: NERDTreeChangePermissions() {{{1
+function! NERDTreeChangePermissions()
+ let l:node = g:NERDTreeFileNode.GetSelected()
+ let l:prompt = "change node permissions: "
+ 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()