41 Commits

Author SHA1 Message Date
Martin Grenfell
a84365f174 switch version to 2.1.15 2008-06-22 12:09:48 +12:00
Martin Grenfell
1fc1decbe9 update changelog 2008-06-22 12:09:19 +12:00
Martin Grenfell
dc8275ffa0 update the header comments 2008-06-22 12:08:11 +12:00
Martin Grenfell
64f0798984 use wtfpl license, remove todo list from the help 2008-06-22 12:03:32 +12:00
Martin Grenfell
01f8df684c add support for group 2008-06-20 21:46:17 +12:00
Martin Grenfell
7c830eb223 remove all trailing whitespace 2008-06-15 21:36:23 +12:00
Martin Grenfell
af0d51d8b3 add support for bzr 2008-06-15 21:34:08 +12:00
Martin Grenfell
650396b1fc update the changelog 2008-05-24 18:55:53 +12:00
Martin Grenfell
cf54bfc7c4 add support for map 2008-05-24 18:55:08 +12:00
Martin Grenfell
6b2cc6c41d add support for mason 2008-05-24 16:35:03 +12:00
Martin Grenfell
e52840527a remove an out of date comment 2008-05-19 15:44:53 +12:00
Martin Grenfell
dee2021b8f fix some indenting in the changelog 2008-05-19 15:43:42 +12:00
Martin Grenfell
2da9787ff1 add support for pamconf 2008-05-19 15:42:19 +12:00
Martin Grenfell
fef5db7e92 change version to 2.1.14 2008-05-17 16:12:27 +12:00
Martin Grenfell
875831209a add support for dtrace 2008-05-17 15:44:36 +12:00
Martin Grenfell
191bb50879 add support for nerdtree 2008-05-17 14:54:44 +12:00
Martin Grenfell
e92b6f60d5 add support for tar 2008-05-15 09:17:51 +12:00
Martin Grenfell
3eea85daa4 add support for gitconfig 2008-05-13 10:51:56 +12:00
Martin Grenfell
62b394aa9b minor doc fix 2008-05-04 13:41:29 +12:00
Martin Grenfell
953fc19af9 added a couple of thx notes for filetypes 2008-05-04 13:33:24 +12:00
Martin Grenfell
ded4e80efe added a note to the thanks section, and tidied it up a bit 2008-05-04 13:30:56 +12:00
Martin Grenfell
890ab3fe2e tidied up the changelog for this release 2008-05-04 13:25:52 +12:00
Martin Grenfell
dd7a0bf471 changed the version to 2.1.13 for the next release 2008-05-04 13:13:30 +12:00
Martin Grenfell
4b0e7a8f1a add support for slice filetype 2008-04-29 22:08:29 +12:00
Martin Grenfell
c5623a31e2 add support for vimperator 2008-04-29 22:03:10 +12:00
Martin Grenfell
06be251c66 bugfix: fixed single line compact sexy comments 2008-04-29 21:38:06 +12:00
Martin Grenfell
3aeaa92dd7 make toggle commenting less picky about which lines it uncomments 2008-04-29 21:23:57 +12:00
Martin Grenfell
4809a9c287 make sexy commenting fall back to normal commenting if sexy comments arent possible with the current filetype 2008-04-28 22:54:37 +12:00
Martin Grenfell
0256b0a18c make the changelog look a bit nicer 2008-04-28 22:54:13 +12:00
Martin Grenfell
148fe82c42 note some sexy comment fixes in changelog 2008-04-28 22:53:43 +12:00
Martin Grenfell
3eb5a0fcde bugfix: fixed another infinite loop when detecting sexy comments 2008-04-28 22:40:51 +12:00
Martin Grenfell
f5092782ee bugfix: stopped infine loop when checking for sexy comment on first/last line of file 2008-04-28 22:27:10 +12:00
Martin Grenfell
75f5b5f275 bugfix: remove extra spaces (if options permit) when uncommenting irregular comments 2008-04-28 22:07:18 +12:00
Martin Grenfell
ebe9dc2a38 add a note about the NERDRemoveExtraSpaces fix to the changelog 2008-04-28 22:06:40 +12:00
Martin Grenfell
f2fa62bd4f correct the default value for NERDRemoveExtraSpaces
previously NERDRemoveExtraSpaces was set to 0 by default even though the
documentation stated the default as 1
2008-04-28 20:56:41 +12:00
Martin Grenfell
7ea2aeea99 updated the changelog 2008-04-28 20:47:23 +12:00
Martin Grenfell
065022b1ee add support for 'gitcommit' filetype 2008-04-28 20:38:51 +12:00
Martin Grenfell
3bccb91e7d added support for 'services' filetype 2008-04-28 20:28:15 +12:00
Martin Grenfell
a24c8b79f8 added support for liquid 2008-04-17 23:26:21 +12:00
Martin Grenfell
f8ce318000 add support for pyrex 2008-04-17 23:18:00 +12:00
Martin Grenfell
f95255e299 added support for rib 2008-04-17 23:13:34 +12:00
2 changed files with 845 additions and 777 deletions

View File

@@ -40,9 +40,9 @@ CONTENTS *NERDCommenterContents*
4.1 Delimiter detection heuristics....|NERDComHeuristics|
4.2 Nesting issues....................|NERDComNesting|
5.The author..............................|NERDComAuthor|
6.TODO list...............................|NERDComTodo|
7.Changelog...............................|NERDComChangelog|
8.Credits.................................|NERDComCredits|
6.Changelog...............................|NERDComChangelog|
7.Credits.................................|NERDComCredits|
8.License.................................|NERDComLicense|
==============================================================================
1. Intro *NERDCommenter*
@@ -89,7 +89,7 @@ line that is commented is uncommented and vice versa.
[count],cs |NERDComSexyComment|
Comments out the selected lines ``sexually''
Comments out the selected lines ``sexily''
[count],cy |NERDComYankComment|
@@ -839,7 +839,7 @@ will become: >
for simplicity)
==============================================================================
6. The author *NERDComAuthor*
5. The author *NERDComAuthor*
The author of the NERD commenter is Martyzillatron --- the half robot, half
dinosaur bastard son of Megatron and Godzilla. He enjoys destroying
@@ -850,16 +850,31 @@ its a lonely life being the worlds premier terror machine. How would you feel
if your face looked like a toaster and a t-rex put together? :(
==============================================================================
7. TODO list *NERDComTodo*
7. Changelog *NERDComChangelog*
Uncommenting of minimal comments needs to be more robust. Currently it is easy
to get illegal syntax when uncommenting them.
==============================================================================
8. Changelog *NERDComChangelog*
2.1.15
- added pamconf support, thanks to Martin Kustermann
- added mason support, thanks to Indriði Einarsson
- added map support, thanks to Chris
- added bzr support, thanks to Stromnov
- added group support, thanks to Krzysztof A. Adamski
- change license to wtfpl
2.1.14
- added support for gitconfig, tar, nerdtree
- added support for dtrace, thanks to nicothakis for the post
2.1.13
- added support for rib, pyrex/cython, liquid, services, gitcommit,
vimperator, and slice. Thanks to spookypeanut, Greg Jandl, Christophe
Benz, A Pontus, and Stromnov for emailing me and/or posting issues.
- set the NERDRemoveExtraSpaces option to 1 by default as the doc states
- other fixes: (thanks to Zhang Shuhan for all his emails and testing)
* made the sexy comment mapping fall back to normal commenting if sexy
comments arent possible for the current filetype
* fixed some bugs with sexy comments
* made the uncommenting side of toggle comments slightly more robust
* fixed a bug where some extra spaces werent being removed (although
the currect options were set)
2.1.12
- added support for patran and dakota, thx to Jacobo Diaz for the email
- added support for gentoo-env-d, gentoo-init-d, gentoo-make-conf, grub,
@@ -1048,7 +1063,7 @@ for his patch. Thanks to John O'Shea and fREW for the filetype
information.
==============================================================================
8. Credits *NERDComCredits*
7. Credits *NERDComCredits*
Thanks and respect to the following people:
@@ -1168,6 +1183,12 @@ Thanks to marco for suggesting NERDDefaultNesting be set by default.
Thanks to Ingo Karkat for the bug reports and the bugfix patch.
Thanks to Zhang Shuhan for sending me a report about spaces not being removed
properly in some circumstances. Also, thanks for emailing me a bunch of bug
reports about sexy/toggle comments and for testing my fixes.
Thanks to tpope for the english lesson.
Not to forget! Thanks to the following people for sending me new filetypes to
support :D
@@ -1217,9 +1238,23 @@ Renald Buter scala
Vladimir Lomov asymptote
Marco mrxvtrc, aap
nicothakis SVNAnnotate, CVSAnnotate, SVKAnnotate,
SVNdiff, gitAnnotate, gitdiff
SVNdiff, gitAnnotate, gitdiff, dtrace
Chen Xing Wikipedia
Jacobo Diaz dakota, patran
Li Jin gentoo-env-d, gentoo-init-d,
gentoo-make-conf, grub, modconf, sudoers
SpookeyPeanut rib
Greg Jandl pyrex/cython
Christophe Benz services, gitcommit
A Pontus vimperator
Stromnov slice, bzr
Martin Kustermann pamconf
Indriði Einarsson mason
Chris map
Krzysztof A. Adamski group
==============================================================================
8. License *NERDComLicense*
The NERD commenter is released under the wtfpl.
See http://sam.zoy.org/wtfpl/COPYING.

View File

@@ -1,11 +1,16 @@
" vim global plugin that provides easy code commenting for various file types
" Last Change: 31 March 2008
" Maintainer: Martin Grenfell <martin_grenfell at msn.com>
let s:NERD_commenter_version = 2.1.12
" For help documentation type :help NERDCommenter. If this fails, Restart vim
" and try again. If it sill doesnt work... the help page is at the bottom
" of this file.
" ============================================================================
" File: NERD_commenter.vim
" Description: vim global plugin that provides easy code commenting
" Maintainer: Martin Grenfell <martin_grenfell at msn dot com>
" Last Change: 22 June, 2008
" License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
" ============================================================================
let s:NERD_commenter_version = 2.1.15
" Section: script init stuff {{{1
if exists("loaded_nerd_comments")
@@ -59,7 +64,7 @@ call s:InitVariable("g:NERDMenuMode", 3)
call s:InitVariable("g:NERDLPlace", "[>")
call s:InitVariable("g:NERDUsePlaceHolders", 1)
call s:InitVariable("g:NERDRemoveAltComs", 1)
call s:InitVariable("g:NERDRemoveExtraSpaces", 0)
call s:InitVariable("g:NERDRemoveExtraSpaces", 1)
call s:InitVariable("g:NERDRPlace", "<]")
call s:InitVariable("g:NERDShutUp", '0')
call s:InitVariable("g:NERDSpaceDelims", 0)
@@ -200,6 +205,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('%', '')
elseif a:filetype == "btm"
call s:MapDelimiters('::', '')
elseif a:filetype == "bzr"
call s:MapDelimiters('', '')
elseif a:filetype == "caos"
call s:MapDelimiters('*', '')
elseif a:filetype == "catalog"
@@ -290,6 +297,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "dtml"
call s:MapDelimiters('<dtml-comment>','</dtml-comment>')
elseif a:filetype == "dtrace"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "dylan"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == 'ebuild'
@@ -358,12 +367,18 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('#', '')
elseif a:filetype == 'gitAnnotate'
call s:MapDelimiters('', '')
elseif a:filetype == 'gitcommit'
call s:MapDelimiters('', '')
elseif a:filetype == 'gitconfig'
call s:MapDelimiters(';', '')
elseif a:filetype == 'gitdiff'
call s:MapDelimiters('', '')
elseif a:filetype == "gnuplot"
call s:MapDelimiters('#','')
elseif a:filetype == "groovy"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "group"
call s:MapDelimiters('','')
elseif a:filetype == "grub"
call s:MapDelimiters('#', '')
elseif a:filetype == "gtkrc"
@@ -444,6 +459,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('#', '')
elseif a:filetype == "lilypond"
call s:MapDelimiters('%', '')
elseif a:filetype == "liquid"
call s:MapDelimiters('{%', '%}')
elseif a:filetype == "lisp"
call s:MapDelimitersWithAlternative(';','', '#|', '|#')
elseif a:filetype == "lite"
@@ -472,12 +489,16 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('> ','')
elseif a:filetype == "make"
call s:MapDelimiters('#','')
elseif a:filetype == "map"
call s:MapDelimiters('%', '')
elseif a:filetype == "maple"
call s:MapDelimiters('#', '')
elseif a:filetype == "markdown"
call s:MapDelimiters('<!--', '-->')
elseif a:filetype == "masm"
call s:MapDelimiters(';', '')
elseif a:filetype == "mason"
call s:MapDelimiters('<% #', '%>')
elseif a:filetype == "master"
call s:MapDelimiters('$', '')
elseif a:filetype == "matlab"
@@ -522,6 +543,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('/*', '')
elseif a:filetype == "ncf"
call s:MapDelimiters(';', '')
elseif a:filetype == "nerdtree"
call s:MapDelimiters('', '')
elseif a:filetype == "netdict"
call s:MapDelimiters('', '')
elseif a:filetype == "netrw"
@@ -554,6 +577,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('', '')
elseif a:filetype == "ox"
call s:MapDelimiters('//', '')
elseif a:filetype == "pamconf"
call s:MapDelimiters('#', '')
elseif a:filetype == "pascal"
call s:MapDelimitersWithAlternative('{','}', '(*', '*)')
elseif a:filetype == "passwd"
@@ -608,6 +633,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('#', '')
elseif a:filetype == "ptcap"
call s:MapDelimiters('#', '')
elseif a:filetype == "pyrex"
call s:MapDelimiters('#','')
elseif a:filetype == "python"
call s:MapDelimiters('#','')
elseif a:filetype == "qf"
@@ -632,6 +659,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('#', '')
elseif a:filetype == "rexx"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "rib"
call s:MapDelimiters('#','')
elseif a:filetype == "robots"
call s:MapDelimiters('#', '')
elseif a:filetype == "rpl"
@@ -668,6 +697,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('#', '')
elseif a:filetype == "selectbuf"
call s:MapDelimiters('', '')
elseif a:filetype == "services"
call s:MapDelimiters('#', '')
elseif a:filetype == "sgml"
call s:MapDelimiters('<!','>')
elseif a:filetype == "sgmldecl"
@@ -686,6 +717,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('%', '')
elseif a:filetype == "sl"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "slice"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "slrnrc"
call s:MapDelimiters('%', '')
elseif a:filetype == "sm"
@@ -752,6 +785,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters(';', '')
elseif a:filetype == "tak"
call s:MapDelimiters('$', '')
elseif a:filetype == "tar"
call s:MapDelimiters('', '')
elseif a:filetype == "tasm"
call s:MapDelimiters(';', '')
elseif a:filetype == "tcl"
@@ -804,6 +839,8 @@ function s:SetUpForNewFiletype(filetype, forceReset)
call s:MapDelimiters('"','')
elseif a:filetype == "viminfo"
call s:MapDelimiters('','')
elseif a:filetype == "vimperator"
call s:MapDelimiters('"','')
elseif a:filetype == "virata"
call s:MapDelimiters('%', '')
elseif a:filetype == "vo_base"
@@ -1274,12 +1311,14 @@ function s:CommentLinesSexy(topline, bottomline)
call setline(a:topline, theLine)
"comment the bottom line
if a:bottomline != a:topline
let theLine = getline(a:bottomline)
let lineHasTabs = s:HasLeadingTabs(theLine)
if lineHasTabs
let theLine = s:ConvertLeadingTabsToSpaces(theLine)
endif
let theLine = s:SwapOutterMultiPartDelimsForPlaceHolders(theLine)
endif
let theLine = s:AddRightDelim(spaceString . right, theLine)
if lineHasTabs
let theLine = s:ConvertLeadingSpacesToTabs(theLine)
@@ -1436,7 +1475,7 @@ function s:InvertComment(firstLine, lastLine)
" if the line is commented normally, uncomment it
if s:IsCommentedFromStartOfLine(b:left, theLine) || s:IsCommentedFromStartOfLine(b:leftAlt, theLine)
call s:UncommentLines(1, currentLine, currentLine)
call s:UncommentLines(currentLine, currentLine)
let currentLine = currentLine + 1
" check if the line is commented sexually
@@ -1506,7 +1545,7 @@ function! NERDComment(isVisual, type) range
try
call s:CommentLinesSexy(firstLine, lastLine)
catch /NERDCommenter.Delimiters/
call s:NerdEcho("Sexy comments cannot be done with the available delimiters", 0)
call s:CommentLines(forceNested, 0, 0, firstLine, lastLine)
catch /NERDCommenter.Nesting/
call s:NerdEcho("Sexy comment aborted. Nested sexy cannot be nested", 0)
endtry
@@ -1515,7 +1554,7 @@ function! NERDComment(isVisual, type) range
let theLine = getline(firstLine)
if s:IsInSexyComment(firstLine) || s:IsCommentedFromStartOfLine(b:left, theLine) || s:IsCommentedFromStartOfLine(b:leftAlt, theLine)
call s:UncommentLines(1, firstLine, lastLine)
call s:UncommentLines(firstLine, lastLine)
else
call s:CommentLinesToggle(forceNested, firstLine, lastLine)
endif
@@ -1544,7 +1583,7 @@ function! NERDComment(isVisual, type) range
call s:PlaceDelimitersAndInsBetween()
elseif a:type == 'uncomment'
call s:UncommentLines(0, firstLine, lastLine)
call s:UncommentLines(firstLine, lastLine)
elseif a:type == 'yank'
if a:isVisual
@@ -1703,14 +1742,13 @@ function s:RemoveDelimiters(left, right, line)
return line
endfunction
" Function: s:UncommentLines(onlyWholeLineComs, topLine, bottomLine) {{{2
" Function: s:UncommentLines(topLine, bottomLine) {{{2
" This function uncomments the given lines
"
" Args:
" onlyWholeLineComs: should be 1 for toggle style uncommenting
" topLine: the top line of the visual selection to uncomment
" bottomLine: the bottom line of the visual selection to uncomment
function s:UncommentLines(onlyWholeLineComs, topLine, bottomLine)
function s:UncommentLines(topLine, bottomLine)
"make local copies of a:firstline and a:lastline and, if need be, swap
"them around if the top line is below the bottom
let l:firstline = a:topLine
@@ -1743,12 +1781,7 @@ function s:UncommentLines(onlyWholeLineComs, topLine, bottomLine)
"no sexy com was detected so uncomment the line as normal
else
let theLine = getline(currentLine)
if a:onlyWholeLineComs && (s:IsCommentedFromStartOfLine(b:left, theLine) || s:IsCommentedFromStartOfLine(b:leftAlt, theLine))
call s:UncommentLinesNormal(currentLine, currentLine)
elseif !a:onlyWholeLineComs
call s:UncommentLinesNormal(currentLine, currentLine)
endif
let currentLine = currentLine + 1
endif
endwhile
@@ -1901,16 +1934,16 @@ function s:UncommentLineNormal(line)
"remove the outter most left comment delim
if indxLeft != -1 && (indxLeft < indxLeftAlt || indxLeftAlt == -1)
let line = s:ReplaceLeftMostDelim(b:left, '', line)
let line = s:RemoveDelimiters(b:left, '', line)
elseif indxLeftAlt != -1
let line = s:ReplaceLeftMostDelim(b:leftAlt, '', line)
let line = s:RemoveDelimiters(b:leftAlt, '', line)
endif
"remove the outter most right comment delim
if indxRight != -1 && (indxRight < indxRightAlt || indxRightAlt == -1)
let line = s:ReplaceRightMostDelim(b:right, '', line)
let line = s:RemoveDelimiters('', b:right, line)
elseif indxRightAlt != -1
let line = s:ReplaceRightMostDelim(b:rightAlt, '', line)
let line = s:RemoveDelimiters('', b:rightAlt, line)
endif
endif
@@ -2315,12 +2348,12 @@ function s:FindBoundingLinesOfSexyCom(lineNum)
let theLine = getline(currentLine)
"check if the current line is the top of the sexy comment
if theLine =~ '^[ \t]*' . left && theLine !~ '.*' . right
if currentLine <= a:lineNum && theLine =~ '^[ \t]*' . left && theLine !~ '.*' . right && currentLine < s:NumLinesInBuf()
let top = currentLine
let currentLine = a:lineNum
"check if the current line is the bottom of the sexy comment
elseif theLine =~ '^[ \t]*' . right && theLine !~ '.*' . left
elseif theLine =~ '^[ \t]*' . right && theLine !~ '.*' . left && currentLine > 1
let bottom = currentLine
"the right delimiter is on the same line as the last sexyComMarker