diff options
author | Bram Moolenaar <Bram@vim.org> | 2005-06-29 22:40:58 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2005-06-29 22:40:58 +0000 |
commit | 42eeac3552c5a5ea10f24373f76b93633b6c8604 (patch) | |
tree | 902f3158470a3e9c53850708cf982c85c6338796 /runtime/ftplugin/changelog.vim | |
parent | 24bbcfe8fe62ea43b1cea86243be4fdc8794140b (diff) |
updated for version 7.0097v7.0097
Diffstat (limited to 'runtime/ftplugin/changelog.vim')
-rw-r--r-- | runtime/ftplugin/changelog.vim | 132 |
1 files changed, 63 insertions, 69 deletions
diff --git a/runtime/ftplugin/changelog.vim b/runtime/ftplugin/changelog.vim index 847cca7e8e..b229dbe84c 100644 --- a/runtime/ftplugin/changelog.vim +++ b/runtime/ftplugin/changelog.vim @@ -1,24 +1,22 @@ " Vim filetype plugin file -" Language: generic Changelog file -" Maintainer: Nikolai Weibull <source@pcppopper.org> -" URL: http://www.pcppopper.org/vim/ftplugin/pcp/changelog/ -" Latest Revision: 2004-04-25 -" arch-tag: b00e2974-c559-4477-b7b2-3ef3f4061bdb +" Language: generic Changelog file +" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se> +" Latest Revision: 2005-06-29 " Variables: " g:changelog_timeformat - -" description: the timeformat used in ChangeLog entries. -" default: "%Y-%m-%d". +" description: the timeformat used in ChangeLog entries. +" default: "%Y-%m-%d". " g:changelog_username - -" description: the username to use in ChangeLog entries -" default: try to deduce it from environment variables and system files. +" description: the username to use in ChangeLog entries +" default: try to deduce it from environment variables and system files. " Local Mappings: " <Leader>o - -" adds a new changelog entry for the current user for the current date. +" adds a new changelog entry for the current user for the current date. " Global Mappings: " <Leader>o - -" switches to the ChangeLog buffer opened for the current directory, or -" opens it in a new buffer if it exists in the current directory. Then -" it does the same as the local <Leader>o described above. +" switches to the ChangeLog buffer opened for the current directory, or +" opens it in a new buffer if it exists in the current directory. Then +" it does the same as the local <Leader>o described above. " Notes: " run 'runtime ftplugin/changelog.vim' to enable the global mapping for " changelog files. @@ -28,16 +26,13 @@ " If 'filetype' isn't "changelog", we must have been to add ChangeLog opener if &filetype == "changelog" - " Only do this when not done yet for this buffer if exists("b:did_ftplugin") finish endif - - " Don't load another plugin for this buffer let b:did_ftplugin = 1 - let cpo_save = &cpo - set cpo-=C + let s:cpo_save = &cpo + set cpo&vim " The format of the date-time field (should have been called dateformat) if !exists("g:changelog_timeformat") @@ -55,56 +50,56 @@ if &filetype == "changelog" " Get the users login name let login = system('whoami') if v:shell_error - let login = 'unknown' + let login = 'unknown' else - let newline = stridx(login, "\n") - if newline != -1 - let login = strpart(login, 0, newline) - endif + let newline = stridx(login, "\n") + if newline != -1 + let login = strpart(login, 0, newline) + endif endif " Try to full name from gecos field in /etc/passwd if filereadable('/etc/passwd') - let name = substitute( - \system('cat /etc/passwd | grep ^`whoami`'), - \'^\%([^:]*:\)\{4}\([^:]*\):.*$', '\1', '') + let name = substitute( + \system('cat /etc/passwd | grep ^`whoami`'), + \'^\%([^:]*:\)\{4}\([^:]*\):.*$', '\1', '') endif " If there is no such file, or there was some other problem try " others if !filereadable('/etc/passwd') || v:shell_error - " Maybe the environment has something of interest - if exists("$NAME") - let name = $NAME - else - " No? well, use the login name and capitalize first - " character - let name = toupper(login[0]) . strpart(login, 1) - endif + " Maybe the environment has something of interest + if exists("$NAME") + let name = $NAME + else + " No? well, use the login name and capitalize first + " character + let name = toupper(login[0]) . strpart(login, 1) + endif endif " Only keep stuff before the first comma let comma = stridx(name, ',') if comma != -1 - let name = strpart(name, 0, comma) + let name = strpart(name, 0, comma) endif " And substitute & in the real name with the login of our user let amp = stridx(name, '&') if amp != -1 - let name = strpart(name, 0, amp) . toupper(login[0]) . - \strpart(login, 1) . strpart(name, amp + 1) + let name = strpart(name, 0, amp) . toupper(login[0]) . + \strpart(login, 1) . strpart(name, amp + 1) endif " Get our hostname let hostname = system("hostname") if v:shell_error - let hostname = 'unknownhost' + let hostname = 'unknownhost' else - let newline = stridx(hostname, "\n") - if newline != -1 - let hostname = strpart(hostname, 0, newline) - endif + let newline = stridx(hostname, "\n") + if newline != -1 + let hostname = strpart(hostname, 0, newline) + endif endif " And finally set the username @@ -134,15 +129,15 @@ if &filetype == "changelog" while i != -1 let char = str[i + 1] if char == '%' - let middle = '%' + let middle = '%' elseif char == 'd' - let middle = a:date + let middle = a:date elseif char == 'u' - let middle = a:user + let middle = a:user elseif char == 'c' - let middle = '{cursor}' + let middle = '{cursor}' else - let middle = char + let middle = char endif let str = strpart(str, 0, i) . middle . strpart(str, i + 2) let i = stridx(str, '%') @@ -169,17 +164,17 @@ if &filetype == "changelog" " Look for an entry for today by our user let date = strftime(g:changelog_timeformat) let search = s:substitute_items(g:changelog_date_entry_search, date, - \g:changelog_username) + \g:changelog_username) if search(search) > 0 " Ok, now we look for the end of the date-entry, and add an entry let pos = nextnonblank(line('.') + 1) let line = getline(pos) while line =~ '^\s\+\S\+' - let pos = pos + 1 - let line = getline(pos) + let pos = pos + 1 + let line = getline(pos) endwhile let insert = s:substitute_items(g:changelog_new_entry_format, - \'', '') + \'', '') execute "normal! ".(pos - 1)."Go".insert execute pos else @@ -188,18 +183,18 @@ if &filetype == "changelog" " No entry today, so create a date-user header and insert an entry let todays_entry = s:substitute_items(g:changelog_new_date_format, - \date, g:changelog_username) + \date, g:changelog_username) " Make sure we have a cursor positioning if stridx(todays_entry, '{cursor}') == -1 - let todays_entry = todays_entry.'{cursor}' + let todays_entry = todays_entry.'{cursor}' endif " Now do the work execute "normal! i".todays_entry if remove_empty - while getline('$') == '' - $delete - endwhile + while getline('$') == '' + $delete + endwhile endif 1 @@ -216,7 +211,7 @@ if &filetype == "changelog" command! -nargs=0 NewChangelogEntry call s:new_changelog_entry() endif - let b:undo_ftplugin = "setl com< tw< fo< et<" + let b:undo_ftplugin = "setl com< tw< fo< et< ai<" if &textwidth == 0 setlocal textwidth=78 @@ -224,9 +219,10 @@ if &filetype == "changelog" setlocal comments= setlocal formatoptions+=t setlocal noexpandtab - " setlocal autoindent now in indent file + setlocal autoindent - let &cpo = cpo_save + let &cpo = s:cpo_save + unlet s:cpo_save else " Add the Changelog opening mapping nmap <silent> <Leader>o :call <SID>open_changelog()<CR> @@ -234,23 +230,21 @@ else function! s:open_changelog() if filereadable('ChangeLog') if bufloaded('ChangeLog') - let buf = bufnr('ChangeLog') - execute "normal! \<C-W>t" - while winbufnr(winnr()) != buf - execute "normal! \<C-W>w" - endwhile + let buf = bufnr('ChangeLog') + execute "normal! \<C-W>t" + while winbufnr(winnr()) != buf + execute "normal! \<C-W>w" + endwhile else - split ChangeLog + split ChangeLog endif if exists("g:mapleader") - execute "normal " . g:mapleader . "o" + execute "normal " . g:mapleader . "o" else - execute "normal \\o" + execute "normal \\o" endif startinsert! endif endfunction endif - -" vim: set sts=2 sw=2: |