rb_nav 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +10 -8
- data/bin/rb_nav_methods +1 -1
- data/lib/rb_nav.vim +21 -3
- data/lib/rb_nav/version.rb +1 -1
- metadata +1 -1
data/README.markdown
CHANGED
@@ -5,12 +5,15 @@ modules, and methods in your Ruby project
|
|
5
5
|
|
6
6
|
[screenshots]
|
7
7
|
|
8
|
-
Benefits
|
8
|
+
Benefits:
|
9
9
|
|
10
10
|
* navigate the classes and modules in your Ruby projects with less typing
|
11
11
|
* jump to methods on current page more quickly
|
12
12
|
* symbol-centric approach to navigation might suit you better than the file-centric approach
|
13
13
|
|
14
|
+
Please check out my related Vim plugin
|
15
|
+
[ri.vim](http://danielchoi.com/software/ri_vim.html) for Ruby
|
16
|
+
documentation-browsing features.
|
14
17
|
|
15
18
|
## Prerequisites
|
16
19
|
|
@@ -40,16 +43,13 @@ For the all the commands below, the mapleader is assumed to be `,`. If it is
|
|
40
43
|
### Invoking the plugin
|
41
44
|
|
42
45
|
* `,N` navigate the classes and modules in your project
|
43
|
-
* `,n`
|
46
|
+
* `,n` navigate the methods in the current file
|
44
47
|
|
45
|
-
To change these keymappings, edit the two
|
48
|
+
To change these keymappings, edit the two lines at the end of
|
46
49
|
`~/.vim/plugin/rb_nav.vim`.
|
47
50
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
* `CTRL-p` and `CTRL-n` let you navigate the drop-down matches. Press `ENTER` to select
|
52
|
-
one.
|
51
|
+
* `CTRL-p` and `CTRL-n` let you navigate the drop-down matches
|
52
|
+
* `<TAB><ENTER>` selects an item
|
53
53
|
* `CTRL-e` closes the match list and lets you continue typing
|
54
54
|
* `CTRL-u`: when the match list is active, cycles forward through the match
|
55
55
|
list and what you've typed so far; when the match list is inactive, erases
|
@@ -58,6 +58,8 @@ one.
|
|
58
58
|
* `CTRL-y` selects the highlighted match without triggering ENTER
|
59
59
|
|
60
60
|
|
61
|
+
|
62
|
+
|
61
63
|
### The search path
|
62
64
|
|
63
65
|
By default RbNav searches files using these `grep` command flags:
|
data/bin/rb_nav_methods
CHANGED
data/lib/rb_nav.vim
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
let g:RbNavPaths = " . --exclude-dir='\.git' --exclude-dir='vendor' --exclude-dir='db' --include='*.rb' "
|
8
8
|
|
9
9
|
let s:last_class_search = ""
|
10
|
+
let s:selection_list = []
|
10
11
|
|
11
12
|
func! RbNavClasses()
|
12
13
|
endfunc
|
@@ -51,7 +52,8 @@ function! AutocompleteRbNavClasses(findstart, base)
|
|
51
52
|
return start
|
52
53
|
else
|
53
54
|
let res = []
|
54
|
-
|
55
|
+
let s:selection_list = RbNavClasses()
|
56
|
+
for m in s:selection_list
|
55
57
|
" why doesn't case insensitive flag work?
|
56
58
|
if m =~ substitute(a:base, '\*', '\\*', '')
|
57
59
|
call add(res, m)
|
@@ -86,8 +88,8 @@ function! AutocompleteRbNavMethods(findstart, base)
|
|
86
88
|
return start
|
87
89
|
else
|
88
90
|
let res = []
|
89
|
-
|
90
|
-
|
91
|
+
let s:selection_list = RbNavMethods()
|
92
|
+
for m in s:selection_list
|
91
93
|
if m =~ '^\c.\?' . substitute(a:base, '\*', '\\*', '')
|
92
94
|
call add(res, m)
|
93
95
|
endif
|
@@ -110,6 +112,14 @@ func! s:open_class_file()
|
|
110
112
|
endif
|
111
113
|
let selection = s:trimString(getline(2))
|
112
114
|
close
|
115
|
+
if len(split(selection, '\s\+')) == 1
|
116
|
+
" user pressed return without autocompleting, so find the first match
|
117
|
+
for x in s:selection_list
|
118
|
+
if get(split(x, '\s\+'), 0) == selection
|
119
|
+
let selection = x
|
120
|
+
endif
|
121
|
+
endfor
|
122
|
+
endif
|
113
123
|
let query = get(split(selection, '\s\+'), 0)
|
114
124
|
let location = get(split(selection, '\s\+'), -1)
|
115
125
|
let path = get(split(location, ':'), 0)
|
@@ -131,6 +141,14 @@ func! s:jump_to_method()
|
|
131
141
|
endif
|
132
142
|
let selection = s:trimString(getline(2))
|
133
143
|
close
|
144
|
+
if len(split(selection, '\s\+')) == 1
|
145
|
+
" user pressed return without autocompleting, so find the first match
|
146
|
+
for x in s:selection_list
|
147
|
+
if get(split(x, '\s\+'), 0) == selection
|
148
|
+
let selection = x
|
149
|
+
endif
|
150
|
+
endfor
|
151
|
+
endif
|
134
152
|
let line = get(split(selection, '\s\+'), -1)
|
135
153
|
exec 'normal '.line.'G'
|
136
154
|
call feedkeys("z\<cr>", "t")
|
data/lib/rb_nav/version.rb
CHANGED