Changeset 3750 for lang/vim/narrow/trunk
- Timestamp:
- 12/29/07 08:25:57 (11 months ago)
- Location:
- lang/vim/narrow/trunk
- Files:
-
- 3 modified
-
autoload/narrow.vim (modified) (5 diffs)
-
doc/narrow.txt (modified) (3 diffs)
-
plugin/narrow.vim (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/vim/narrow/trunk/autoload/narrow.vim
r3648 r3750 1 1 " narrow - Emulate Emacs' narrowing feature 2 " Version: 0. 12 " Version: 0.2 3 3 " Copyright (C) 2007 kana <http://nicht.s8.xrea.com/> 4 4 " License: MIT license (see <http://www.opensource.org/licenses/mit-license>) … … 19 19 endif 20 20 21 let line1 = s:normalize_line(a:line1, 'head') 22 let line2 = s:normalize_line(a:line2, 'tail') 23 21 24 setlocal foldenable 22 25 setlocal foldmethod=manual 23 26 setlocal foldtext='' 24 call s:adjust_cursor_if_invoked_via_visual_mode( a:line1, a:line2)27 call s:adjust_cursor_if_invoked_via_visual_mode(line1, line2) 25 28 let pos = getpos('.') 26 29 call s:clear_all_folds() 27 call s:fold_before( a:line1)28 call s:fold_after( a:line2)30 call s:fold_before(line1) 31 call s:fold_after(line2) 29 32 call setpos('.', pos) 33 normal! zz 30 34 return 1 31 35 endfunction … … 77 81 78 82 83 function! s:normalize_line(line, mode) "{{{2 84 " Return the first/last line number of a closed fold if a:line is contained 85 " the fold, otherwise return a:line as is. 86 let pline = (a:mode ==# 'head' ? foldclosed(a:line) : foldclosedend(a:line)) 87 return 0 < pline ? pline : a:line 88 endfunction 89 90 91 92 79 93 function! s:fold_before(line) "{{{2 80 94 if 1 < a:line … … 106 120 107 121 108 " view options "{{{2109 function! s:set_view_options()110 let s:original_viewdir = &viewdir111 let &viewdir = s:original_viewdir . '/narrow'112 let s:original_viewoptions = &viewoptions113 let &viewoptions = 'folds'114 endfunction115 116 function! s:restore_view_options()117 let &viewdir = s:original_viewdir118 let &viewoptions = s:original_viewoptions119 endfunction120 121 122 123 124 122 function! s:save_the_state_of_buffer() "{{{2 125 call s:set_view_options()126 " BUGS: :mkview doesn't create intermediate directories.127 if !isdirectory(&viewdir)128 call mkdir(&viewdir, 'p', 0700)129 endif130 " BUGS: :mkview doesn't save folds info when &l:buftype isn't ''.131 let original_buftype = &l:buftype132 let &l:buftype = ''133 mkview134 let &l:buftype = original_buftype135 call s:restore_view_options()136 137 123 let original_state = {} 138 124 let original_state.foldenable = &l:foldenable 139 125 let original_state.foldmethod = &l:foldmethod 140 126 let original_state.foldtext = &l:foldtext 127 128 " save folds 129 let original_state.foldstate = [] 130 let original_pos = getpos('.') 131 let line = 1 132 while line <= line('$') 133 if 0 < foldclosed(line) " is the first line of a fold? 134 call add(original_state.foldstate, line) 135 let line = foldclosedend(line) + 1 136 else 137 let previous_line = line 138 call cursor(previous_line, 0) 139 normal! zj 140 let line = line('.') 141 if line == previous_line 142 break " no more folds. 143 endif 144 endif 145 endwhile 146 call setpos('.', original_pos) 147 141 148 return original_state 142 149 endfunction … … 146 153 147 154 function! s:load_the_state_of_buffer(original_state) "{{{2 148 call s:set_view_options()149 loadview150 call s:restore_view_options()151 152 155 let &l:foldenable = a:original_state.foldenable 153 156 let &l:foldmethod = a:original_state.foldmethod 154 157 let &l:foldtext = a:original_state.foldtext 158 159 " restore folds. 160 %foldopen! 161 for line in a:original_state.foldstate 162 call cursor(line, 0) 163 foldclose 164 endfor 155 165 endfunction 156 166 -
lang/vim/narrow/trunk/doc/narrow.txt
r3648 r3750 1 1 *narrow.txt* Emulate Emacs' narrowing feature 2 2 3 Version 0. 13 Version 0.2 4 4 Copyright (C) 2007 kana <http://nicht.s8.xrea.com/> 5 5 License: MIT license (see <http://www.opensource.org/licenses/mit-license>) … … 81 81 In Emacs, these actions aren't allowed. 82 82 83 - This plugin uses |:mkview| to save the current state of a buffer for84 |:Widen|, and and |:mkview| writes a file. So this plugin may be confused85 when there are two or more Vim processes and they narrow/widen the same86 buffers.87 88 - Temporary files written by |:mkview| will be created in the "narrow"89 subdirectory in 'viewdir'. For example, "~/.vim/view/narrow".90 91 83 92 84 … … 94 86 ============================================================================== 95 87 CHANGELOG *narrow-changelog* 88 89 0.2 2007-12-29T07:24:53+09:00 90 - Fix |:Narrow| and |:Widen| not to use temporary files. Now |:Widen| 91 correctly works even if the target buffer is |:Narrow|'ed by two or 92 more Vim processes. 93 - Modify |:Narrow| to |zz| after narrowing for visibility. 94 - Modify |:Narrow| to include all lines of closed folds in [range]. 96 95 97 96 0.1 2007-12-28T01:13:48+09:00 -
lang/vim/narrow/trunk/plugin/narrow.vim
r3648 r3750 1 1 " narrow - Emulate Emacs' narrowing feature 2 " Version: 0. 12 " Version: 0.2 3 3 " Copyright (C) 2007 kana <http://nicht.s8.xrea.com/> 4 4 " License: MIT license (see <http://www.opensource.org/licenses/mit-license>)
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)