35 Commits

Author SHA1 Message Date
Andy Wokula
f0d58015ca restored scrooloose's original readme 2019-05-01 14:41:38 +02:00
Andy Wokula
c888c82828 fix startup init omitted for empty filetype (my bad) 2019-05-01 11:30:13 +02:00
Andy Wokula
20f9e88395 Merge remote-tracking branch 'upstream/master'
Ignored changes in other README!
2019-04-30 19:55:23 +02:00
Jingchang Shi
17b68e47d7 Add an option: NERDDisableTabsInBlockComm (#374)
* Add an option: NERDDisableTabsInBlockComm. 1 disables adding tabs before the comment symbols in the block style.
* Add doc for the new option.
2019-04-17 12:11:07 +03:00
Lane
67950d4b5d Make g:NERDToggleCheckAllLines not check blank/whitespace-only lines (#355) 2019-04-17 09:49:38 +03:00
Caleb Maclennan
f46226bcd6 Remove apparently bogus filetype
I can't find any record of this being a legitimate filetype. It isn't in
vim or nvim's filetype detection system and nothing comes up in search.
If it's legit somebody can complain and we'll add it back, but it seems
likely this was left over from a fat-fingered mistake during the initial
development of the plugin.

Fixes #363
2019-03-07 12:00:42 +03:00
Caleb Maclennan
5100f47542 Add kivy file format, fixes #361 2019-02-14 09:50:24 +03:00
Caleb Maclennan
5ac43900e9 Strip trailing whitespace 2019-02-14 09:48:49 +03:00
MeNsaaH
3427b2f4ef updated Django comments (#359)
* updated Django comments
* Adding alternate comments for django
2019-02-04 12:13:20 +03:00
glegodais
371e4d0e09 Add support for Faust (#354) 2018-12-26 14:11:50 +03:00
Maarten van der Hoef
d24868bc85 Terraform replacing Transcript File (#350) 2018-12-03 16:22:57 +03:00
keysen
fdf950f20b Fix ruby comments, totally broken with =begin and =end (#340) 2018-07-31 20:29:13 +03:00
Zachary Churchill
f9dd87271a Swap default comment style to be more idiomatic of haskell (#343)
See discussion at https://github.com/scrooloose/nerdcommenter/pull/343
2018-07-28 06:52:07 +03:00
fcying
9a32fd2534 Add NERDToggleCheckAllLines option to NERDCommenterToggle (#334) 2018-06-21 11:06:22 +03:00
Jiaobuzuji
e679d8a341 Add support for 'sdc' filetype (#327) 2018-03-03 15:16:47 +03:00
Andy Wokula
8718240a51 merge remote-tracking branch 'upstream/master' 2018-02-18 21:50:16 +01:00
dandersson
670dba1bb5 Add support for Robot Framework files (#323) 2018-02-07 12:19:12 +03:00
Sean
2f973bd4fa Fix Markdown formatting 2018-02-02 12:56:54 +03:00
tlsvc
ff3d8d7d7c Add support for ANSYS Parametric Design Language (apdl) (#317) 2018-01-13 11:47:04 +03:00
Alec Shaw
af8bb4258d Add support for Praat scripting language (#316)
[Praat][1] is a program for phonetics research which has a scripting interface.

[1]: http://www.fon.hum.uva.nl/praat/
2017-12-26 11:02:19 +03:00
Andy Wokula
f18bb5b223 Merge remote-tracking branch 'upstream/master' 2017-11-10 21:03:42 +01:00
Andy Wokula
9d1b1d5827 one more menu mode 2017-11-01 20:51:50 +01:00
Andy Wokula
14004e00e0 more cautious init check 2017-11-01 20:50:25 +01:00
Andy Wokula
c5bf6053f3 use string() 2017-11-01 20:45:36 +01:00
Andy Wokula
5fce03e259 Merge remote-tracking branch 'upstream/master' 2017-11-01 20:33:56 +01:00
Andy Wokula
e935614365 Merge remote-tracking branch 'upstream/master' 2017-04-08 19:25:33 +02:00
Andy Wokula
9b5b930b72 Merge remote-tracking branch 'upstream/master' 2017-03-31 21:13:38 +02:00
Andy Wokula
398a3e22a4 indent 2016-12-18 17:57:29 +01:00
Andy Wokula
b4827d552e readme 2016-12-18 17:54:51 +01:00
Andy Wokula
0b2a2b0641 style: changed case in keycodes 2016-12-18 17:39:03 +01:00
Andy Wokula
cb8527ed3f fix comments 2016-12-18 17:37:07 +01:00
Andy Wokula
032143ad23 no default mappings at all 2016-12-18 17:34:36 +01:00
Andy Wokula
f5571fd82f autoload scripts don't need loading guards, and Vim7 is implied 2016-12-18 17:32:45 +01:00
Andy Wokula
3ebd9b56ff essential changes ... renamed functions, added plug function; per default no mappings creation 2016-12-18 17:31:06 +01:00
Andy Wokula
80eb7ff3fd moved plugin file to autoload 2016-12-18 17:22:11 +01:00
3 changed files with 107 additions and 41 deletions

View File

@@ -22,7 +22,7 @@ Comment functions so powerful—no comment necessary.
1. Add `NeoBundle 'scrooloose/nerdcommenter'` to your vimrc file.
2. Reload your vimrc or restart
3. Run `:NeoUpdate``
3. Run `:NeoUpdate`
#### [Pathogen](https://github.com/tpope/vim-pathogen)
@@ -94,6 +94,9 @@ let g:NERDCommentEmptyLines = 1
" Enable trimming of trailing whitespace when uncommenting
let g:NERDTrimTrailingWhitespace = 1
" Enable NERDCommenterToggle to check all selected lines is commented or not
let g:NERDToggleCheckAllLines = 1
```
### Default mappings

View File

@@ -1,5 +1,5 @@
" ============================================================================
" File: NERD_commenter.vim
" File: nerdcommenter.vim
" Description: vim global plugin that provides easy code commenting
" Author: Martin Grenfell <martin.grenfell at gmail dot com>
" Maintainer: Caleb Maclennan <caleb@alerque.com>
@@ -14,14 +14,7 @@
" ============================================================================
" Section: script init stuff {{{1
if exists("loaded_nerd_comments")
finish
endif
if v:version < 700
echoerr "NERDCommenter: this plugin requires vim >= 7. DOWNLOAD IT! You'll thank me later!"
finish
endif
let loaded_nerd_comments = 1
let nerdcommenter#loaded = 1
" Function: s:InitVariable() function {{{2
" This function is used to initialise a given variable to a given value. The
@@ -35,7 +28,7 @@ let loaded_nerd_comments = 1
" 1 if the var is set, 0 otherwise
function s:InitVariable(var, value)
if !exists(a:var)
execute 'let ' . a:var . ' = ' . "'" . a:value . "'"
execute 'let ' . a:var . ' = ' . string(a:value)
return 1
endif
return 0
@@ -54,7 +47,6 @@ call s:InitVariable("g:NERDBlockComIgnoreEmpty", 0)
call s:InitVariable("g:NERDCommentWholeLinesInVMode", 0)
call s:InitVariable("g:NERDCommentEmptyLines", 0)
call s:InitVariable("g:NERDCompactSexyComs", 0)
call s:InitVariable("g:NERDCreateDefaultMappings", 1)
call s:InitVariable("g:NERDDefaultNesting", 1)
call s:InitVariable("g:NERDMenuMode", 3)
call s:InitVariable("g:NERDLPlace", "[>")
@@ -65,6 +57,8 @@ call s:InitVariable("g:NERDRPlace", "<]")
call s:InitVariable("g:NERDSpaceDelims", 0)
call s:InitVariable("g:NERDDefaultAlign", "none")
call s:InitVariable("g:NERDTrimTrailingWhitespace", 0)
call s:InitVariable("g:NERDToggleCheckAllLines", 0)
call s:InitVariable("g:NERDDisableTabsInBlockComm", 0)
let s:NERDFileNameEscape="[]#*$%'\" ?`!&();<>\\"
@@ -82,6 +76,7 @@ let s:delimiterMap = {
\ 'ansible': { 'left': '#' },
\ 'apache': { 'left': '#' },
\ 'apachestyle': { 'left': '#' },
\ 'apdl': { 'left': '!' },
\ 'applescript': { 'left': '--', 'leftAlt': '(*', 'rightAlt': '*)' },
\ 'armasm': { 'left': ';' },
\ 'asciidoc': { 'left': '//' },
@@ -142,7 +137,7 @@ let s:delimiterMap = {
\ 'desktop': { 'left': '#' },
\ 'dhcpd': { 'left': '#' },
\ 'diff': { 'left': '#' },
\ 'django': { 'left': '<!--', 'right': '-->', 'leftAlt': '{#', 'rightAlt': '#}' },
\ 'django': { 'left': '{% comment %}', 'right': '{% endcomment %}', 'leftAlt': '{#', 'rightAlt': '#}' },
\ 'dns': { 'left': ';' },
\ 'docbk': { 'left': '<!--', 'right': '-->' },
\ 'dockerfile': { 'left': '#' },
@@ -170,6 +165,7 @@ let s:delimiterMap = {
\ 'exports': { 'left': '#' },
\ 'factor': { 'left': '! ', 'leftAlt': '!# ' },
\ 'fancy': { 'left': '#' },
\ 'faust': { 'left': '//' },
\ 'fgl': { 'left': '#' },
\ 'focexec': { 'left': '-*' },
\ 'form': { 'left': '*' },
@@ -204,7 +200,7 @@ let s:delimiterMap = {
\ 'h': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
\ 'haml': { 'left': '-#', 'leftAlt': '/' },
\ 'handlebars': { 'left': '{{!-- ', 'right': ' --}}' },
\ 'haskell': { 'left': '{-', 'right': '-}', 'nested': 1, 'leftAlt': '--', 'nestedAlt': 1 },
\ 'haskell': { 'left': '--', 'nested': 0, 'leftAlt': '{-', 'rightAlt': '-}', 'nestedAlt': 1 },
\ 'haxe': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
\ 'hb': { 'left': '#' },
\ 'hbs': { 'left': '{{!-- ', 'right': ' --}}' },
@@ -213,7 +209,7 @@ let s:delimiterMap = {
\ 'hog': { 'left': '#' },
\ 'hostsaccess': { 'left': '#' },
\ 'htmlcheetah': { 'left': '##' },
\ 'htmldjango': { 'left': '<!--', 'right': '-->', 'leftAlt': '{#', 'rightAlt': '#}' },
\ 'htmldjango': { 'left': '{% comment %}', 'right': '{% endcomment %}', 'leftAlt': '{#', 'rightAlt': '#}' },
\ 'htmlos': { 'left': '#', 'right': '/#' },
\ 'hxml': { 'left': '#' },
\ 'hyphy': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
@@ -239,6 +235,7 @@ let s:delimiterMap = {
\ 'jproperties': { 'left': '#' },
\ 'jsp': { 'left': '<%--', 'right': '--%>' },
\ 'julia': { 'left': '# ', 'leftAlt': '#=', 'rightAlt': '=#' },
\ 'kivy': { 'left': '#' },
\ 'kix': { 'left': ';' },
\ 'kscript': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
\ 'lace': { 'left': '--' },
@@ -280,7 +277,6 @@ let s:delimiterMap = {
\ 'mkd': { 'left': '<!---', 'right': '-->' },
\ 'mma': { 'left': '(*', 'right': '*)' },
\ 'model': { 'left': '$', 'right': '$' },
\ 'moduala.': { 'left': '(*', 'right': '*)' },
\ 'modula2': { 'left': '(*', 'right': '*)' },
\ 'modula3': { 'left': '(*', 'right': '*)' },
\ 'molpro': { 'left': '!' },
@@ -335,6 +331,7 @@ let s:delimiterMap = {
\ 'povini': { 'left': ';' },
\ 'ppd': { 'left': '%' },
\ 'ppwiz': { 'left': ';;' },
\ 'praat': { 'left': '#' },
\ 'privoxy': { 'left': '#' },
\ 'processing': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
\ 'prolog': { 'left': '%', 'leftAlt': '/*', 'rightAlt': '*/' },
@@ -358,9 +355,10 @@ let s:delimiterMap = {
\ 'rgb': { 'left': '!' },
\ 'rib': { 'left': '#' },
\ 'rmd': { 'left': '#' },
\ 'robot': { 'left': '#' },
\ 'robots': { 'left': '#' },
\ 'rspec': { 'left': '#' },
\ 'ruby': { 'left': '#', 'leftAlt': '=begin', 'rightAlt': '=end' },
\ 'ruby': { 'left': '#' },
\ 'rust': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
\ 'sa': { 'left': '--' },
\ 'samba': { 'left': ';', 'leftAlt': '#' },
@@ -372,6 +370,7 @@ let s:delimiterMap = {
\ 'scons': { 'left': '#' },
\ 'scsh': { 'left': ';' },
\ 'scss': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
\ 'sdc': { 'left': '#' },
\ 'sed': { 'left': '#' },
\ 'sgmldecl': { 'left': '--', 'right': '--' },
\ 'sgmllnx': { 'left': '<!--', 'right': '-->' },
@@ -426,7 +425,7 @@ let s:delimiterMap = {
\ 'tex': { 'left': '%' },
\ 'texinfo': { 'left': "@c " },
\ 'texmf': { 'left': '%' },
\ 'tf': { 'left': ';' },
\ 'tf': { 'left': '#' },
\ 'tidy': { 'left': '#' },
\ 'tli': { 'left': '#' },
\ 'tmux': { 'left': '#' },
@@ -991,7 +990,11 @@ function s:CommentLinesSexy(topline, bottomline)
" the lines down when we added the left delimiter
call cursor(a:bottomline+1, 1)
execute 'normal! o'
if g:NERDDisableTabsInBlockComm
let theLine = repeat(' ', leftAlignIndx) . right
else
let theLine = repeat(' ', leftAlignIndx) . repeat(' ', strlen(left)-strlen(sexyComMarker)) . right
endif
" Make sure tabs are respected
if !&expandtab
@@ -1017,7 +1020,11 @@ function s:CommentLinesSexy(topline, bottomline)
endif
" add the sexyComMarker
if g:NERDDisableTabsInBlockComm
let theLine = repeat(' ', leftAlignIndx) . sexyComMarkerSpaced . strpart(theLine, leftAlignIndx)
else
let theLine = repeat(' ', leftAlignIndx) . repeat(' ', strlen(left)-strlen(sexyComMarker)) . sexyComMarkerSpaced . strpart(theLine, leftAlignIndx)
endif
if lineHasTabs
let theLine = s:ConvertLeadingSpacesToTabs(theLine)
@@ -1181,12 +1188,12 @@ function s:InvertComment(firstLine, lastLine)
endwhile
endfunction
function! NERDCommentIsLineCommented(lineNo)
function! nerdcommenter#IsLineCommented(lineNo)
let theLine = getline(a:lineNo)
return s:IsInSexyComment(a:lineNo) || s:IsCommentedFromStartOfLine(s:Left(), theLine) || s:IsCommentedFromStartOfLine(s:Left({'alt': 1}), theLine)
endfunction
" Function: NERDComment(mode, type) function {{{2
" Function: nerdcommenter#Comment(mode, type) function {{{2
" This function is a Wrapper for the main commenting functions
"
" Args:
@@ -1195,7 +1202,7 @@ endfunction
" -type: the type of commenting requested. Can be 'Sexy', 'Invert',
" 'Minimal', 'Toggle', 'AlignLeft', 'AlignBoth', 'Comment',
" 'Nested', 'ToEOL', 'Append', 'Insert', 'Uncomment', 'Yank'
function! NERDComment(mode, type) range
function! nerdcommenter#Comment(mode, type) range
if exists('*NERDCommenter_before')
exe "call NERDCommenter_before()"
endif
@@ -1254,13 +1261,30 @@ function! NERDComment(mode, type) range
endtry
elseif a:type ==? 'Toggle'
if g:NERDToggleCheckAllLines ==# 0
let theLine = getline(firstLine)
if s:IsInSexyComment(firstLine) || s:IsCommentedFromStartOfLine(s:Left(), theLine) || s:IsCommentedFromStartOfLine(s:Left({'alt': 1}), theLine)
call s:UncommentLines(firstLine, lastLine)
else
call s:CommentLinesToggle(forceNested, firstLine, lastLine)
endif
else
let l:commentAllLines = 0
for i in range(firstLine, lastLine)
let theLine = getline(i)
" if have one line no comment(not include blank/whitespace-only lines), then comment all lines
if theLine =~ '[^ \t]\+' && !s:IsInSexyComment(firstLine) && !s:IsCommentedFromStartOfLine(s:Left(), theLine) && !s:IsCommentedFromStartOfLine(s:Left({'alt': 1}), theLine)
let l:commentAllLines = 1
break
else
endif
endfor
if l:commentAllLines ==# 1
call s:CommentLinesToggle(forceNested, firstLine, lastLine)
else
call s:UncommentLines(firstLine, lastLine)
endif
endif
elseif a:type ==? 'Minimal'
try
@@ -1293,7 +1317,7 @@ function! NERDComment(mode, type) range
else
normal! yy
endif
execute firstLine .','. lastLine .'call NERDComment("'. a:mode .'", "Comment")'
execute firstLine .','. lastLine .'call nerdcommenter#Comment("'. a:mode .'", "Comment")'
endif
call s:RecoverStateAfterLineComment(state)
@@ -2988,17 +3012,21 @@ endfunction
" Section: Comment mapping and menu item setup {{{1
" ===========================================================================
function! nerdcommenter#Plug(target)
return "\<Plug>NERDCommenter". a:target
endfunction
" Create menu items for the specified modes. If a:combo is not empty, then
" also define mappings and show a:combo in the menu items.
function! s:CreateMaps(modes, target, desc, combo)
" Build up a map command like
" 'noremap <silent> <plug>NERDCommenterComment :call NERDComment("n", "Comment")'
let plug = '<plug>NERDCommenter' . a:target
let plug_start = 'noremap <silent> ' . plug . ' :call NERDComment("'
let plug_end = '", "' . a:target . '")<cr>'
" 'noremap <silent> <Plug>NERDCommenterComment :call nerdcommenter#Comment("n", "Comment")'
let plug = '<Plug>NERDCommenter' . a:target
let plug_start = 'noremap <silent> ' . plug . ' :call nerdcommenter#Comment("'
let plug_end = '", "' . a:target . '")<CR>'
" Build up a menu command like
" 'menu <silent> comment.Comment<Tab>\\cc <plug>NERDCommenterComment'
let menuRoot = get(['', 'comment', '&comment', '&Plugin.&comment'],
" 'menu <silent> comment.Comment<Tab>\\cc <Plug>NERDCommenterComment'
let menuRoot = get(['', 'comment', '&comment', '&Plugin.&comment', '&Plugin.Nerd\ &Commenter'],
\ g:NERDMenuMode, '')
let menu_command = 'menu <silent> ' . menuRoot . '.' . escape(a:desc, ' ')
if strlen(a:combo)
@@ -3010,9 +3038,6 @@ function! s:CreateMaps(modes, target, desc, combo)
for mode in (a:modes == '') ? [''] : split(a:modes, '\zs')
if strlen(a:combo)
execute mode . plug_start . mode . plug_end
if g:NERDCreateDefaultMappings && !hasmapto(plug, mode)
execute mode . 'map <leader>' . a:combo . ' ' . plug
endif
endif
" Check if the user wants the menu to be displayed.
if g:NERDMenuMode != 0
@@ -3021,7 +3046,7 @@ function! s:CreateMaps(modes, target, desc, combo)
endfor
endfunction
call s:CreateMaps('nx', 'Comment', 'Comment', 'cc')
call s:CreateMaps('nx', 'Toggle', 'Toggle', 'c<space>')
call s:CreateMaps('nx', 'Toggle', 'Toggle', 'c<Space>')
call s:CreateMaps('nx', 'Minimal', 'Minimal', 'cm')
call s:CreateMaps('nx', 'Nested', 'Nested', 'cn')
call s:CreateMaps('n', 'ToEOL', 'To EOL', 'c$')
@@ -3039,13 +3064,15 @@ call s:CreateMaps('i', 'Insert', 'Insert Comment Here', '')
call s:CreateMaps('', ':', '-Sep3-', '')
call s:CreateMaps('', ':help NERDCommenterContents<CR>', 'Help', '')
inoremap <silent> <plug>NERDCommenterInsert <SPACE><BS><ESC>:call NERDComment('i', "insert")<CR>
inoremap <silent> <Plug>NERDCommenterInsert <Space><BS><Esc>:call nerdcommenter#Comment('i', "insert")<CR>
" switch to/from alternative delimiters (does not use wrapper function)
nnoremap <plug>NERDCommenterAltDelims :call <SID>SwitchToAlternativeDelimiters(1)<cr>
nnoremap <Plug>NERDCommenterAltDelims :call <SID>SwitchToAlternativeDelimiters(1)<CR>
" This is a workaround to enable lazy-loading from supported plugin managers:
" See https://github.com/scrooloose/nerdcommenter/issues/176
if !has('vim_starting')
call s:SetUpForNewFiletype(&filetype, 1)
endif
" vim: set foldmethod=marker :

View File

@@ -488,6 +488,9 @@ change the filetype back: >
one of 'none', 'left', 'start', or
'both'.
|'NERDToggleCheckAllLines'| Enable NERDCommenterToggle to check
all selected lines is commented or not.
------------------------------------------------------------------------------
4.3 Options details *NERDComOptionsDetails*
@@ -800,6 +803,39 @@ When this option is set to 1, comments are nested automatically. That is, if
you hit |<Leader>|cc on a line that is already commented it will be commented
again.
------------------------------------------------------------------------------
*'NERDToggleCheckAllLines'*
Values: 0 or 1.
Default 0.
When this option is set to 1, NERDCommenterToggle will check all selected line,
if there have oneline not be commented, then comment all lines.
------------------------------------------------------------------------------
*'NERDDisableTabsInBlockComm'*
Values: 0 or 1.
Default 0.
When this option is set to 1, NERDDisableTabsInBlockComm will not add
whitespaces align the start location of the ending comment symbol with the
end location of the starting comment symbol. For example, in Fortran, the new
style will be as the following: >
close (inpt,iostat=ierr,iomsg=error_message)
call io_error(pname,input_fname,2,__LINE__,__FILE__,ierr,error_message)
<
to >
!===BEGIN===!
! close (inpt,iostat=ierr,iomsg=error_message)
! call io_error(pname,input_fname,2,__LINE__,__FILE__,ierr,error_message)
!===END===!
<
for the block comment style if customized comment symbols are set up in vimrc
file by the following line >
let g:NERDCustomDelimiters = {
\ 'fortran':{'left':'!','leftAlt':'!===BEGIN===!','rightAlt':'!===END===!'}
\ }
<
------------------------------------------------------------------------------
3.3 Default delimiter customisation *NERDComDefaultDelims*