mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	vim-patch:partial: 48c3f4e0bff7 (#19684)
vim-patch:partial:48c3f4e0bff7
Update runtime files
48c3f4e0bf
partially skip `options.txt` (needs 9.0.0138)
			
			
This commit is contained in:
		
							
								
								
									
										11
									
								
								runtime/autoload/dist/ft.vim
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								runtime/autoload/dist/ft.vim
									
									
									
									
										vendored
									
									
								
							| @@ -348,7 +348,7 @@ func dist#ft#FTidl() | ||||
|   setf idl | ||||
| endfunc | ||||
|  | ||||
| " Distinguish between "default" and Cproto prototype file. */ | ||||
| " Distinguish between "default", Prolog and Cproto prototype file. */ | ||||
| func dist#ft#ProtoCheck(default) | ||||
|   " Cproto files have a comment in the first line and a function prototype in | ||||
|   " the second line, it always ends in ";".  Indent files may also have | ||||
| @@ -358,7 +358,14 @@ func dist#ft#ProtoCheck(default) | ||||
|   if getline(2) =~ '.;$' | ||||
|     setf cpp | ||||
|   else | ||||
|     exe 'setf ' . a:default | ||||
|     " recognize Prolog by specific text in the first non-empty line | ||||
|     " require a blank after the '%' because Perl uses "%list" and "%translate" | ||||
|     let l = getline(nextnonblank(1)) | ||||
|     if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-' | ||||
|       setf prolog | ||||
|     else | ||||
|       exe 'setf ' .. a:default | ||||
|     endif | ||||
|   endif | ||||
| endfunc | ||||
|  | ||||
|   | ||||
| @@ -3,13 +3,28 @@ | ||||
| let s:keepcpo= &cpo | ||||
| set cpo&vim | ||||
|  | ||||
| " searchpair() can be slow, limit the time to 150 msec or what is put in | ||||
| " g:pyindent_searchpair_timeout | ||||
| let s:searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150) | ||||
|  | ||||
| " Identing inside parentheses can be very slow, regardless of the searchpair() | ||||
| " timeout, so let the user disable this feature if he doesn't need it | ||||
| let s:disable_parentheses_indenting = get(g:, 'pyindent_disable_parentheses_indenting', v:false) | ||||
|  | ||||
| let s:maxoff = 50       " maximum number of lines to look backwards for () | ||||
|  | ||||
| function s:SearchBracket(fromlnum, flags) | ||||
|   return searchpairpos('[[({]', '', '[])}]', a:flags, | ||||
|           \ {-> synID('.', col('.'), v:true)->synIDattr('name') | ||||
|           \ =~ '\%(Comment\|Todo\|String\)$'}, | ||||
|           \ [0, a:fromlnum - s:maxoff]->max(), s:searchpair_timeout) | ||||
| endfunction | ||||
|  | ||||
| " See if the specified line is already user-dedented from the expected value. | ||||
| function s:Dedented(lnum, expected) | ||||
|   return indent(a:lnum) <= a:expected - shiftwidth() | ||||
| endfunction | ||||
|  | ||||
| let s:maxoff = 50       " maximum number of lines to look backwards for () | ||||
|  | ||||
| " Some other filetypes which embed Python have slightly different indent | ||||
| " rules (e.g. bitbake). Those filetypes can pass an extra funcref to this | ||||
| " function which is evaluated below. | ||||
| @@ -39,30 +54,30 @@ function python#GetIndent(lnum, ...) | ||||
|     return 0 | ||||
|   endif | ||||
|  | ||||
|   call cursor(plnum, 1) | ||||
|  | ||||
|   " Identing inside parentheses can be very slow, regardless of the searchpair() | ||||
|   " timeout, so let the user disable this feature if he doesn't need it | ||||
|   let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0) | ||||
|  | ||||
|   if disable_parentheses_indenting == 1 | ||||
|   if s:disable_parentheses_indenting == 1 | ||||
|     let plindent = indent(plnum) | ||||
|     let plnumstart = plnum | ||||
|   else | ||||
|     " searchpair() can be slow sometimes, limit the time to 150 msec or what is | ||||
|     " put in g:pyindent_searchpair_timeout | ||||
|     let searchpair_stopline = 0 | ||||
|     let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150) | ||||
|     " Indent inside parens. | ||||
|     " Align with the open paren unless it is at the end of the line. | ||||
|     " E.g. | ||||
|     "     open_paren_not_at_EOL(100, | ||||
|     "                           (200, | ||||
|     "                            300), | ||||
|     "                           400) | ||||
|     "     open_paren_at_EOL( | ||||
|     "         100, 200, 300, 400) | ||||
|     call cursor(a:lnum, 1) | ||||
|     let [parlnum, parcol] = s:SearchBracket(a:lnum, 'nbW') | ||||
|     if parlnum > 0 && parcol != col([parlnum, '$']) - 1 | ||||
|       return parcol | ||||
|     endif | ||||
|  | ||||
|     call cursor(plnum, 1) | ||||
|  | ||||
|     " If the previous line is inside parenthesis, use the indent of the starting | ||||
|     " line. | ||||
|     " Trick: use the non-existing "dummy" variable to break out of the loop when | ||||
|     " going too far back. | ||||
|     let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW', | ||||
|             \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :" | ||||
|             \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" | ||||
|             \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", | ||||
|             \ searchpair_stopline, searchpair_timeout) | ||||
|     let [parlnum, _] = s:SearchBracket(plnum, 'nbW') | ||||
|     if parlnum > 0 | ||||
|       if a:0 > 0 && ExtraFunc(parlnum) | ||||
|         " We may have found the opening brace of a bitbake Python task, e.g. 'python do_task {' | ||||
| @@ -85,11 +100,7 @@ function python#GetIndent(lnum, ...) | ||||
|     "       + b | ||||
|     "       + c) | ||||
|     call cursor(a:lnum, 1) | ||||
|     let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', | ||||
|             \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" | ||||
|             \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" | ||||
|             \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", | ||||
|             \ searchpair_stopline, searchpair_timeout) | ||||
|     let [p, _] = s:SearchBracket(a:lnum, 'bW') | ||||
|     if p > 0 | ||||
|       if a:0 > 0 && ExtraFunc(p) | ||||
|         " Currently only used by bitbake | ||||
| @@ -109,11 +120,7 @@ function python#GetIndent(lnum, ...) | ||||
|       else | ||||
|         if p == plnum | ||||
|           " When the start is inside parenthesis, only indent one 'shiftwidth'. | ||||
|           let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', | ||||
|               \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" | ||||
|               \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" | ||||
|               \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", | ||||
|               \ searchpair_stopline, searchpair_timeout) | ||||
|           let [pp, _] = s:SearchBracket(a:lnum, 'bW') | ||||
|           if pp > 0 | ||||
|             return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth()) | ||||
|           endif | ||||
| @@ -136,12 +143,12 @@ function python#GetIndent(lnum, ...) | ||||
|     " If the last character in the line is a comment, do a binary search for | ||||
|     " the start of the comment.  synID() is slow, a linear search would take | ||||
|     " too long on a long line. | ||||
|     if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$" | ||||
|     if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)" | ||||
|       let min = 1 | ||||
|       let max = pline_len | ||||
|       while min < max | ||||
| 	let col = (min + max) / 2 | ||||
| 	if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$" | ||||
| 	if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)" | ||||
| 	  let max = col | ||||
| 	else | ||||
| 	  let min = col + 1 | ||||
|   | ||||
| @@ -25,6 +25,7 @@ Get specific help:  It is possible to go directly to whatever you want help | ||||
| 		      Option			  '	   :help 'textwidth' | ||||
| 		      Regular expression	  /	   :help /[ | ||||
| 		    See |help-summary| for more contexts and an explanation. | ||||
| 		    See |notation| for an explanation of the help syntax. | ||||
|  | ||||
|   Search for help:  Type ":help word", then hit CTRL-D to see matching | ||||
| 		    help entries for "word". | ||||
|   | ||||
| @@ -1325,7 +1325,8 @@ A jump table for the options with a short description can be found at |Q_op|. | ||||
| 	page can have a different value. | ||||
|  | ||||
| 	When 'cmdheight' is zero, there is no command-line unless it is being | ||||
| 	used.  Any messages will cause the |hit-enter| prompt. | ||||
| 	used.  Some informative messages will not be displayed, any other | ||||
| 	messages will cause the |hit-enter| prompt. | ||||
|  | ||||
| 						*'cmdwinheight'* *'cwh'* | ||||
| 'cmdwinheight' 'cwh'	number	(default 7) | ||||
| @@ -3735,8 +3736,8 @@ A jump table for the options with a short description can be found at |Q_op|. | ||||
| 						*'lispwords'* *'lw'* | ||||
| 'lispwords' 'lw'	string	(default is very long) | ||||
| 			global or local to buffer |global-local| | ||||
| 	Comma-separated list of words that influence the Lisp indenting. | ||||
| 	|'lisp'| | ||||
| 	Comma-separated list of words that influence the Lisp indenting when | ||||
| 	enabled with the |'lisp'| option. | ||||
|  | ||||
| 						*'list'* *'nolist'* | ||||
| 'list'			boolean	(default off) | ||||
|   | ||||
| @@ -202,9 +202,9 @@ message when it doesn't, append !: > | ||||
|  | ||||
| 	:unlet! s:count | ||||
|  | ||||
| When a script finishes, the local variables used there will not be | ||||
| automatically freed.  The next time the script executes, it can still use the | ||||
| old value.  Example: > | ||||
| When a script has been processed to the end, the local variables declared | ||||
| there will not be deleted.  Functions defined in the script can use them. | ||||
| Example: | ||||
|  | ||||
| 	:if !exists("s:call_count") | ||||
| 	:  let s:call_count = 0 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| " Vim filetype plugin file | ||||
| " Language:     Abaqus finite element input file (www.abaqus.com) | ||||
| " Maintainer:   Carl Osterwisch <osterwischc@asme.org> | ||||
| " Last Change:  2022 May 09 | ||||
| " Maintainer:   Carl Osterwisch <costerwi@gmail.com> | ||||
| " Last Change:  2022 Aug 03 | ||||
|  | ||||
| " Only do this when not done yet for this buffer | ||||
| if exists("b:did_ftplugin") | finish | endif | ||||
| @@ -46,7 +46,7 @@ if has("folding") | ||||
| endif | ||||
|  | ||||
| " Set the file browse filter (currently only supported under Win32 gui) | ||||
| if has("gui_win32") && !exists("b:browsefilter") | ||||
| if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") | ||||
|     let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" . | ||||
|     \ "Abaqus Results (*.dat)\t*.dat\n" . | ||||
|     \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" . | ||||
| @@ -57,7 +57,7 @@ endif | ||||
| " Define patterns for the matchit plugin | ||||
| if exists("loaded_matchit") && !exists("b:match_words") | ||||
|     let b:match_ignorecase = 1 | ||||
|     let b:match_words =  | ||||
|     let b:match_words = | ||||
|     \ '\*part:\*end\s*part,' . | ||||
|     \ '\*assembly:\*end\s*assembly,' . | ||||
|     \ '\*instance:\*end\s*instance,' . | ||||
| @@ -65,25 +65,27 @@ if exists("loaded_matchit") && !exists("b:match_words") | ||||
|     let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words" | ||||
| endif | ||||
|  | ||||
| " Define keys used to move [count] keywords backward or forward. | ||||
| noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR> | ||||
| noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR> | ||||
| if !exists("no_plugin_maps") && !exists("no_abaqus_maps") | ||||
|   " Define keys used to move [count] keywords backward or forward. | ||||
|   noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR> | ||||
|   noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR> | ||||
|  | ||||
| " Define key to toggle commenting of the current line or range | ||||
| noremap <silent><buffer> <LocalLeader><LocalLeader>  | ||||
|     \ :call <SID>Abaqus_ToggleComment()<CR>j | ||||
| function! <SID>Abaqus_ToggleComment() range | ||||
|     if strpart(getline(a:firstline), 0, 2) == "**" | ||||
|         " Un-comment all lines in range | ||||
|         silent execute a:firstline . ',' . a:lastline . 's/^\*\*//' | ||||
|     else | ||||
|         " Comment all lines in range | ||||
|         silent execute a:firstline . ',' . a:lastline . 's/^/**/' | ||||
|     endif | ||||
| endfunction | ||||
|   " Define key to toggle commenting of the current line or range | ||||
|   noremap <silent><buffer> <LocalLeader><LocalLeader> | ||||
|       \ :call <SID>Abaqus_ToggleComment()<CR>j | ||||
|   function! <SID>Abaqus_ToggleComment() range | ||||
|       if strpart(getline(a:firstline), 0, 2) == "**" | ||||
| 	  " Un-comment all lines in range | ||||
| 	  silent execute a:firstline . ',' . a:lastline . 's/^\*\*//' | ||||
|       else | ||||
| 	  " Comment all lines in range | ||||
| 	  silent execute a:firstline . ',' . a:lastline . 's/^/**/' | ||||
|       endif | ||||
|   endfunction | ||||
|  | ||||
| let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]" | ||||
|     \ . "|unmap <buffer> <LocalLeader><LocalLeader>" | ||||
|   let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]" | ||||
|       \ . "|unmap <buffer> <LocalLeader><LocalLeader>" | ||||
| endif | ||||
|  | ||||
| " Undo must be done in nocompatible mode for <LocalLeader>. | ||||
| let b:undo_ftplugin = "let b:cpo_save = &cpoptions|" | ||||
|   | ||||
| @@ -1,12 +1,12 @@ | ||||
| " Vim filetype plugin file | ||||
| " Language:	php | ||||
| " | ||||
| " This runtime file is looking for a new maintainer. | ||||
| " | ||||
| " Former maintainer:	Dan Sharp | ||||
| " Last Changed: 20 Jan 2009 | ||||
| " Language:		PHP | ||||
| " Maintainer:		Doug Kearns <dougkearns@gmail.com> | ||||
| " Previous Maintainer:	Dan Sharp | ||||
| " Last Changed:		2022 Jul 20 | ||||
|  | ||||
| if exists("b:did_ftplugin") | finish | endif | ||||
| if exists("b:did_ftplugin") | ||||
|   finish | ||||
| endif | ||||
|  | ||||
| " Make sure the continuation lines below do not cause problems in | ||||
| " compatibility mode. | ||||
| @@ -15,8 +15,8 @@ set cpo&vim | ||||
|  | ||||
| " Define some defaults in case the included ftplugins don't set them. | ||||
| let s:undo_ftplugin = "" | ||||
| let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" . | ||||
| 	    \	     "All Files (*.*)\t*.*\n" | ||||
| let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .. | ||||
|       \		     "All Files (*.*)\t*.*\n" | ||||
| let s:match_words = "" | ||||
|  | ||||
| runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim | ||||
| @@ -24,63 +24,130 @@ let b:did_ftplugin = 1 | ||||
|  | ||||
| " Override our defaults if these were set by an included ftplugin. | ||||
| if exists("b:undo_ftplugin") | ||||
|     let s:undo_ftplugin = b:undo_ftplugin | ||||
| " let b:undo_ftplugin = "setlocal comments< commentstring< formatoptions< omnifunc<" | ||||
|   let s:undo_ftplugin = b:undo_ftplugin | ||||
| endif | ||||
| if exists("b:browsefilter") | ||||
|     let s:browsefilter = b:browsefilter | ||||
| " let b:undo_ftplugin ..= " | unlet! b:browsefilter b:html_set_browsefilter" | ||||
|   let s:browsefilter = b:browsefilter | ||||
| endif | ||||
| if exists("b:match_words") | ||||
|     let s:match_words = b:match_words | ||||
| " let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:html_set_match_words" | ||||
|   let s:match_words = b:match_words | ||||
| endif | ||||
| if exists("b:match_skip") | ||||
|     unlet b:match_skip | ||||
|   unlet b:match_skip | ||||
| endif | ||||
|  | ||||
| " Change the :browse e filter to primarily show PHP-related files. | ||||
| if has("gui_win32") | ||||
|     let  b:browsefilter="PHP Files (*.php)\t*.php\n" . s:browsefilter | ||||
| setlocal comments=s1:/*,mb:*,ex:*/,://,:# | ||||
| setlocal commentstring=/*%s*/ | ||||
| setlocal formatoptions+=l formatoptions-=t | ||||
|  | ||||
| if get(g:, "php_autocomment", 1) | ||||
|   setlocal formatoptions+=croq | ||||
|   " NOTE: set g:PHP_autoformatcomment = 0 to prevent the indent plugin from | ||||
|   "       overriding this 'comments' value  | ||||
|   setlocal comments-=:# | ||||
|   " space after # comments to exclude attributes | ||||
|   setlocal comments+=b:# | ||||
| endif | ||||
|  | ||||
| if exists('&omnifunc') | ||||
|   setlocal omnifunc=phpcomplete#CompletePHP | ||||
| endif | ||||
|  | ||||
| setlocal suffixesadd=.php | ||||
|  | ||||
| " ### | ||||
| " Provided by Mikolaj Machowski <mikmach at wp dot pl> | ||||
| setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\? | ||||
| " Disabled changing 'iskeyword', it breaks a command such as "*" | ||||
| " setlocal iskeyword+=$ | ||||
|  | ||||
| if exists("loaded_matchit") | ||||
|     let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' . | ||||
| 		      \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' . | ||||
| 		      \ '\<while\>:\<endwhile\>,' . | ||||
| 		      \ '\<do\>:\<while\>,' . | ||||
| 		      \ '\<for\>:\<endfor\>,' . | ||||
| 		      \ '\<foreach\>:\<endforeach\>,' . | ||||
|                       \ '(:),[:],{:},' . | ||||
| 		      \ s:match_words | ||||
| let b:undo_ftplugin = "setlocal include< suffixesadd<" | ||||
|  | ||||
| if exists("loaded_matchit") && exists("b:html_set_match_words") | ||||
|   let b:match_ignorecase = 1 | ||||
|   let b:match_words = 'PhpMatchWords()' | ||||
|  | ||||
|   if !exists("*PhpMatchWords") | ||||
|     function! PhpMatchWords() | ||||
|       " The PHP syntax file uses the Delimiter syntax group for the phpRegion | ||||
|       " matchgroups, without a "php" prefix, so use the stack to test for the | ||||
|       " outer phpRegion group.	This also means the closing ?> tag which is | ||||
|       " outside of the matched region just uses the Delimiter group for the | ||||
|       " end match. | ||||
|       let stack = synstack(line('.'), col('.')) | ||||
|       let php_region = !empty(stack) && synIDattr(stack[0], "name") =~# '\<php' | ||||
|       if php_region || getline(".") =~ '.\=\%.c\&?>' | ||||
| 	let b:match_skip = "PhpMatchSkip('html')" | ||||
| 	return '<?php\|<?=\=:?>,' .. | ||||
| 	   \   '\<if\>:\<elseif\>:\<else\>:\<endif\>,' .. | ||||
| 	   \   '\<switch\>:\<case\>:\<break\>:\<continue\>:\<endswitch\>,' .. | ||||
| 	   \   '\<while\>.\{-})\s*\::\<break\>:\<continue\>:\<endwhile\>,' .. | ||||
| 	   \   '\<do\>:\<break\>:\<continue\>:\<while\>,' .. | ||||
| 	   \   '\<for\>:\<break\>:\<continue\>:\<endfor\>,' .. | ||||
| 	   \   '\<foreach\>:\<break\>:\<continue\>:\<endforeach\>,' .. | ||||
| 	   \   '\%(<<<\s*\)\@<=''\=\(\h\w*\)''\=:^\s*\1\>' | ||||
|  | ||||
| 	   " TODO: these probably aren't worth adding and really need syntax support | ||||
| 	   "   '<\_s*script\_s*language\_s*=\_s*[''"]\=\_s*php\_s*[''"]\=\_s*>:<\_s*\_s*/\_s*script\_s*>,' .. | ||||
| 	   "   '<%:%>,' .. | ||||
|       else | ||||
| 	let b:match_skip = "PhpMatchSkip('php')" | ||||
| 	return s:match_words | ||||
|       endif | ||||
|     endfunction | ||||
|   endif | ||||
|   if !exists("*PhpMatchSkip") | ||||
|     function! PhpMatchSkip(skip) | ||||
|       let name = synIDattr(synID(line('.'), col('.'), 1), 'name') | ||||
|       if a:skip == "html" | ||||
| 	" ?> in line comments will also be correctly matched as Delimiter | ||||
| 	return name =~? 'comment\|string' || name !~? 'php\|delimiter' | ||||
|       else " php | ||||
| 	return name =~? 'comment\|string\|php' | ||||
|       endif | ||||
|     endfunction | ||||
|   endif | ||||
|   let b:undo_ftplugin ..= " | unlet! b:match_skip" | ||||
| endif | ||||
| " ### | ||||
|  | ||||
| if exists('&omnifunc') | ||||
|   setlocal omnifunc=phpcomplete#CompletePHP | ||||
| " Change the :browse e filter to primarily show PHP-related files. | ||||
| if (has("gui_win32") || has("gui_gtk")) && exists("b:html_set_browsefilter") | ||||
|   let b:browsefilter = "PHP Files (*.php)\t*.php\n" .. | ||||
| 	\	       "PHP Test Files (*.phpt)\t*.phpt\n" .. | ||||
| 	\	       s:browsefilter | ||||
| endif | ||||
|  | ||||
| " Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com> | ||||
| let s:function = '\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function' | ||||
| let s:class = '\(abstract\s\+\|final\s\+\)*class' | ||||
| let s:interface = 'interface' | ||||
| let s:section = '\(.*\%#\)\@!\_^\s*\zs\('.s:function.'\|'.s:class.'\|'.s:interface.'\)' | ||||
| exe 'nno <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>' | ||||
| exe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>' | ||||
| exe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>' | ||||
| exe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>' | ||||
| if !exists("no_plugin_maps") && !exists("no_php_maps") | ||||
|   " Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com> | ||||
|   let s:function = '\%(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function' | ||||
|   let s:class = '\%(abstract\s\+\|final\s\+\)*class' | ||||
|   let s:section = escape('^\s*\zs\%(' .. s:function .. '\|' .. s:class .. '\|interface\|trait\|enum\)\>', "|") | ||||
|  | ||||
| setlocal suffixesadd=.php | ||||
| setlocal commentstring=/*%s*/ | ||||
|   function! s:Jump(pattern, count, flags) | ||||
|     normal! m' | ||||
|     for i in range(a:count) | ||||
|       if !search(a:pattern, a:flags) | ||||
| 	break | ||||
|       endif | ||||
|     endfor | ||||
|   endfunction | ||||
|  | ||||
| " Undo the stuff we changed. | ||||
| let b:undo_ftplugin = "setlocal suffixesadd< commentstring< include< omnifunc<" . | ||||
| 	    \	      " | unlet! b:browsefilter b:match_words | " . | ||||
| 	    \	      s:undo_ftplugin | ||||
|   for mode in ["n", "o", "x"] | ||||
|     exe mode .. "noremap <buffer> <silent> ]] <Cmd>call <SID>Jump('" .. s:section .. "', v:count1, 'W')<CR>" | ||||
|     exe mode .. "noremap <buffer> <silent> [[ <Cmd>call <SID>Jump('" .. s:section .. "', v:count1, 'bW')<CR>" | ||||
|     let b:undo_ftplugin ..= " | sil! exe '" .. mode .. "unmap <buffer> ]]'" .. | ||||
| 	  \		    " | sil! exe '" .. mode .. "unmap <buffer> [['" | ||||
|   endfor | ||||
| endif | ||||
|  | ||||
| let b:undo_ftplugin ..= " | " .. s:undo_ftplugin | ||||
|  | ||||
| " Restore the saved compatibility options. | ||||
| let &cpo = s:keepcpo | ||||
| unlet s:keepcpo | ||||
|  | ||||
| " vim: nowrap sw=2 sts=2 ts=8 noet: | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| " Vim filetype plugin | ||||
| " Language:	Vim | ||||
| " Maintainer:	Bram Moolenaar <Bram@vim.org> | ||||
| " Last Change:	2021 Apr 11 | ||||
| " Last Change:	2022 Aug 4 | ||||
|  | ||||
| " Only do this when not done yet for this buffer | ||||
| if exists("b:did_ftplugin") | ||||
| @@ -109,7 +109,7 @@ if exists("loaded_matchit") | ||||
|   " - set spl=de,en | ||||
|   " - au! FileType javascript syntax region foldBraces start=/{/ end=/}/ … | ||||
|   let b:match_skip = 'synIDattr(synID(line("."),col("."),1),"name") | ||||
|         \ =~? "comment\\|string\\|vimSynReg\\|vimSet"' | ||||
|         \ =~? "comment\\|string\\|vimLetHereDoc\\|vimSynReg\\|vimSet"' | ||||
| endif | ||||
|  | ||||
| let &cpo = s:cpo_save | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| " Vim indent file | ||||
| " Language:	Lisp | ||||
| " Maintainer:    Sergey Khorev <sergey.khorev@gmail.com> | ||||
| " URL:		 http://sites.google.com/site/khorser/opensource/vim | ||||
| " Maintainer:	Sergey Khorev <sergey.khorev@gmail.com> | ||||
| " URL:		http://sites.google.com/site/khorser/opensource/vim | ||||
| " Last Change:	2012 Jan 10 | ||||
|  | ||||
| " Only load this indent file when no other was loaded. | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| " Language:    SystemVerilog | ||||
| " Maintainer:  kocha <kocha.lsifrontend@gmail.com> | ||||
| " Last Change: 05-Feb-2017 by Bilal Wasim | ||||
| "		2022 April: b:undo_indent added by Doug Kearns | ||||
| "              03-Aug-2022 Improved indent | ||||
|  | ||||
| " Only load this indent file when no other was loaded. | ||||
| if exists("b:did_indent") | ||||
| @@ -15,7 +15,7 @@ setlocal indentkeys=!^F,o,O,0),0},=begin,=end,=join,=endcase,=join_any,=join_non | ||||
| setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify | ||||
| setlocal indentkeys+==endclass,=endpackage,=endsequence,=endclocking | ||||
| setlocal indentkeys+==endinterface,=endgroup,=endprogram,=endproperty,=endchecker | ||||
| setlocal indentkeys+==`else,=`endif | ||||
| setlocal indentkeys+==`else,=`elsif,=`endif | ||||
|  | ||||
| let b:undo_indent = "setl inde< indk<" | ||||
|  | ||||
| @@ -27,6 +27,9 @@ endif | ||||
| let s:cpo_save = &cpo | ||||
| set cpo&vim | ||||
|  | ||||
| let s:multiple_comment = 0 | ||||
| let s:open_statement = 0 | ||||
|  | ||||
| function SystemVerilogIndent() | ||||
|  | ||||
|   if exists('b:systemverilog_indent_width') | ||||
| @@ -40,6 +43,12 @@ function SystemVerilogIndent() | ||||
|     let indent_modules = 0 | ||||
|   endif | ||||
|  | ||||
|   if exists('b:systemverilog_indent_ifdef_off') | ||||
|     let indent_ifdef = 0 | ||||
|   else | ||||
|     let indent_ifdef = 1 | ||||
|   endif | ||||
|  | ||||
|   " Find a non-blank line above the current line. | ||||
|   let lnum = prevnonblank(v:lnum - 1) | ||||
|  | ||||
| @@ -54,48 +63,55 @@ function SystemVerilogIndent() | ||||
|   let last_line2 = getline(lnum2) | ||||
|   let ind  = indent(lnum) | ||||
|   let ind2 = indent(lnum - 1) | ||||
|   let offset_comment1 = 1 | ||||
|   " Define the condition of an open statement | ||||
|   "   Exclude the match of //, /* or */ | ||||
|   let sv_openstat = '\(\<or\>\|\([*/]\)\@<![*(,{><+-/%^&|!=?:]\([*/]\)\@!\)' | ||||
|   " Define the condition when the statement ends with a one-line comment | ||||
|   let sv_comment = '\(//.*\|/\*.*\*/\s*\)' | ||||
|   if exists('b:verilog_indent_verbose') | ||||
|     let vverb_str = 'INDENT VERBOSE:' | ||||
|   if exists('b:systemverilog_indent_verbose') | ||||
|     let vverb_str = 'INDENT VERBOSE: '. v:lnum .":" | ||||
|     let vverb = 1 | ||||
|   else | ||||
|     let vverb = 0 | ||||
|   endif | ||||
|  | ||||
|   " Indent according to last line | ||||
|   " End of multiple-line comment | ||||
|   if last_line =~ '\*/\s*$' && last_line !~ '/\*.\{-}\*/' | ||||
|     let ind = ind - offset_comment1 | ||||
|     if vverb | ||||
|       echo vverb_str "De-indent after a multiple-line comment." | ||||
|     endif | ||||
|   " Multiple-line comment count | ||||
|   if curr_line =~ '^\s*/\*' && curr_line !~ '/\*.\{-}\*/' | ||||
|     let s:multiple_comment += 1 | ||||
|     if vverb | echom vverb_str "Start of multiple-line commnt" | endif | ||||
|   elseif curr_line =~ '\*/\s*$' && curr_line !~ '/\*.\{-}\*/' | ||||
|     let s:multiple_comment -= 1 | ||||
|     if vverb | echom vverb_str "End of multiple-line commnt" | endif | ||||
|     return ind | ||||
|   endif | ||||
|   " Maintain indentation during commenting. | ||||
|   if s:multiple_comment > 0 | ||||
|     return ind | ||||
|   endif | ||||
|  | ||||
|   " Indent after if/else/for/case/always/initial/specify/fork blocks | ||||
|   elseif last_line =~ '`\@<!\<\(if\|else\)\>' || | ||||
|     \ last_line =~ '^\s*\<\(for\|case\%[[zx]]\|do\|foreach\|forever\|randcase\)\>' || | ||||
|   if last_line =~ '^\s*\(end\)\=\s*`\@<!\<\(if\|else\)\>' || | ||||
|     \ last_line =~ '^\s*\<\(for\|while\|repeat\|case\%[[zx]]\|do\|foreach\|forever\|randcase\)\>' || | ||||
|     \ last_line =~ '^\s*\<\(always\|always_comb\|always_ff\|always_latch\)\>' || | ||||
|     \ last_line =~ '^\s*\<\(initial\|specify\|fork\|final\)\>' | ||||
|     if last_line !~ '\(;\|\<end\>\)\s*' . sv_comment . '*$' || | ||||
|     if last_line !~ '\(;\|\<end\>\|\*/\)\s*' . sv_comment . '*$' || | ||||
|       \ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$' | ||||
|       let ind = ind + offset | ||||
|       if vverb | echo vverb_str "Indent after a block statement." | endif | ||||
|       if vverb | echom vverb_str "Indent after a block statement." | endif | ||||
|     endif | ||||
|   " Indent after function/task/class/package/sequence/clocking/ | ||||
|   " interface/covergroup/property/checkerprogram blocks | ||||
|   elseif last_line =~ '^\s*\<\(function\|task\|class\|package\)\>' || | ||||
|     \ last_line =~ '^\s*\<\(sequence\|clocking\|interface\)\>' || | ||||
|     \ last_line =~ '^\s*\(\w\+\s*:\)\=\s*\<covergroup\>' || | ||||
|     \ last_line =~ '^\s*\<\(property\|checker\|program\)\>' | ||||
|     \ last_line =~ '^\s*\<\(property\|checker\|program\)\>' || | ||||
|     \ ( last_line =~ '^\s*\<virtual\>' && last_line =~ '\<\(function\|task\|class\|interface\)\>' ) || | ||||
|     \ ( last_line =~ '^\s*\<pure\>' &&  last_line =~ '\<virtual\>' && last_line =~ '\<\(function\|task\)\>' ) | ||||
|     if last_line !~ '\<end\>\s*' . sv_comment . '*$' || | ||||
|       \ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$' | ||||
|       let ind = ind + offset | ||||
|       if vverb | ||||
| 	echo vverb_str "Indent after function/task/class block statement." | ||||
|         echom vverb_str "Indent after function/task/class block statement." | ||||
|       endif | ||||
|     endif | ||||
|  | ||||
| @@ -103,13 +119,13 @@ function SystemVerilogIndent() | ||||
|   elseif last_line =~ '^\s*\(\<extern\>\s*\)\=\<module\>' | ||||
|     let ind = ind + indent_modules | ||||
|     if vverb && indent_modules | ||||
|       echo vverb_str "Indent after module statement." | ||||
|       echom vverb_str "Indent after module statement." | ||||
|     endif | ||||
|     if last_line =~ '[(,]\s*' . sv_comment . '*$' && | ||||
|       \ last_line !~ '\(//\|/\*\).*[(,]\s*' . sv_comment . '*$' | ||||
|       let ind = ind + offset | ||||
|       if vverb | ||||
| 	echo vverb_str "Indent after a multiple-line module statement." | ||||
|         echom vverb_str "Indent after a multiple-line module statement." | ||||
|       endif | ||||
|     endif | ||||
|  | ||||
| @@ -119,7 +135,7 @@ function SystemVerilogIndent() | ||||
|     \ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' || | ||||
|     \ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' ) | ||||
|     let ind = ind + offset | ||||
|     if vverb | echo vverb_str "Indent after begin statement." | endif | ||||
|     if vverb | echom vverb_str "Indent after begin statement." | endif | ||||
|  | ||||
|   " Indent after a '{' or a '(' | ||||
|   elseif last_line =~ '[{(]' . sv_comment . '*$' && | ||||
| @@ -127,7 +143,21 @@ function SystemVerilogIndent() | ||||
|     \ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' || | ||||
|     \ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' ) | ||||
|     let ind = ind + offset | ||||
|     if vverb | echo vverb_str "Indent after begin statement." | endif | ||||
|     if vverb | echom vverb_str "Indent after begin statement." | endif | ||||
|  | ||||
|   " Ignore de-indent for the end of one-line block | ||||
|   elseif ( last_line !~ '\<begin\>' || | ||||
|     \ last_line =~ '\(//\|/\*\).*\<begin\>' ) && | ||||
|     \ last_line2 =~ '\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|forever\|final\)\>.*' . | ||||
|       \ sv_comment . '*$' && | ||||
|     \ last_line2 !~ '\(//\|/\*\).*\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|forever\|final\)\>' && | ||||
|     \ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|     \ ( last_line2 !~ '\<begin\>' || | ||||
|     \ last_line2 =~ '\(//\|/\*\).*\<begin\>' ) && | ||||
|     \ last_line2 =~ ')*\s*;\s*' . sv_comment . '*$' | ||||
|     if vverb | ||||
|       echom vverb_str "Ignore de-indent after the end of one-line statement." | ||||
|     endif | ||||
|  | ||||
|   " De-indent for the end of one-line block | ||||
|   elseif ( last_line !~ '\<begin\>' || | ||||
| @@ -136,39 +166,29 @@ function SystemVerilogIndent() | ||||
|       \ sv_comment . '*$' && | ||||
|     \ last_line2 !~ '\(//\|/\*\).*\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|forever\|final\)\>' && | ||||
|     \ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|     \ last_line2 !~ '\(;\|\<end\>\|\*/\)\s*' . sv_comment . '*$' && | ||||
|     \ ( last_line2 !~ '\<begin\>' || | ||||
|     \ last_line2 =~ '\(//\|/\*\).*\<begin\>' ) | ||||
|     let ind = ind - offset | ||||
|     if vverb | ||||
|       echo vverb_str "De-indent after the end of one-line statement." | ||||
|       echom vverb_str "De-indent after the end of one-line statement." | ||||
|     endif | ||||
|  | ||||
|     " Multiple-line statement (including case statement) | ||||
|     " Open statement | ||||
|     "   Ident the first open line | ||||
|     elseif  last_line =~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|       \ last_line !~ '\(//\|/\*\).*' . sv_openstat . '\s*$' && | ||||
|       \ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' | ||||
|       let ind = ind + offset | ||||
|       if vverb | echo vverb_str "Indent after an open statement." | endif | ||||
|   " Multiple-line statement (including case statement) | ||||
|   " Open statement | ||||
|   "   Ident the first open line | ||||
|   elseif  last_line =~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|    \ last_line !~ '\(//\|/\*\).*' . sv_openstat . '\s*$' && | ||||
|    \ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' | ||||
|     let ind = ind + offset | ||||
|     let s:open_statement = 1 | ||||
|     if vverb | echom vverb_str "Indent after an open statement." | endif | ||||
|  | ||||
|     " Close statement | ||||
|     "   De-indent for an optional close parenthesis and a semicolon, and only | ||||
|     "   if there exists precedent non-whitespace char | ||||
|     elseif last_line =~ ')*\s*;\s*' . sv_comment . '*$' && | ||||
|       \ last_line !~ '^\s*)*\s*;\s*' . sv_comment . '*$' && | ||||
|       \ last_line !~ '\(//\|/\*\).*\S)*\s*;\s*' . sv_comment . '*$' && | ||||
|       \ ( last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|       \ last_line2 !~ ';\s*//.*$') && | ||||
|       \ last_line2 !~ '^\s*' . sv_comment . '$' | ||||
|       let ind = ind - offset | ||||
|       if vverb | echo vverb_str "De-indent after a close statement." | endif | ||||
|  | ||||
|   " `ifdef and `else | ||||
|   elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>' | ||||
|   " `ifdef or `ifndef or `elsif or `else | ||||
|   elseif last_line =~ '^\s*`\<\(ifn\?def\|elsif\|else\)\>' && indent_ifdef | ||||
|     let ind = ind + offset | ||||
|     if vverb | ||||
|       echo vverb_str "Indent after a `ifdef or `else statement." | ||||
|       echom vverb_str "Indent after a `ifdef or `ifndef or `elsif or `else statement." | ||||
|     endif | ||||
|  | ||||
|   endif | ||||
| @@ -177,17 +197,21 @@ function SystemVerilogIndent() | ||||
|  | ||||
|   " De-indent on the end of the block | ||||
|   " join/end/endcase/endfunction/endtask/endspecify | ||||
|   if curr_line =~ '^\s*\<\(join\|join_any\|join_none\|\|end\|endcase\|while\)\>' || | ||||
|   if curr_line =~ '^\s*\<\(join\|join_any\|join_none\|\|end\|endcase\)\>' || | ||||
|       \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\|endclass\)\>' || | ||||
|       \ curr_line =~ '^\s*\<\(endpackage\|endsequence\|endclocking\|endinterface\)\>' || | ||||
|       \ curr_line =~ '^\s*\<\(endgroup\|endproperty\|endchecker\|endprogram\)\>' || | ||||
|       \ curr_line =~ '^\s*}' | ||||
|       \ curr_line =~ '^\s*\<\(endgroup\|endproperty\|endchecker\|endprogram\)\>' | ||||
|     let ind = ind - offset | ||||
|     if vverb | echo vverb_str "De-indent the end of a block." | endif | ||||
|     if vverb | echom vverb_str "De-indent the end of a block." | endif | ||||
|     if s:open_statement == 1 | ||||
|       let ind = ind - offset | ||||
|       let s:open_statement = 0 | ||||
|       if vverb | echom vverb_str "De-indent the close statement." | endif | ||||
|     endif | ||||
|   elseif curr_line =~ '^\s*\<endmodule\>' | ||||
|     let ind = ind - indent_modules | ||||
|     if vverb && indent_modules | ||||
|       echo vverb_str "De-indent the end of a module." | ||||
|       echom vverb_str "De-indent the end of a module." | ||||
|     endif | ||||
|  | ||||
|   " De-indent on a stand-alone 'begin' | ||||
| @@ -202,25 +226,46 @@ function SystemVerilogIndent() | ||||
|       \ last_line =~ sv_openstat . '\s*' . sv_comment . '*$' ) | ||||
|       let ind = ind - offset | ||||
|       if vverb | ||||
| 	echo vverb_str "De-indent a stand alone begin statement." | ||||
|         echom vverb_str "De-indent a stand alone begin statement." | ||||
|       endif | ||||
|       if s:open_statement == 1 | ||||
|         let ind = ind - offset | ||||
|         let s:open_statement = 0 | ||||
|         if vverb | echom vverb_str "De-indent the close statement." | endif | ||||
|       endif | ||||
|     endif | ||||
|  | ||||
|   " De-indent after the end of multiple-line statement | ||||
|   elseif curr_line =~ '^\s*)' && | ||||
|     \ ( last_line =~ sv_openstat . '\s*' . sv_comment . '*$' || | ||||
|     \ last_line !~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|     \ last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' ) | ||||
|   " " Close statement | ||||
|   " "   De-indent for an optional close parenthesis and a semicolon, and only | ||||
|   " "   if there exists precedent non-whitespace char | ||||
|   " elseif last_line =~ ')*\s*;\s*' . sv_comment . '*$' && | ||||
|   "   \ last_line !~ '^\s*)*\s*;\s*' . sv_comment . '*$' && | ||||
|   "   \ last_line !~ '\(//\|/\*\).*\S)*\s*;\s*' . sv_comment . '*$' && | ||||
|   "   \ ( last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|   "   \ last_line2 !~ ';\s*//.*$') && | ||||
|   "   \ last_line2 !~ '^\s*' . sv_comment . '$' | ||||
|   "   let ind = ind - offset | ||||
|   "   if vverb | echom vverb_str "De-indent after a close statement." | endif | ||||
|  | ||||
|   " " De-indent after the end of multiple-line statement | ||||
|   " elseif curr_line =~ '^\s*)' && | ||||
|   "  \ ( last_line =~ sv_openstat . '\s*' . sv_comment . '*$' || | ||||
|   "  \ last_line !~ sv_openstat . '\s*' . sv_comment . '*$' && | ||||
|   "  \ last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' ) | ||||
|   "   let ind = ind - offset | ||||
|   "   if vverb | ||||
|   "     echom vverb_str "De-indent the end of a multiple statement." | ||||
|   "   endif | ||||
|  | ||||
|   " De-indent `elsif or `else or `endif | ||||
|   elseif curr_line =~ '^\s*`\<\(elsif\|else\|endif\)\>' && indent_ifdef | ||||
|     let ind = ind - offset | ||||
|     if vverb | ||||
|       echo vverb_str "De-indent the end of a multiple statement." | ||||
|     if vverb | echom vverb_str "De-indent `elsif or `else or `endif statement." | endif | ||||
|     if b:systemverilog_open_statement == 1 | ||||
|       let ind = ind - offset | ||||
|       let b:systemverilog_open_statement = 0 | ||||
|       if vverb | echom vverb_str "De-indent the open statement." | endif | ||||
|     endif | ||||
|  | ||||
|   " De-indent `else and `endif | ||||
|   elseif curr_line =~ '^\s*`\<\(else\|endif\)\>' | ||||
|     let ind = ind - offset | ||||
|     if vverb | echo vverb_str "De-indent `else and `endif statement." | endif | ||||
|  | ||||
|   endif | ||||
|  | ||||
|   " Return the indentation | ||||
| @@ -231,3 +276,4 @@ let &cpo = s:cpo_save | ||||
| unlet s:cpo_save | ||||
|  | ||||
| " vim:sw=2 | ||||
|  | ||||
|   | ||||
							
								
								
									
										68
									
								
								runtime/indent/testdir/python.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								runtime/indent/testdir/python.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| " vim: set ft=python sw=4 et: | ||||
|  | ||||
| " START_INDENT | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
| (200, | ||||
| 300), | ||||
| 400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
| 100, 200, 300, 400) | ||||
|  | ||||
| " END_INDENT | ||||
							
								
								
									
										68
									
								
								runtime/indent/testdir/python.ok
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								runtime/indent/testdir/python.ok
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| " vim: set ft=python sw=4 et: | ||||
|  | ||||
| " START_INDENT | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| open_paren_not_at_EOL(100, | ||||
|                       (200, | ||||
|                        300), | ||||
|                       400) | ||||
|  | ||||
| open_paren_at_EOL( | ||||
|         100, 200, 300, 400) | ||||
|  | ||||
| " END_INDENT | ||||
| @@ -930,7 +930,7 @@ function M.progress_pascal(bufnr) | ||||
|   return 'progress' | ||||
| end | ||||
|  | ||||
| -- Distinguish between "default" and Cproto prototype file. | ||||
| -- Distinguish between "default", Prolog and Cproto prototype file. | ||||
| function M.proto(bufnr, default) | ||||
|   -- Cproto files have a comment in the first line and a function prototype in | ||||
|   -- the second line, it always ends in ";".  Indent files may also have | ||||
| @@ -940,7 +940,18 @@ function M.proto(bufnr, default) | ||||
|   if getlines(bufnr, 2):find('.;$') then | ||||
|     return 'cpp' | ||||
|   else | ||||
|     return default | ||||
|     -- Recognize Prolog by specific text in the first non-empty line; | ||||
|     -- require a blank after the '%' because Perl uses "%list" and "%translate" | ||||
|     local line = nextnonblank(bufnr, 1) | ||||
|     if | ||||
|       line and line:find(':%-') | ||||
|       or matchregex(line, [[\c\<prolog\>]]) | ||||
|       or findany(line, { '^%s*%%+%s', '^%s*%%+$', '^%s*/%*' }) | ||||
|     then | ||||
|       return 'prolog' | ||||
|     else | ||||
|       return default | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | ||||
|   | ||||
| @@ -243,9 +243,6 @@ Examples: | ||||
| 	comment character) you can > | ||||
| 		:let b:match_skip = 'r:\(^\|[^\\]\)\(\\\\\)*%' | ||||
| < | ||||
| 	See the $VIMRUNTIME/ftplugin/vim.vim for an example that uses both | ||||
| 	syntax and a regular expression. | ||||
|  | ||||
| ============================================================================== | ||||
| 4. Supporting a New Language				*matchit-newlang* | ||||
| 							*b:match_words* | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| " Vim syntax file | ||||
| " Language:	Abaqus finite element input file (www.hks.com) | ||||
| " Maintainer:	Carl Osterwisch <osterwischc@asme.org> | ||||
| " Maintainer:	Carl Osterwisch <costerwi@gmail.com> | ||||
| " Last Change:	2002 Feb 24 | ||||
| " Remark:	Huge improvement in folding performance--see filetype plugin | ||||
|  | ||||
| @@ -28,8 +28,7 @@ syn match abaqusBadLine	"^\s\+\*.*" display | ||||
| hi def link abaqusComment	Comment | ||||
| hi def link abaqusKeyword	Statement | ||||
| hi def link abaqusParameter	Identifier | ||||
| hi def link abaqusValue	Constant | ||||
| hi def link abaqusBadLine    Error | ||||
|  | ||||
| hi def link abaqusValue		Constant | ||||
| hi def link abaqusBadLine    	Error | ||||
|  | ||||
| let b:current_syntax = "abaqus" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Christian Clason
					Christian Clason