mirror of
https://github.com/preservim/nerdtree.git
synced 2025-03-04 01:54:10 +08:00
add comments to MenuItem and MenuController methods
This commit is contained in:
parent
46710bfb25
commit
10bb62a728
@ -466,6 +466,7 @@ endfunction
|
|||||||
"============================================================
|
"============================================================
|
||||||
let s:MenuController = {}
|
let s:MenuController = {}
|
||||||
"FUNCTION: MenuController.New(menuItems) {{{3
|
"FUNCTION: MenuController.New(menuItems) {{{3
|
||||||
|
"create a new menu controller that operates on the given menu items
|
||||||
function! s:MenuController.New(menuItems)
|
function! s:MenuController.New(menuItems)
|
||||||
let newMenuController = copy(self)
|
let newMenuController = copy(self)
|
||||||
let newMenuController.menuItems = a:menuItems
|
let newMenuController.menuItems = a:menuItems
|
||||||
@ -473,6 +474,8 @@ function! s:MenuController.New(menuItems)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController.showMenu() {{{3
|
"FUNCTION: MenuController.showMenu() {{{3
|
||||||
|
"start the main loop of the menu and get the user to choose/execute a menu
|
||||||
|
"item
|
||||||
function! s:MenuController.showMenu()
|
function! s:MenuController.showMenu()
|
||||||
call self._saveOptions()
|
call self._saveOptions()
|
||||||
|
|
||||||
@ -495,7 +498,9 @@ function! s:MenuController.showMenu()
|
|||||||
call m.execute()
|
call m.execute()
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._prompt() {{{3
|
"FUNCTION: MenuController._prompt() {{{3
|
||||||
|
"get the prompt that should be displayed to the user
|
||||||
function! s:MenuController._prompt()
|
function! s:MenuController._prompt()
|
||||||
let toReturn = ''
|
let toReturn = ''
|
||||||
let toReturn .= "NERDTree Menu. Use j/k/enter and the shortcuts indicated\n"
|
let toReturn .= "NERDTree Menu. Use j/k/enter and the shortcuts indicated\n"
|
||||||
@ -515,12 +520,13 @@ function! s:MenuController._prompt()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._current(key) {{{3
|
"FUNCTION: MenuController._current(key) {{{3
|
||||||
|
"get the MenuItem that is curently selected
|
||||||
function! s:MenuController._current()
|
function! s:MenuController._current()
|
||||||
return self.menuItems[self.selection]
|
return self.menuItems[self.selection]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._handleKeypress(key) {{{3
|
"FUNCTION: MenuController._handleKeypress(key) {{{3
|
||||||
"changes the selection (if appropriate) and returns 1 if the user has made
|
"change the selection (if appropriate) and return 1 if the user has made
|
||||||
"their choice, 0 otherwise
|
"their choice, 0 otherwise
|
||||||
function! s:MenuController._handleKeypress(key)
|
function! s:MenuController._handleKeypress(key)
|
||||||
if a:key == 'j'
|
if a:key == 'j'
|
||||||
@ -546,6 +552,7 @@ function! s:MenuController._handleKeypress(key)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._allIndexesFor(shortcut) {{{3
|
"FUNCTION: MenuController._allIndexesFor(shortcut) {{{3
|
||||||
|
"get indexes to all menu items with the given shortcut
|
||||||
function! s:MenuController._allIndexesFor(shortcut)
|
function! s:MenuController._allIndexesFor(shortcut)
|
||||||
let toReturn = []
|
let toReturn = []
|
||||||
|
|
||||||
@ -559,6 +566,8 @@ function! s:MenuController._allIndexesFor(shortcut)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._nextIndexFor(shortcut) {{{3
|
"FUNCTION: MenuController._nextIndexFor(shortcut) {{{3
|
||||||
|
"get the index to the next menu item with the given shortcut, starts from the
|
||||||
|
"current cursor location and wraps around to the top again if need be
|
||||||
function! s:MenuController._nextIndexFor(shortcut)
|
function! s:MenuController._nextIndexFor(shortcut)
|
||||||
for i in range(self.selection+1, len(self.menuItems)-1)
|
for i in range(self.selection+1, len(self.menuItems)-1)
|
||||||
if self.menuItems[i].shortcut == a:shortcut
|
if self.menuItems[i].shortcut == a:shortcut
|
||||||
@ -576,6 +585,8 @@ function! s:MenuController._nextIndexFor(shortcut)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._redraw() {{{3
|
"FUNCTION: MenuController._redraw() {{{3
|
||||||
|
"wrapper for :redraw[!]. Exists mainly to encapsulate a hack where gtk2 gvim
|
||||||
|
"doesnt redraw properly without the !
|
||||||
function! s:MenuController._redraw()
|
function! s:MenuController._redraw()
|
||||||
if has("gui_running")
|
if has("gui_running")
|
||||||
redraw!
|
redraw!
|
||||||
@ -585,6 +596,8 @@ function! s:MenuController._redraw()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._setCmdheight() {{{3
|
"FUNCTION: MenuController._setCmdheight() {{{3
|
||||||
|
"sets &cmdheight to whatever is needed to display the menu. The gtk2 gvim
|
||||||
|
"spazzes out if we dont have an extra line
|
||||||
function! s:MenuController._setCmdheight()
|
function! s:MenuController._setCmdheight()
|
||||||
if has("gui_running")
|
if has("gui_running")
|
||||||
let &cmdheight = len(self.menuItems) + 3
|
let &cmdheight = len(self.menuItems) + 3
|
||||||
@ -594,6 +607,8 @@ function! s:MenuController._setCmdheight()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._saveOptions() {{{3
|
"FUNCTION: MenuController._saveOptions() {{{3
|
||||||
|
"set any vim options that are required to make the menu work (saving their old
|
||||||
|
"values)
|
||||||
function! s:MenuController._saveOptions()
|
function! s:MenuController._saveOptions()
|
||||||
let self._oldLazyredraw = &lazyredraw
|
let self._oldLazyredraw = &lazyredraw
|
||||||
let self._oldCmdheight = &cmdheight
|
let self._oldCmdheight = &cmdheight
|
||||||
@ -602,6 +617,7 @@ function! s:MenuController._saveOptions()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuController._restoreOptions() {{{3
|
"FUNCTION: MenuController._restoreOptions() {{{3
|
||||||
|
"restore the options we saved in _saveOptions()
|
||||||
function! s:MenuController._restoreOptions()
|
function! s:MenuController._restoreOptions()
|
||||||
let &cmdheight = self._oldCmdheight
|
let &cmdheight = self._oldCmdheight
|
||||||
let &lazyredraw = self._oldLazyredraw
|
let &lazyredraw = self._oldLazyredraw
|
||||||
@ -645,6 +661,7 @@ endfunction
|
|||||||
"============================================================
|
"============================================================
|
||||||
let s:MenuItem = {}
|
let s:MenuItem = {}
|
||||||
"FUNCTION: MenuItem.All() {{{3
|
"FUNCTION: MenuItem.All() {{{3
|
||||||
|
"get all top level menu items
|
||||||
function! s:MenuItem.All()
|
function! s:MenuItem.All()
|
||||||
if !exists("s:menuItems")
|
if !exists("s:menuItems")
|
||||||
let s:menuItems = []
|
let s:menuItems = []
|
||||||
@ -653,6 +670,7 @@ function! s:MenuItem.All()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuItem.AllEnabled() {{{3
|
"FUNCTION: MenuItem.AllEnabled() {{{3
|
||||||
|
"get all top level menu items that are currently enabled
|
||||||
function! s:MenuItem.AllEnabled()
|
function! s:MenuItem.AllEnabled()
|
||||||
let toReturn = []
|
let toReturn = []
|
||||||
for i in s:MenuItem.All()
|
for i in s:MenuItem.All()
|
||||||
@ -664,6 +682,7 @@ function! s:MenuItem.AllEnabled()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuItem.Create(options) {{{3
|
"FUNCTION: MenuItem.Create(options) {{{3
|
||||||
|
"make a new menu item and add it to the global list
|
||||||
function! s:MenuItem.Create(options)
|
function! s:MenuItem.Create(options)
|
||||||
let newMenuItem = copy(self)
|
let newMenuItem = copy(self)
|
||||||
|
|
||||||
@ -687,6 +706,7 @@ function! s:MenuItem.Create(options)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuItem.CreateSeparator(options) {{{3
|
"FUNCTION: MenuItem.CreateSeparator(options) {{{3
|
||||||
|
"make a new separator menu item and add it to the global list
|
||||||
function! s:MenuItem.CreateSeparator(options)
|
function! s:MenuItem.CreateSeparator(options)
|
||||||
let standard_options = { 'text': '--------------------',
|
let standard_options = { 'text': '--------------------',
|
||||||
\ 'shortcut': -1,
|
\ 'shortcut': -1,
|
||||||
@ -697,6 +717,10 @@ function! s:MenuItem.CreateSeparator(options)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuItem.enabled() {{{3
|
"FUNCTION: MenuItem.enabled() {{{3
|
||||||
|
"return 1 if this menu item should be displayed
|
||||||
|
"
|
||||||
|
"delegates off to the isActiveCallback, and defaults to 1 if no callback was
|
||||||
|
"specified
|
||||||
function! s:MenuItem.enabled()
|
function! s:MenuItem.enabled()
|
||||||
if self.isActiveCallback != -1
|
if self.isActiveCallback != -1
|
||||||
return {self.isActiveCallback}()
|
return {self.isActiveCallback}()
|
||||||
@ -705,6 +729,9 @@ function! s:MenuItem.enabled()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuItem.execute() {{{3
|
"FUNCTION: MenuItem.execute() {{{3
|
||||||
|
"perform the action behind this menu item, if this menuitem has children then
|
||||||
|
"display a new menu for them, otherwise deletegate off to the menuitem's
|
||||||
|
"callback
|
||||||
function! s:MenuItem.execute()
|
function! s:MenuItem.execute()
|
||||||
if len(self.children)
|
if len(self.children)
|
||||||
let mc = s:MenuController.New(self.children)
|
let mc = s:MenuController.New(self.children)
|
||||||
@ -717,6 +744,7 @@ function! s:MenuItem.execute()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: MenuItem.isSeparator() {{{3
|
"FUNCTION: MenuItem.isSeparator() {{{3
|
||||||
|
"return 1 if this menuitem is a separator
|
||||||
function! s:MenuItem.isSeparator()
|
function! s:MenuItem.isSeparator()
|
||||||
return self.callback == -1
|
return self.callback == -1
|
||||||
endfunction
|
endfunction
|
||||||
|
Loading…
x
Reference in New Issue
Block a user