diff options
57 files changed, 10419 insertions, 1464 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index 2603c6822f..81fdc9d956 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -1,7 +1,7 @@ " Vim functions for file type detection " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2017 Nov 11 +" Last Change: 2017 Dec 05 " These functions are moved here from runtime/filetype.vim to make startup " faster. @@ -618,7 +618,11 @@ func dist#ft#FTperl() setf perl return 1 endif - if search('^use\s\s*\k', 'nc', 30) + let save_cursor = getpos('.') + call cursor(1,1) + let has_use = search('^use\s\s*\k', 'c', 30) + call setpos('.', save_cursor) + if has_use setf perl return 1 endif diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index 2f9d8aa7f7..6cbcd1e6f9 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -20,7 +20,7 @@ files matching *.c. You can also use autocommands to implement advanced features, such as editing compressed files (see |gzip-example|). The usual place to put autocommands is in your vimrc file. - *E203* *E204* *E143* *E855* *E937* + *E203* *E204* *E143* *E855* *E937* *E952* WARNING: Using autocommands is very powerful, and may lead to unexpected side effects. Be careful not to destroy your text. - It's a good idea to do some testing on an expendable copy of a file first. diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 5aa09503cd..75db5a529c 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -825,7 +825,7 @@ Note: When the 'write' option is off, you are not able to write any file. *:w* *:write* *E502* *E503* *E504* *E505* - *E512* *E514* *E667* *E796* + *E512* *E514* *E667* *E796* *E949* :w[rite] [++opt] Write the whole buffer to the current file. This is the normal way to save changes to a file. It fails when the 'readonly' option is set or when there is @@ -881,6 +881,9 @@ used, for example, when the write fails and you want to try again later with ":w #". This can be switched off by removing the 'A' flag from the 'cpoptions' option. +Note that the 'fsync' option matters here. If it's set it may make writes +slower (but safer). + *:sav* *:saveas* :sav[eas][!] [++opt] {file} Save the current buffer under the name {file} and set diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 3f02365dab..d86c527857 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2194,6 +2194,8 @@ msgpackdump({list}) List dump a list of objects to msgpack msgpackparse({list}) List parse msgpack to a list of objects nextnonblank({lnum}) Number line nr of non-blank line >= {lnum} nr2char({expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr} +option_restore({list}) none restore options saved by option_save() +option_save({list}) List save options values nvim_...({args}...) any call nvim |api| functions or({expr}, {expr}) Number bitwise OR pathshorten({expr}) String shorten directory names in a path @@ -2611,6 +2613,8 @@ bufexists({expr}) *bufexists()* The result is a Number, which is |TRUE| if a buffer called {expr} exists. If the {expr} argument is a number, buffer numbers are used. + Number zero is the alternate buffer for the current window. + If the {expr} argument is a string it must match a buffer name exactly. The name can be: - Relative to the current directory. @@ -5565,8 +5569,6 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]]) < Matches added by |matchaddpos()| are returned by |getmatches()| with an entry "pos1", "pos2", etc., with the value a list like the {pos} item. - These matches cannot be set via |setmatches()|, however they - can still be deleted by |clearmatches()|. matcharg({nr}) *matcharg()* Selects the {nr} match item, as set with a |:match|, @@ -5880,6 +5882,31 @@ nvim_...({...}) *nvim_...()* *eval-api* also take the numerical value 0 to indicate the current (focused) object. +option_restore({list}) *option_restore()* + Restore options previously saved by option_save(). + When buffer-local options have been saved, this function must + be called when the same buffer is the current buffer. + When window-local options have been saved, this function must + be called when the same window is the current window. + When in the wrong buffer and/or window an error is given and + the local options won't be restored. + NOT IMPLEMENTED YET! + +option_save({list}) *option_save()* + Saves the options named in {list}. The returned value can be + passed to option_restore(). Example: > + let s:saved_options = option_save([ + \ 'ignorecase', + \ 'iskeyword', + \ ]) + au <buffer> BufLeave * + \ call option_restore(s:saved_options) +< The advantage over using `:let` is that global and local + values are handled and the script ID is restored, so that + `:verbose set` will show where the option was originally set, + not where it was restored. + NOT IMPLEMENTED YET! + or({expr}, {expr}) *or()* Bitwise OR on the two arguments. The arguments are converted to a number. A List, Dict or Float argument causes an error. diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index 6ac14e4122..286d96b684 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -570,7 +570,7 @@ By default the following options are set, in accordance with PEP8: > setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 To disable this behaviour, set the following variable in your vimrc: > - + let g:python_recommended_style = 0 @@ -750,4 +750,23 @@ You can change the default by defining the variable g:tex_flavor to the format Currently no other formats are recognized. +VIM *ft-vim-plugin* + +The Vim filetype plugin defines mappings to move to the start and end of +functions with [[ and ]]. Move around comments with ]" and [". + +The mappings can be disabled with: > + let g:no_vim_maps = 1 + + +ZIMBU *ft-zimbu-plugin* + +The Zimbu filetype plugin defines mappings to move to the start and end of +functions with [[ and ]]. + +The mappings can be disabled with: > + let g:no_zimbu_maps = 1 +< + + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt index e33f89e771..384406150f 100644 --- a/runtime/doc/if_pyth.txt +++ b/runtime/doc/if_pyth.txt @@ -705,12 +705,31 @@ Raising SystemExit exception in python isn't endorsed way to quit vim, use: > You can test what Python version is available with: > if has('python') echo 'there is Python 2.x' - elseif has('python3') + endif + if has('python3') echo 'there is Python 3.x' endif Note however, that if Python 2 and 3 are both available, but not loaded, these has() calls will try to load them. +To avoid loading the dynamic library, only check if Vim was compiled with +python support: > + if has('python_compiled') + echo 'compiled with Python 2.x support' + if has('python_dynamic') + echo 'Python 2.x dynamically loaded' + endif + endif + if has('python3_compiled') + echo 'compiled with Python 3.x support' + if has('python3_dynamic') + echo 'Python 3.x dynamically loaded' + endif + endif + +This also tells you whether Python is dynamically loaded, which will fail if +the runtime library cannot be found. + ============================================================================== vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index ef4e211d16..06284fb849 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -410,7 +410,7 @@ An example for using CTRL-G U: > inoremap ( ()<C-G>U<Left> This makes it possible to use the cursor keys in Insert mode, without breaking -the undo sequence and therefore using |.| (redo) will work as expected. +the undo sequence and therefore using |.| (redo) will work as expected. Also entering a text like (with the "(" mapping from above): > Lorem ipsum (dolor @@ -1508,15 +1508,15 @@ that begin with the filetype, "php", in this case. For example these syntax groups are included by default with the PHP: phpEnvVar, phpIntVar, phpFunctions. -If you wish non-filetype syntax items to also be included, you can use a -regular expression syntax (added in version 13.0 of autoload\syntaxcomplete.vim) -to add items. Looking at the output from ":syntax list" while editing a PHP file -I can see some of these entries: > +If you wish non-filetype syntax items to also be included, you can use a +regular expression syntax (added in version 13.0 of +autoload\syntaxcomplete.vim) to add items. Looking at the output from +":syntax list" while editing a PHP file I can see some of these entries: > htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects To pick up any JavaScript and HTML keyword syntax groups while editing a PHP -file, you can use 3 different regexs, one for each language. Or you can -simply restrict the include groups to a particular value, without using +file, you can use 3 different regexs, one for each language. Or you can +simply restrict the include groups to a particular value, without using a regex string: > let g:omni_syntax_group_include_php = 'php\w\+,javaScript\w\+,html\w\+' let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods' @@ -1529,9 +1529,9 @@ highlight. These items will be available within the omni completion list. Some people may find this list unwieldy or are only interested in certain items. There are two ways to prune this list (if necessary). If you find -certain syntax groups you do not wish displayed you can use two different -methods to identify these groups. The first specifically lists the syntax -groups by name. The second uses a regular expression to identify both +certain syntax groups you do not wish displayed you can use two different +methods to identify these groups. The first specifically lists the syntax +groups by name. The second uses a regular expression to identify both syntax groups. Simply add one the following to your vimrc: > let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant' let g:omni_syntax_group_exclude_php = 'php\w*Constant' @@ -1554,22 +1554,22 @@ vimrc: > For plugin developers, the plugin exposes a public function OmniSyntaxList. This function can be used to request a List of syntax items. When editing a -SQL file (:e syntax.sql) you can use the ":syntax list" command to see the +SQL file (:e syntax.sql) you can use the ":syntax list" command to see the various groups and syntax items. For example: > - syntax list - -Yields data similar to this: > - sqlOperator xxx some prior all like and any escape exists in is not - or intersect minus between distinct - links to Operator - sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier - date money long tinyint unsigned xml text smalldate - double datetime nchar smallint numeric time bit char - varbinary binary smallmoney - image float integer timestamp real decimal + syntax list + +Yields data similar to this: + sqlOperator xxx some prior all like and any escape exists in is not ~ + or intersect minus between distinct ~ + links to Operator ~ + sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier ~ + date money long tinyint unsigned xml text smalldate ~ + double datetime nchar smallint numeric time bit char ~ + varbinary binary smallmoney ~ + image float integer timestamp real decimal ~ There are two syntax groups listed here: sqlOperator and sqlType. To retrieve -a List of syntax items you can call OmniSyntaxList a number of different +a List of syntax items you can call OmniSyntaxList a number of different ways. To retrieve all syntax items regardless of syntax group: > echo OmniSyntaxList( [] ) @@ -1586,7 +1586,6 @@ From within a plugin, you would typically assign the output to a List: > let myKeywords = [] let myKeywords = OmniSyntaxList( ['sqlKeyword'] ) - SQL *ft-sql-omni* diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt index 96c28009c4..821d21a7b6 100644 --- a/runtime/doc/message.txt +++ b/runtime/doc/message.txt @@ -69,7 +69,7 @@ See `:messages` above. LIST OF MESSAGES *E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317* *E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322* - *E323* *E341* *E473* *E570* *E685* > + *E323* *E341* *E473* *E570* *E685* *E950* > Add to read buffer makemap: Illegal mode Cannot create BalloonEval with both message and callback @@ -90,6 +90,7 @@ LIST OF MESSAGES Internal error Internal error: {function} fatal error in cs_manage_matches + Invalid count for del_bytes(): {N} This is an internal error. If you can reproduce it, please send in a bug report. |bugs| diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index bfdc09662e..eae2178893 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1066,7 +1066,7 @@ A jump table for the options with a short description can be found at |Q_op|. characters. It permits dynamic French paragraph indentation (negative) or emphasizing the line continuation (positive). - sbr Display the 'showbreak' value before applying the + sbr Display the 'showbreak' value before applying the additional indent. The default value for min is 20 and shift is 0. @@ -4422,11 +4422,11 @@ A jump table for the options with a short description can be found at |Q_op|. copy of the original file will be kept. The name of the copy is the name of the original file with the string in the 'patchmode' option appended. This option should start with a dot. Use a string like - ".org". 'backupdir' must not be empty for this to work (Detail: The - backup file is renamed to the patchmode file after the new file has - been successfully written, that's why it must be possible to write a - backup file). If there was no file to be backed up, an empty file is - created. + ".orig" or ".org". 'backupdir' must not be empty for this to work + (Detail: The backup file is renamed to the patchmode file after the + new file has been successfully written, that's why it must be possible + to write a backup file). If there was no file to be backed up, an + empty file is created. When the 'backupskip' pattern matches, a patchmode file is not made. Using 'patchmode' for compressed files appends the extension at the end (e.g., "file.gz.orig"), thus the resulting name isn't always @@ -6003,6 +6003,7 @@ A jump table for the options with a short description can be found at |Q_op|. Also see |swap-file|. If you want to open a new buffer without creating a swap file for it, use the |:noswapfile| modifier. + See 'directory' for where the swap file is created. This option is used together with 'bufhidden' and 'buftype' to specify special kinds of buffers. See |special-buffers|. @@ -6284,7 +6285,7 @@ A jump table for the options with a short description can be found at |Q_op|. non-keyword characters (white space is preferred). Maximum line length is 510 bytes. To obtain a file to be used here, check out this ftp site: - [Sorry this link doesn't work anymore, do you know the right one?] + [Sorry this link doesn't work anymore, do you know the right one?] ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file. To include a comma in a file name precede it with a backslash. Spaces after a comma are ignored, otherwise spaces are included in the file diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt index cc485b655d..cd37e4fa02 100644 --- a/runtime/doc/pattern.txt +++ b/runtime/doc/pattern.txt @@ -888,7 +888,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on): becomes invalid. Vim doesn't automatically update the matches. Similar to moving the cursor for "\%#" |/\%#|. - */\%l* */\%>l* */\%<l* + */\%l* */\%>l* */\%<l* *E951* \%23l Matches in a specific line. \%<23l Matches above a specific line (lower line number). \%>23l Matches below a specific line (higher line number). diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt index 7067c60d2f..fa770b4a61 100644 --- a/runtime/doc/quickref.txt +++ b/runtime/doc/quickref.txt @@ -614,7 +614,8 @@ Short explanation of each option: *option-list* 'backupext' 'bex' extension used for the backup file 'backupskip' 'bsk' no backup for files that match these patterns 'balloondelay' 'bdlay' delay in mS before a balloon may pop up -'ballooneval' 'beval' switch on balloon evaluation +'ballooneval' 'beval' switch on balloon evaluation in the GUI +'balloonevalterm' 'bevalterm' switch on balloon evaluation in the terminal 'balloonexpr' 'bexpr' expression to show in balloon 'belloff' 'bo' do not ring the bell for these reasons 'binary' 'bin' read/write/edit file in binary mode @@ -809,6 +810,7 @@ Short explanation of each option: *option-list* 'printoptions' 'popt' controls the format of :hardcopy output 'prompt' 'prompt' enable prompt in Ex mode 'pumheight' 'ph' maximum height of the popup menu +'pumwidth' 'pw' minimum width of the popup menu 'pythondll' name of the Python 2 dynamic library 'pythonthreedll' name of the Python 3 dynamic library 'quoteescape' 'qe' escape characters used in a string diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt index 039d8b582e..48ed9d16fc 100644 --- a/runtime/doc/remote.txt +++ b/runtime/doc/remote.txt @@ -169,7 +169,8 @@ name on the 'VimRegistry' property on the root window. A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can also act as a command server if a server name is explicitly given with the ---servername argument. +--servername argument, or when Vim was build with the |+autoservername| +feature. An empty --servername argument will cause the command server to be disabled. diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 42889cca50..b63ece7d2d 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -226,6 +226,10 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|. If the directory pack/*/opt/{name}/after exists it is added at the end of 'runtimepath'. + If loading packages from "pack/*/start" was skipped, + then this directory is searched first: + pack/*/start/{name} ~ + Note that {name} is the directory name, not the name of the .vim file. All the files matching the pattern pack/*/opt/{name}/plugin/**/*.vim ~ diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index c3664ece18..3a2ed65a1b 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -2748,13 +2748,10 @@ Ruby syntax will perform spellchecking of strings if you define SCHEME *scheme.vim* *ft-scheme-syntax* -By default only R5RS keywords are highlighted and properly indented. +By default only R7RS keywords are highlighted and properly indented. -MzScheme-specific stuff will be used if b:is_mzscheme or g:is_mzscheme -variables are defined. - -Also scheme.vim supports keywords of the Chicken Scheme->C compiler. Define -b:is_chicken or g:is_chicken, if you need them. +scheme.vim also supports extensions of the CHICKEN Scheme->C compiler. +Define b:is_chicken or g:is_chicken, if you need them. SDL *sdl.vim* *ft-sdl-syntax* @@ -4947,6 +4944,11 @@ StatusLine status line of current window StatusLineNC status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. + *hl-StatusLineTerm* +StatusLineTerm status line of current window, if it is a |terminal| window. + *hl-StatusLineTermNC* +StatusLineTermNC status lines of not-current windows that is a |terminal| + window. *hl-TabLine* TabLine tab pages line, not active tab page label *hl-TabLineFill* diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt index afea67bd0b..d4d48af47e 100644 --- a/runtime/doc/usr_27.txt +++ b/runtime/doc/usr_27.txt @@ -225,9 +225,9 @@ specify a line offset, this can cause trouble. For example: > /const/-2 This finds the next word "const" and then moves two lines up. If you -use "n" to search again, Vim could start at the current position and find the same -"const" match. Then using the offset again, you would be back where you started. -You would be stuck! +use "n" to search again, Vim could start at the current position and find the +same "const" match. Then using the offset again, you would be back where you +started. You would be stuck! It could be worse: Suppose there is another match with "const" in the next line. Then repeating the forward search would find this match and move two lines up. Thus you would actually move the cursor back! diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index 7978074550..ec7e74b7a9 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -885,6 +885,7 @@ GUI: *gui-functions* getwinposx() X position of the GUI Vim window getwinposy() Y position of the GUI Vim window balloon_show() set the balloon content + balloon_split() split a message for a balloon Vim server: *server-functions* serverlist() return the list of server names @@ -900,6 +901,7 @@ Vim server: *server-functions* Window size and position: *window-size-functions* winheight() get height of a specific window winwidth() get width of a specific window + win_screenpos() get screen position of a window winrestcmd() return command to restore window sizes winsaveview() get view of current window winrestview() restore saved view of current window @@ -919,7 +921,8 @@ Testing: *test-functions* assert_false() assert that an expression is false assert_true() assert that an expression is true assert_exception() assert that a command throws an exception - assert_fails() assert that a function call fails + assert_beeps() assert that a command beeps + assert_fails() assert that a command fails Timers: *timer-functions* timer_start() create a timer diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index 9412899ea3..917419e0f5 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -381,6 +381,7 @@ N *+virtualedit* |'virtualedit'| S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200. N *+visualextra* extra Visual mode commands |blockwise-operators| N *+vreplace* |gR| and |gr| + *+vtp* on MS-Windows console: support for 'termguicolors' N *+wildignore* |'wildignore'| N *+wildmenu* |'wildmenu'| *+windows* more than one window diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 046dee95d6..a45c0be810 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -227,14 +227,15 @@ au BufNewFile,BufRead *.bl setf blank au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml " Bazel (http://bazel.io) -autocmd BufRead,BufNewFile *.bzl,WORKSPACE setf bzl +autocmd BufRead,BufNewFile *.bzl,WORKSPACE,BUILD.bazel setf bzl if has("fname_case") " There is another check for BUILD further below. - autocmd BufRead,BufNewFile BUILD setf bzl + autocmd BufRead,BufNewFile BUILD setf bzl endif " C or lpc au BufNewFile,BufRead *.c call dist#ft#FTlpc() +au BufNewFile,BufRead *.lpc,*.ulpc setf lpc " Calendar au BufNewFile,BufRead calendar setf calendar @@ -374,7 +375,7 @@ au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf au BufNewFile,BufRead configure.in,configure.ac setf config " CUDA Cumpute Unified Device Architecture -au BufNewFile,BufRead *.cu setf cuda +au BufNewFile,BufRead *.cu,*.cuh setf cuda " Dockerfile au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile @@ -1148,8 +1149,9 @@ au BufNewFile,BufRead *.pod6 setf pod6 " Also .ctp for Cake template file au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php -" Pike -au BufNewFile,BufRead *.pike,*.lpc,*.ulpc,*.pmod setf pike +" Pike and Cmod +au BufNewFile,BufRead *.pike,*.pmod setf pike +au BufNewFile,BufRead *.cmod setf cmod " Pinfo config au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo @@ -1924,6 +1926,9 @@ au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif " Most of these should call s:StarSetf() to avoid names ending in .gz and the " like are used. +" More Apache style config files +au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle') + " More Apache config files au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache') diff --git a/runtime/ftplugin/chicken.vim b/runtime/ftplugin/chicken.vim new file mode 100644 index 0000000000..8daa04c774 --- /dev/null +++ b/runtime/ftplugin/chicken.vim @@ -0,0 +1,51 @@ +" CHICKEN-specific Vim customizations +" Last Change: 2018-01-06 +" Author: Evan Hanson <evhan@foldling.org> +" Maintainer: Evan Hanson <evhan@foldling.org> +" URL: https://foldling.org/vim/ftplugin/chicken.vim +" Notes: These are supplemental settings, to be loaded after the core +" Scheme ftplugin file (ftplugin/scheme.vim). Enable it by setting +" b:is_chicken=1 and filetype=scheme. + +if !exists('b:did_scheme_ftplugin') + finish +endif + +setl keywordprg=chicken-doc + +setl lispwords+=and-let* +setl lispwords+=begin-for-syntax +setl lispwords+=compiler-typecase +setl lispwords+=condition-case +setl lispwords+=define-compiler-syntax +setl lispwords+=define-constant +setl lispwords+=define-external +setl lispwords+=define-for-syntax +setl lispwords+=define-inline +setl lispwords+=define-record +setl lispwords+=define-record-printer +setl lispwords+=define-specialization +setl lispwords+=define-syntax-rule +setl lispwords+=eval-when +setl lispwords+=fluid-let +setl lispwords+=handle-exceptions +setl lispwords+=let-compiler-syntax +setl lispwords+=let-optionals +setl lispwords+=let-optionals* +setl lispwords+=letrec-values +setl lispwords+=match +setl lispwords+=match-lambda +setl lispwords+=match-lambda* +setl lispwords+=match-let +setl lispwords+=match-let* +setl lispwords+=module +setl lispwords+=receive +setl lispwords+=select +setl lispwords+=set!-values + +let b:undo_ftplugin = b:undo_ftplugin . ' keywordprg<' + +if exists('g:loaded_matchit') && !exists('b:match_words') + let b:match_words = '#>:<#' + let b:undo_ftplugin = b:undo_ftplugin . ' | unlet! b:match_words' +endif diff --git a/runtime/ftplugin/cmake.vim b/runtime/ftplugin/cmake.vim new file mode 100644 index 0000000000..e81cd4071c --- /dev/null +++ b/runtime/ftplugin/cmake.vim @@ -0,0 +1,16 @@ +" Vim filetype plugin +" Language: CMake +" Maintainer: Keith Smiley <keithbsmiley@gmail.com> +" Last Change: 2017 Dec 24 + +" 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 b:undo_ftplugin = "setl commentstring<" + +setlocal commentstring=#\ %s diff --git a/runtime/ftplugin/debchangelog.vim b/runtime/ftplugin/debchangelog.vim index d2718db88e..32f683109d 100644 --- a/runtime/ftplugin/debchangelog.vim +++ b/runtime/ftplugin/debchangelog.vim @@ -1,11 +1,11 @@ " Vim filetype plugin file (GUI menu, folding and completion) " Language: Debian Changelog -" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> +" Maintainer: Debian Vim Maintainers " Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de> " Stefano Zacchiroli <zack@debian.org> -" Last Change: 2014-01-31 +" Last Change: 2018-01-06 " License: Vim License -" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim " Bug completion requires apt-listbugs installed for Debian packages or " python-launchpadlib installed for Ubuntu packages diff --git a/runtime/ftplugin/debcontrol.vim b/runtime/ftplugin/debcontrol.vim index 7871d9897f..9643d16c28 100644 --- a/runtime/ftplugin/debcontrol.vim +++ b/runtime/ftplugin/debcontrol.vim @@ -1,9 +1,9 @@ " Vim filetype plugin file (GUI menu and folding) " Language: Debian control files -" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> +" Maintainer: Debian Vim Maintainers " Former Maintainer: Pierre Habouzit <madcoder@debian.org> -" Last Change: 2008-03-08 -" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/ftplugin/debcontrol.vim +" Last Change: 2018-01-06 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim " Do these settings once per buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/nsis.vim b/runtime/ftplugin/nsis.vim index 949691bf6e..1a35127c86 100644 --- a/runtime/ftplugin/nsis.vim +++ b/runtime/ftplugin/nsis.vim @@ -1,22 +1,43 @@ " Vim ftplugin file -" Language: NSIS script -" Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2008-07-09 - -let s:cpo_save = &cpo -set cpo&vim +" Language: NSIS script +" Maintainer: Ken Takata +" URL: https://github.com/k-takata/vim-nsis +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Last Change: 2018-01-26 if exists("b:did_ftplugin") finish endif + +let s:cpo_save = &cpo +set cpo&vim + let b:did_ftplugin = 1 let b:undo_ftplugin = "setl com< cms< fo< def< inc<" + \ " | unlet! b:match_ignorecase b:match_words" setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s setlocal formatoptions-=t formatoptions+=croql setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\= setlocal include=^\\s*!include\\%(/NONFATAL\\)\\= +if exists("loaded_matchit") + let b:match_ignorecase = 1 + let b:match_words = + \ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' . + \ '\${Select}:\${EndSelect},' . + \ '\${Switch}:\${EndSwitch},' . + \ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' . + \ '\${\%(For\|ForEach\)}:\${Next},' . + \ '\<Function\>:\<FunctionEnd\>,' . + \ '\<Section\>:\<SectionEnd\>,' . + \ '\<SectionGroup\>:\<SectionGroupEnd\>,' . + \ '\<PageEx\>:\<PageExEnd\>,' . + \ '\${MementoSection}:\${MementoSectionEnd},' . + \ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' . + \ '!macro\>:!macroend\>' +endif + let &cpo = s:cpo_save unlet s:cpo_save diff --git a/runtime/ftplugin/python.vim b/runtime/ftplugin/python.vim index 54926418de..56f19cb323 100644 --- a/runtime/ftplugin/python.vim +++ b/runtime/ftplugin/python.vim @@ -3,7 +3,7 @@ " Maintainer: Tom Picton <tom@tompicton.co.uk> " Previous Maintainer: James Sully <sullyj3@gmail.com> " Previous Maintainer: Johannes Zellner <johannes@zellner.org> -" Last Change: Thur, 09 November 2017 +" Last Change: Wed, 20 December 2017 " https://github.com/tpict/vim-ftplugin-python if exists("b:did_ftplugin") | finish | endif @@ -20,6 +20,9 @@ setlocal comments=b:#,fb:- setlocal commentstring=#\ %s setlocal omnifunc=pythoncomplete#Complete +if has('python3') + setlocal omnifunc=python3complete#Complete +endif set wildignore+=*.pyc diff --git a/runtime/ftplugin/scheme.vim b/runtime/ftplugin/scheme.vim index ab1543a5ee..b7f8e8bbe7 100644 --- a/runtime/ftplugin/scheme.vim +++ b/runtime/ftplugin/scheme.vim @@ -1,45 +1,62 @@ -" Vim filetype plugin -" Language: Scheme -" Maintainer: Sergey Khorev <sergey.khorev@gmail.com> -" URL: http://sites.google.com/site/khorser/opensource/vim -" Original author: Dorai Sitaram <ds26@gte.com> -" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html -" Last Change: Oct 23, 2013 - -" Only do this when not done yet for this buffer -if exists("b:did_ftplugin") +" Vim filetype plugin file +" Language: Scheme (R7RS) +" Last Change: 2018-01-20 +" Author: Evan Hanson <evhan@foldling.org> +" Maintainer: Evan Hanson <evhan@foldling.org> +" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com> +" URL: https://foldling.org/vim/ftplugin/scheme.vim + +if exists('b:did_ftplugin') finish endif -" Don't load another plugin for this buffer -let b:did_ftplugin = 1 +let s:cpo = &cpo +set cpo&vim -" Copy-paste from ftplugin/lisp.vim -setl comments=:; -setl define=^\\s*(def\\k* -setl formatoptions-=t -setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94 setl lisp +setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,ex:\|# setl commentstring=;%s +setl define=^\\s*(def\\k* +setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126 -setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|# +let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<' -" Scheme-specific settings -if exists("b:is_mzscheme") || exists("is_mzscheme") - " improve indenting - setl iskeyword+=#,%,^ - setl lispwords+=module,parameterize,let-values,let*-values,letrec-values - setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case - setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig -endif +setl lispwords=begin +setl lispwords+=case +setl lispwords+=case-lambda +setl lispwords+=cond +setl lispwords+=cond-expand +setl lispwords+=define +setl lispwords+=define-record-type +setl lispwords+=define-syntax +setl lispwords+=define-values +setl lispwords+=do +setl lispwords+=guard +setl lispwords+=import +setl lispwords+=lambda +setl lispwords+=let +setl lispwords+=let* +setl lispwords+=let*-values +setl lispwords+=let-syntax +setl lispwords+=let-values +setl lispwords+=letrec +setl lispwords+=letrec* +setl lispwords+=letrec-syntax +setl lispwords+=parameterize +setl lispwords+=set! +setl lispwords+=syntax-rules +setl lispwords+=unless +setl lispwords+=when + +let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<' -if exists("b:is_chicken") || exists("is_chicken") - " improve indenting - setl iskeyword+=#,%,^ - setl lispwords+=let-optionals,let-optionals*,declare - setl lispwords+=let-values,let*-values,letrec-values - setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case - setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda* +let b:did_scheme_ftplugin = 1 + +if exists('b:is_chicken') || exists('g:is_chicken') + exe 'ru! ftplugin/chicken.vim' endif -let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<" +unlet b:did_scheme_ftplugin +let b:did_ftplugin = 1 +let &cpo = s:cpo +unlet s:cpo diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim index f34655f330..59ea349710 100644 --- a/runtime/ftplugin/vim.vim +++ b/runtime/ftplugin/vim.vim @@ -1,7 +1,7 @@ " Vim filetype plugin " Language: Vim " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2017 Nov 06 +" Last Change: 2017 Dec 05 " Only do this when not done yet for this buffer if exists("b:did_ftplugin") @@ -42,21 +42,23 @@ setlocal commentstring=\"%s " Prefer Vim help instead of manpages. setlocal keywordprg=:help -" Move around functions. -nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR> -vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR> -nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR> -vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR> -nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR> -vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR> -nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR> -vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR> - -" Move around comments -nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> -vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> -nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> -vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> +if !exists("no_plugin_maps") && !exists("no_vim_maps") + " Move around functions. + nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR> + vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR> + nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR> + vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR> + nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR> + vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR> + nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR> + vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR> + + " Move around comments + nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> + vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> + nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> + vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> +endif " Let the matchit plugin know what items can be matched. if exists("loaded_matchit") diff --git a/runtime/ftplugin/zimbu.vim b/runtime/ftplugin/zimbu.vim index 558aea7df0..24674776cb 100644 --- a/runtime/ftplugin/zimbu.vim +++ b/runtime/ftplugin/zimbu.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: Zimbu " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2012 Sep 08 +" Last Change: 2017 Dec 05 " Only do this when not done yet for this buffer if exists("b:did_ftplugin") @@ -135,8 +135,10 @@ iabbr <buffer> <expr> until GCUpperSpace("until") iabbr <buffer> <expr> while GCUpperSpace("while") iabbr <buffer> <expr> repeat GCUpper("repeat") -nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR> -nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR> +if !exists("no_plugin_maps") && !exists("no_zimbu_maps") + nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR> + nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR> +endif " Using a function makes sure the search pattern is restored func! ZimbuGoStartBlock() diff --git a/runtime/indent/javascript.vim b/runtime/indent/javascript.vim index 2861716287..f3bf96aa97 100644 --- a/runtime/indent/javascript.vim +++ b/runtime/indent/javascript.vim @@ -2,7 +2,7 @@ " Language: Javascript " Maintainer: Chris Paul ( https://github.com/bounceme ) " URL: https://github.com/pangloss/vim-javascript -" Last Change: September 18, 2017 +" Last Change: December 4, 2017 " Only load this indent file when no other was loaded. if exists('b:did_indent') @@ -10,10 +10,6 @@ if exists('b:did_indent') endif let b:did_indent = 1 -" indent correctly if inside <script> -" vim/vim@690afe1 for the switch from cindent -let b:html_indent_script1 = 'inc' - " Now, set up our indentation expression and keys that trigger it. setlocal indentexpr=GetJavascriptIndent() setlocal autoindent nolisp nosmartindent @@ -25,13 +21,6 @@ setlocal indentkeys+=0],0) let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<' -" Regex of syntax group names that are or delimit string or are comments. -let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!') -let b:syng_str = get(b:,'syng_str','string\|template\|special') -" template strings may want to be excluded when editing graphql: -" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special' -" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc' - " Only define the function once. if exists('*GetJavascriptIndent') finish @@ -40,6 +29,23 @@ endif let s:cpo_save = &cpo set cpo&vim +" indent correctly if inside <script> +" vim/vim@690afe1 for the switch from cindent +" overridden with b:html_indent_script1 +call extend(g:,{'html_indent_script1': 'inc'},'keep') + +" Regex of syntax group names that are or delimit string or are comments. +let s:bvars = { + \ 'syng_strcom': 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!', + \ 'syng_str': 'string\|template\|special' } +" template strings may want to be excluded when editing graphql: +" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special' +" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc' + +function s:GetVars() + call extend(b:,extend(s:bvars,{'js_cache': [0,0,0]}),'keep') +endfunction + " Get shiftwidth value if exists('*shiftwidth') function s:sw() @@ -104,21 +110,22 @@ endfunction function s:SkipFunc() if s:top_col == 1 throw 'out of bounds' - endif - let s:top_col = 0 - if s:check_in + elseif s:check_in if eval(s:skip_expr) return 1 endif let s:check_in = 0 elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$' if eval(s:skip_expr) - let s:looksyn = a:firstline return 1 endif - elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr) - let s:check_in = 1 - return 1 + elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) + if eval(s:skip_expr) + let s:check_in = 1 + return 1 + endif + else + let s:synid_cache[:] += [[line2byte('.') + col('.') - 1], ['']] endif let [s:looksyn, s:top_col] = getpos('.')[1:2] endfunction @@ -159,19 +166,29 @@ function s:Token() return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt() endfunction -function s:PreviousToken() - let l:col = col('.') +function s:PreviousToken(...) + let [l:pos, tok] = [getpos('.'), ''] if search('\m\k\{1,}\|\S','ebW') - if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm) - if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm) - return s:Token() + if getline('.')[col('.')-2:col('.')-1] == '*/' + if eval(s:in_comm) && !s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm) + call setpos('.',l:pos) + else + let tok = s:Token() endif - call cursor(a:firstline, l:col) else - return s:Token() + let two = a:0 || line('.') != l:pos[1] ? strridx(getline('.')[:col('.')],'//') + 1 : 0 + if two && eval(s:in_comm) + call cursor(0,two) + let tok = s:PreviousToken(1) + if tok is '' + call setpos('.',l:pos) + endif + else + let tok = s:Token() + endif endif endif - return '' + return tok endfunction function s:Pure(f,...) @@ -183,23 +200,30 @@ function s:SearchLoop(pat,flags,expr) endfunction function s:ExprCol() + if getline('.')[col('.')-2] == ':' + return 1 + endif let bal = 0 - while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr) + while s:SearchLoop('[{}?:]','bW',s:skip_expr) if s:LookingAt() == ':' + if getline('.')[col('.')-2] == ':' + call cursor(0,col('.')-1) + continue + endif let bal -= 1 elseif s:LookingAt() == '?' - let bal += 1 - if bal == 1 - break + if getline('.')[col('.'):col('.')+1] =~ '^\.\d\@!' + continue + elseif !bal + return 1 endif + let bal += 1 elseif s:LookingAt() == '{' - let bal = !s:IsBlock() - break + return !s:IsBlock() elseif !s:GetPair('{','}','bW',s:skip_expr) break endif endwhile - return s:Nat(bal) endfunction " configurable regexes that define continuation lines, not including (, {, or [. @@ -208,30 +232,29 @@ let s:opfirst = '^' . get(g:,'javascript_opfirst', let s:continuation = get(g:,'javascript_continuation', \ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$' -function s:Continues(ln,con) - let tok = matchstr(a:con[-15:],s:continuation) +function s:Continues() + let tok = matchstr(strpart(getline('.'),col('.')-15,15),s:continuation) if tok =~ '[a-z:]' - call cursor(a:ln, len(a:con)) return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.' elseif tok !~ '[/>]' return tok isnot '' endif - return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex') + return s:SynAt(line('.'),col('.')) !~? (tok == '>' ? 'jsflow\|^html' : 'regex') endfunction " Check if line 'lnum' has a balanced amount of parentheses. -function s:Balanced(lnum) - let [l:open, l:line] = [0, getline(a:lnum)] - let pos = match(l:line, '[][(){}]') +function s:Balanced(lnum,line) + let l:open = 0 + let pos = match(a:line, '[][(){}]') while pos != -1 if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom - let l:open += match(' ' . l:line[pos],'[[({]') + let l:open += match(' ' . a:line[pos],'[[({]') if l:open < 0 return endif endif - let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ? - \ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1) + let pos = match(a:line, !l:open ? '[][(){}]' : '()' =~ a:line[pos] ? + \ '[()]' : '{}' =~ a:line[pos] ? '[{}]' : '[][]', pos + 1) endwhile return !l:open endfunction @@ -244,27 +267,38 @@ function s:OneScope() \ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile()) elseif s:Token() =~# '^else$\|^do$' return s:Pure('s:PreviousToken') != '.' + elseif strpart(getline('.'),col('.')-2,2) == '=>' + call cursor(0,col('.')-1) + if s:PreviousToken() == ')' + return s:GetPair('(', ')', 'bW', s:skip_expr) + endif + return 1 endif - return strpart(getline('.'),col('.')-2,2) == '=>' endfunction function s:DoWhile() let cpos = searchpos('\m\<','cbW') - if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr) - if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ? - \ 'Previous' : ''}Token() ==# 'do' && s:IsBlock() - return 1 + while s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr) + if s:LookingAt() =~ '\a' + if s:Pure('s:IsBlock') + if s:LookingAt() ==# 'd' + return 1 + endif + break + endif + elseif s:LookingAt() != '}' || !s:GetPair('{','}','bW',s:skip_expr) + break endif - call call('cursor',cpos) - endif + endwhile + call call('cursor',cpos) endfunction " returns total offset from braceless contexts. 'num' is the lineNr which " encloses the entire context, 'cont' if whether a:firstline is a continued " expression, which could have started in a braceless context -function s:IsContOne(num,cont) - let [l:num, b_l] = [a:num + !a:num, 0] - let pind = a:num ? indent(a:num) + s:sw() : 0 +function s:IsContOne(cont) + let [l:num, b_l] = [b:js_cache[1] + !b:js_cache[1], 0] + let pind = b:js_cache[1] ? indent(b:js_cache[1]) + s:sw() : 0 let ind = indent('.') + !a:cont while line('.') > l:num && ind > pind || line('.') == l:num if indent('.') < ind && s:OneScope() @@ -282,20 +316,16 @@ function s:IsContOne(num,cont) return b_l endfunction -function s:Class() - return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') && - \ s:PreviousToken() != '.' -endfunction - function s:IsSwitch() - return s:PreviousToken() !~ '[.*]' && - \ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class()) + call call('cursor',b:js_cache[1:]) + return search('\m\C\%#.\_s*\%(\%(\/\/.*\_$\|\/\*\_.\{-}\*\/\)\@>\_s*\)*\%(case\|default\)\>','nWc'.s:z) endfunction " https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader function s:IsBlock() let tok = s:PreviousToken() if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx' + let s:in_jsx = 1 return tok != '{' elseif tok =~ '\k' if tok ==# 'type' @@ -320,7 +350,7 @@ function s:IsBlock() endfunction function GetJavascriptIndent() - let b:js_cache = get(b:,'js_cache',[0,0,0]) + call s:GetVars() let s:synid_cache = [[],[]] let l:line = getline(v:lnum) " use synstack as it validates syn state and works in an empty line @@ -334,7 +364,7 @@ function GetJavascriptIndent() return -1 endif elseif s:stack[-1] =~? b:syng_str - if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1) + if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1,getline(v:lnum-1)) let b:js_cache[0] = v:lnum endif return -1 @@ -361,7 +391,7 @@ function GetJavascriptIndent() call cursor(v:lnum,1) let idx = index([']',')','}'],l:line[0]) if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum || - \ b:js_cache[0] == l:lnum && s:Balanced(l:lnum) + \ b:js_cache[0] == l:lnum && s:Balanced(l:lnum,pline) call call('cursor',b:js_cache[1:]) else let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0, @@ -382,10 +412,10 @@ function GetJavascriptIndent() let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]] - let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0] + let [num_ind, is_op, b_l, l:switch_offset, s:in_jsx] = [s:Nat(indent(num)),0,0,0,0] if !num || s:LookingAt() == '{' && s:IsBlock() let ilnum = line('.') - if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr) + if num && !s:in_jsx && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr) if ilnum == num let [num, num_ind] = [line('.'), indent('.')] endif @@ -399,23 +429,24 @@ function GetJavascriptIndent() endif endif if idx == -1 && pline[-1:] !~ '[{;]' + call cursor(l:lnum, len(pline)) let sol = matchstr(l:line,s:opfirst) if sol is '' || sol == '/' && s:SynAt(v:lnum, \ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex' - if s:Continues(l:lnum,pline) + if s:Continues() let is_op = s:sw() endif - elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$' - call call('cursor',b:js_cache[1:]) - if s:PreviousToken() =~ '\k' && s:Class() - return num_ind + s:sw() - endif - let is_op = s:sw() + elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$' && + \ s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) && + \ s:PreviousToken() == ')' && s:GetPair('(',')','bW',s:skip_expr) && + \ (s:PreviousToken() == ']' || s:LookingAt() =~ '\k' && + \ s:{s:PreviousToken() == '*' ? 'Previous' : ''}Token() !=# 'function') + return num_ind + s:sw() else let is_op = s:sw() endif call cursor(l:lnum, len(pline)) - let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw() + let b_l = s:Nat(s:IsContOne(is_op) - (!is_op && l:line =~ '^{')) * s:sw() endif elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U')) let pval = s:ParseCino('(') @@ -431,10 +462,10 @@ function GetJavascriptIndent() " main return if l:line =~ '^[])}]\|^|}' - if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '(' + if l:line_raw[0] == ')' if s:ParseCino('M') return indent(l:lnum) - elseif &cino =~# 'm' && !s:ParseCino('m') + elseif num && &cino =~# 'm' && !s:ParseCino('m') return virtcol('.') - 1 endif endif diff --git a/runtime/indent/nsis.vim b/runtime/indent/nsis.vim new file mode 100644 index 0000000000..223f4fa28e --- /dev/null +++ b/runtime/indent/nsis.vim @@ -0,0 +1,91 @@ +" Vim indent file +" Language: NSIS script +" Maintainer: Ken Takata +" URL: https://github.com/k-takata/vim-nsis +" Last Change: 2018-01-21 +" Filenames: *.nsi +" License: VIM License + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal nosmartindent +setlocal noautoindent +setlocal indentexpr=GetNsisIndent(v:lnum) +setlocal indentkeys=!^F,o,O +setlocal indentkeys+==~${Else,=~${EndIf,=~${EndUnless,=~${AndIf,=~${AndUnless,=~${OrIf,=~${OrUnless,=~${Case,=~${Default,=~${EndSelect,=~${EndSwith,=~${Loop,=~${Next,=~${MementoSectionEnd,=~FunctionEnd,=~SectionEnd,=~SectionGroupEnd,=~PageExEnd,0=~!macroend,0=~!if,0=~!else,0=~!endif + +if exists("*GetNsisIndent") + finish +endif + +function! GetNsisIndent(lnum) + " If this line is explicitly joined: If the previous line was also joined, + " line it up with that one, otherwise add two 'shiftwidth' + if getline(a:lnum - 1) =~ '\\$' + if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$' + return indent(a:lnum - 1) + endif + return indent(a:lnum - 1) + shiftwidth() * 2 + endif + + " Grab the current line, stripping comments. + let l:thisl = substitute(getline(a:lnum), '[;#].*$', '', '') + " Check if this line is a conditional preprocessor line. + let l:preproc = l:thisl =~? '^\s*!\%(if\|else\|endif\)' + + " Grab the previous line, stripping comments. + " Skip preprocessor lines and continued lines. + let l:prevlnum = a:lnum + while 1 + let l:prevlnum = prevnonblank(l:prevlnum - 1) + if l:prevlnum == 0 + " top of file + return 0 + endif + let l:prevl = substitute(getline(l:prevlnum), '[;#].*$', '', '') + let l:prevpreproc = l:prevl =~? '^\s*!\%(if\|else\|endif\)' + if l:preproc == l:prevpreproc && getline(l:prevlnum - 1) !~? '\\$' + break + endif + endwhile + let l:previ = indent(l:prevlnum) + let l:ind = l:previ + + if l:preproc + " conditional preprocessor + if l:prevl =~? '^\s*!\%(if\%(\%(macro\)\?n\?def\)\?\|else\)\>' + let l:ind += shiftwidth() + endif + if l:thisl =~? '^\s*!\%(else\|endif\)\?\>' + let l:ind -= shiftwidth() + endif + return l:ind + endif + + if l:prevl =~? '^\s*\%(\${\%(If\|IfNot\|Unless\|ElseIf\|ElseIfNot\|ElseUnless\|Else\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Select\|Case\|Case[2-5]\|CaseElse\|Default\|Switch\|Do\|DoWhile\|DoUntil\|For\|ForEach\|MementoSection\)}\|Function\>\|Section\>\|SectionGroup\|PageEx\>\|!macro\>\)' + " previous line opened a block + let l:ind += shiftwidth() + endif + if l:thisl =~? '^\s*\%(\${\%(ElseIf\|ElseIfNot\|ElseUnless\|Else\|EndIf\|EndUnless\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Loop\|LoopWhile\|LoopUntil\|Next\|MementoSectionEnd\)\>}\?\|FunctionEnd\>\|SectionEnd\>\|SectionGroupEnd\|PageExEnd\>\|!macroend\>\)' + " this line closed a block + let l:ind -= shiftwidth() + elseif l:thisl =~? '^\s*\${\%(Case\|Case[2-5]\|CaseElse\|Default\)\>}\?' + if l:prevl !~? '^\s*\${\%(Select\|Switch\)}' + let l:ind -= shiftwidth() + endif + elseif l:thisl =~? '^\s*\${\%(EndSelect\|EndSwitch\)\>}\?' + " this line closed a block + if l:prevl =~? '^\s*\${\%(Select\|Switch\)}' + let l:ind -= shiftwidth() + else + let l:ind -= shiftwidth() * 2 + endif + endif + + return l:ind +endfunction + +" vim: ts=8 sw=2 sts=2 diff --git a/runtime/indent/scheme.vim b/runtime/indent/scheme.vim index a16f4f9ea1..496da3267d 100644 --- a/runtime/indent/scheme.vim +++ b/runtime/indent/scheme.vim @@ -1,11 +1,14 @@ " Vim indent file -" Language: Scheme -" Maintainer: Sergey Khorev <sergey.khorev@gmail.com> -" Last Change: 2005 Jun 24 +" Language: Scheme +" Last Change: 2018 Jan 31 +" Maintainer: Evan Hanson <evhan@foldling.org> +" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com> +" URL: https://foldling.org/vim/indent/scheme.vim " Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif +" Use the Lisp indenting runtime! indent/lisp.vim diff --git a/runtime/keymap/oldturkic-orkhon_utf-8.vim b/runtime/keymap/oldturkic-orkhon_utf-8.vim new file mode 100644 index 0000000000..e1f0015a2a --- /dev/null +++ b/runtime/keymap/oldturkic-orkhon_utf-8.vim @@ -0,0 +1,143 @@ +" Maintainer: Oliver Corff <oliver.corff@email.de> +" Last Changed: 2018 Feb 12 + +scriptencoding utf-8 + +" oto = Old Turkic, Orkhon +let b:keymap_name = "oto" +highlight lCursor guibg=red guifg=NONE + +" map F8 to toggle keymap (Ctrl-^ not present on keyboard) +noremap <F8> :let &iminsert = ! &iminsert<CR> +lnoremap <F8> <C-^> +noremap! <F8> <C-^> + +loadkeymap +A 𐰀 10C00 OLD TURKIC LETTER ORKHON A +00 𐰀 10C00 OLD TURKIC LETTER ORKHON A +I 𐰃 10C03 OLD TURKIC LETTER ORKHON I +03 𐰃 10C03 OLD TURKIC LETTER ORKHON I +O 𐰆 10C06 OLD TURKIC LETTER ORKHON O +U 𐰆 10C06 OLD TURKIC LETTER ORKHON O +06 𐰆 10C06 OLD TURKIC LETTER ORKHON O +OE 𐰇 10C07 OLD TURKIC LETTER ORKHON OE +UE 𐰇 10C07 OLD TURKIC LETTER ORKHON OE +07 𐰇 10C07 OLD TURKIC LETTER ORKHON OE +ab 𐰉 10C09 OLD TURKIC LETTER ORKHON AB +b1 𐰉 10C09 OLD TURKIC LETTER ORKHON AB +09 𐰉 10C09 OLD TURKIC LETTER ORKHON AB +aeb 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB +eb 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB +b2 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB +0b 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB +ag 𐰍 10C0D OLD TURKIC LETTER ORKHON AG +g1 𐰍 10C0D OLD TURKIC LETTER ORKHON AG +0d 𐰍 10C0D OLD TURKIC LETTER ORKHON AG +aeg 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG +eg 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG +g2 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG +0f 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG +ad 𐰑 10C11 OLD TURKIC LETTER ORKHON AD +d1 𐰑 10C11 OLD TURKIC LETTER ORKHON AD +11 𐰑 10C11 OLD TURKIC LETTER ORKHON AD +aed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED +ed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED +d2 𐰓 10C13 OLD TURKIC LETTER ORKHON AED +13 𐰓 10C13 OLD TURKIC LETTER ORKHON AED +ez 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ +z 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ +14 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ +ay 𐰖 10C16 OLD TURKIC LETTER ORKHON AY +y1 𐰖 10C16 OLD TURKIC LETTER ORKHON AY +16 𐰖 10C16 OLD TURKIC LETTER ORKHON AY +aey 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY +ey 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY +y2 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY +18 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY +aek 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK +k 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK +1a 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK +oek 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK +q 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK +1c 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK +al 𐰞 10C1E OLD TURKIC LETTER ORKHON AL +l1 𐰞 10C1E OLD TURKIC LETTER ORKHON AL +1e 𐰞 10C1E OLD TURKIC LETTER ORKHON AL +ael 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL +el 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL +l2 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL +20 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL +elt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT +lt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT +21 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT +em 𐰢 10C22 OLD TURKIC LETTER ORKHON EM +m 𐰢 10C22 OLD TURKIC LETTER ORKHON EM +22 𐰢 10C22 OLD TURKIC LETTER ORKHON EM +an 𐰣 10C23 OLD TURKIC LETTER ORKHON AN +n1 𐰣 10C23 OLD TURKIC LETTER ORKHON AN +23 𐰣 10C23 OLD TURKIC LETTER ORKHON AN +en 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN +n2 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN +24 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN +ent 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT +nt 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT +26 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT +enc 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC +nc 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC +28 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC +eny 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY +ny 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY +2a 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY +eng 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG +ng 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG +2d 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG +ep 𐰯 10C2F OLD TURKIC LETTER ORKHON EP +p 𐰯 10C2F OLD TURKIC LETTER ORKHON EP +2f 𐰯 10C2F OLD TURKIC LETTER ORKHON EP +op 𐰰 10C30 OLD TURKIC LETTER ORKHON OP +up 𐰰 10C30 OLD TURKIC LETTER ORKHON OP +30 𐰰 10C30 OLD TURKIC LETTER ORKHON OP +ic 𐰱 10C31 OLD TURKIC LETTER ORKHON IC +31 𐰱 10C31 OLD TURKIC LETTER ORKHON IC +ec 𐰲 10C32 OLD TURKIC LETTER ORKHON EC +32 𐰲 10C32 OLD TURKIC LETTER ORKHON EC +aq 𐰴 10C34 OLD TURKIC LETTER ORKHON AQ +34 𐰴 10C34 OLD TURKIC LETTER ORKHON AQ +iq 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ +yq 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ +36 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ +oq 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ +uq 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ +38 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ +ar 𐰺 10C3A OLD TURKIC LETTER ORKHON AR +r1 𐰺 10C3A OLD TURKIC LETTER ORKHON AR +3a 𐰺 10C3A OLD TURKIC LETTER ORKHON AR +aer 𐰼 10C3C OLD TURKIC LETTER ORKHON AER +er 𐰼 10C3C OLD TURKIC LETTER ORKHON AER +r2 𐰼 10C3C OLD TURKIC LETTER ORKHON AER +3c 𐰼 10C3C OLD TURKIC LETTER ORKHON AER +as 𐰽 10C3D OLD TURKIC LETTER ORKHON AS +s1 𐰽 10C3D OLD TURKIC LETTER ORKHON AS +3d 𐰽 10C3D OLD TURKIC LETTER ORKHON AS +aes 𐰾 10C3E OLD TURKIC LETTER ORKHON AES +es 𐰾 10C3E OLD TURKIC LETTER ORKHON AES +s2 𐰾 10C3E OLD TURKIC LETTER ORKHON AES +3e 𐰾 10C3E OLD TURKIC LETTER ORKHON AES +ash 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH +sh1 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH +3f 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH +esh 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH +sh2 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH +41 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH +at 𐱃 10C43 OLD TURKIC LETTER ORKHON AT +t1 𐱃 10C43 OLD TURKIC LETTER ORKHON AT +43 𐱃 10C43 OLD TURKIC LETTER ORKHON AT +aet 𐱅 10C45 OLD TURKIC LETTER ORKHON AET +et 𐱅 10C45 OLD TURKIC LETTER ORKHON AET +t2 𐱅 10C45 OLD TURKIC LETTER ORKHON AET +45 𐱅 10C45 OLD TURKIC LETTER ORKHON AET +ot 𐱇 10C47 OLD TURKIC LETTER ORKHON OT +ut 𐱇 10C47 OLD TURKIC LETTER ORKHON OT +47 𐱇 10C47 OLD TURKIC LETTER ORKHON OT +bash 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH +48 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH diff --git a/runtime/keymap/oldturkic-yenisei_utf-8.vim b/runtime/keymap/oldturkic-yenisei_utf-8.vim new file mode 100644 index 0000000000..f939f0a405 --- /dev/null +++ b/runtime/keymap/oldturkic-yenisei_utf-8.vim @@ -0,0 +1,115 @@ +" Maintainer: Oliver Corff <oliver.corff@yemail.de> +" Last Changed: 2018 Feb 12 + +" All characters are given literally, conversion to another encoding (e.g., +" UTF-8) should work. +scriptencoding utf-8 + +let b:keymap_name = "oto" +highlight lCursor guibg=red guifg=NONE + +" map F8 to toggle keymap (Ctrl-^ not present on keyboard) +noremap <F8> :let &iminsert = ! &iminsert<CR> +lnoremap <F8> <C-^> +noremap! <F8> <C-^> + +loadkeymap +A 𐰁 10C01 OLD TURKIC LETTER YENISEI A +01 𐰁 10C01 OLD TURKIC LETTER YENISEI A +AE 𐰂 10C02 OLD TURKIC LETTER YENISEI AE +02 𐰂 10C02 OLD TURKIC LETTER YENISEI AE +I 𐰄 10C04 OLD TURKIC LETTER YENISEI I +04 𐰄 10C04 OLD TURKIC LETTER YENISEI I +E 𐰅 10C05 OLD TURKIC LETTER YENISEI E +05 𐰅 10C05 OLD TURKIC LETTER YENISEI E +OE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE +UE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE +08 𐰈 10C08 OLD TURKIC LETTER YENISEI OE +ab 𐰊 10C0A OLD TURKIC LETTER YENISEI AB +b1 𐰊 10C0A OLD TURKIC LETTER YENISEI AB +0a 𐰊 10C0A OLD TURKIC LETTER YENISEI AB +aeb 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB +eb 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB +b2 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB +0c 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB +ag 𐰎 10C0E OLD TURKIC LETTER YENISEI AG +g1 𐰎 10C0E OLD TURKIC LETTER YENISEI AG +0e 𐰎 10C0E OLD TURKIC LETTER YENISEI AG +aeg 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG +eg 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG +g2 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG +10 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG +ad 𐰒 10C12 OLD TURKIC LETTER YENISEI AD +d1 𐰒 10C12 OLD TURKIC LETTER YENISEI AD +12 𐰒 10C12 OLD TURKIC LETTER YENISEI AD +ez 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ +z 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ +15 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ +ay 𐰗 10C17 OLD TURKIC LETTER YENISEI AY +y1 𐰗 10C17 OLD TURKIC LETTER YENISEI AY +17 𐰗 10C17 OLD TURKIC LETTER YENISEI AY +aey 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY +ey 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY +y2 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY +19 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY +aek 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK +ak 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK +k 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK +1b 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK +oek 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK +ök 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK +uek 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK +ük 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK +1d 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK +al 𐰟 10C1F OLD TURKIC LETTER YENISEI AL +l 𐰟 10C1F OLD TURKIC LETTER YENISEI AL +l1 𐰟 10C1F OLD TURKIC LETTER YENISEI AL +1f 𐰟 10C1F OLD TURKIC LETTER YENISEI AL +aen 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN +en 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN +n2 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN +25 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN +ent 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT +nt 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT +27 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT +enc 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC +nc 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC +29 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC +eny 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY +ny 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY +2b 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY +ang 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG +ng 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG +2c 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG +aeng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG +eng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG +2e 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG +ec 𐰳 10C33 OLD TURKIC LETTER YENISEI EC +c 𐰳 10C33 OLD TURKIC LETTER YENISEI EC +33 𐰳 10C33 OLD TURKIC LETTER YENISEI EC +aq 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ +q 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ +35 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ +iq 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ +yq 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ +37 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ +oq 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ +uq 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ +39 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ +ar 𐰻 10C3B OLD TURKIC LETTER YENISEI AR +r 𐰻 10C3B OLD TURKIC LETTER YENISEI AR +r1 𐰻 10C3B OLD TURKIC LETTER YENISEI AR +3b 𐰻 10C3B OLD TURKIC LETTER YENISEI AR +ash 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH +sh1 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH +40 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH +esh 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH +sh2 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH +42 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH +at 𐱄 10C44 OLD TURKIC LETTER YENISEI AT +t1 𐱄 10C44 OLD TURKIC LETTER YENISEI AT +44 𐱄 10C44 OLD TURKIC LETTER YENISEI AT +aet 𐱆 10C46 OLD TURKIC LETTER YENISEI AET +et 𐱆 10C46 OLD TURKIC LETTER YENISEI AET +t2 𐱆 10C46 OLD TURKIC LETTER YENISEI AET +46 𐱆 10C46 OLD TURKIC LETTER YENISEI AET diff --git a/runtime/optwin.vim b/runtime/optwin.vim index 0c9f0ed45e..b1d303009a 100644 --- a/runtime/optwin.vim +++ b/runtime/optwin.vim @@ -614,11 +614,17 @@ if has("gui") endif call append("$", "linespace\tnumber of pixel lines to use between characters") call append("$", " \tset lsp=" . &lsp) - if has("balloon_eval") + if has("balloon_eval") || has("balloon_eval_term") call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up") call append("$", " \tset bdlay=" . &bdlay) - call append("$", "ballooneval\twhether the balloon evaluation is to be used") - call <SID>BinOptionG("beval", &beval) + if has("balloon_eval") + call append("$", "ballooneval\tuse balloon evaluation in the GUI") + call <SID>BinOptionG("beval", &beval) + endif + if has("balloon_eval_term") + call append("$", "balloonevalterm\tuse balloon evaluation in the terminal") + call <SID>BinOptionG("bevalterm", &beval) + endif if has("eval") call append("$", "balloonexpr\texpression to show in balloon eval") call append("$", " \tset bexpr=" . &bexpr) @@ -759,6 +765,8 @@ if has("insert_expand") call <SID>OptionG("cot", &cot) call append("$", "pumheight\tmaximum height of the popup menu") call <SID>OptionG("ph", &ph) + call append("$", "pumwidth\tminimum width of the popup menu") + call <SID>OptionG("pw", &pw) call append("$", "completefunc\tuser defined function for Insert mode completion") call append("$", "\t(local to buffer)") call <SID>OptionL("cfu") diff --git a/runtime/syntax/apachestyle.vim b/runtime/syntax/apachestyle.vim index 3695a11421..bd5c89d30f 100644 --- a/runtime/syntax/apachestyle.vim +++ b/runtime/syntax/apachestyle.vim @@ -1,8 +1,10 @@ " Vim syntax file " Language: Apache-Style configuration files (proftpd.conf/apache.conf/..) -" Maintainer: Christian Hammers <ch@westend.com> -" URL: none +" Maintainer: Ben RUBSON <ben.rubson@gmail.com> +" Former Maintainer: Christian Hammers <ch@westend.com> " ChangeLog: +" 2017-12-17,ch +" correctly detect comments " 2001-05-04,ch " adopted Vim 6.0 syntax style " 1999-10-28,ch @@ -27,8 +29,8 @@ endif syn case ignore -syn match apComment /^\s*#.*$/ syn match apOption /^\s*[^ \t#<=]*/ +syn match apComment /^\s*#.*$/ "syn match apLastValue /[^ \t<=#]*$/ contains=apComment ugly " tags diff --git a/runtime/syntax/autodoc.vim b/runtime/syntax/autodoc.vim new file mode 100644 index 0000000000..67a627e46c --- /dev/null +++ b/runtime/syntax/autodoc.vim @@ -0,0 +1,101 @@ +" Vim syntax file +" Language: Autodoc +" Maintainer: Stephen R. van den Berg <srb@cuci.nl> +" Last Change: 2018 Jan 23 +" Version: 2.9 +" Remark: Included by pike.vim, cmod.vim and optionally c.vim +" Remark: In order to make c.vim use it, set: c_autodoc + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case match + +" A bunch of useful autodoc keywords +syn keyword autodocStatement contained appears belongs global +syn keyword autodocStatement contained decl directive inherit +syn keyword autodocStatement contained deprecated obsolete bugs +syn keyword autodocStatement contained copyright example fixme note param returns +syn keyword autodocStatement contained seealso thanks throws constant +syn keyword autodocStatement contained member index elem +syn keyword autodocStatement contained value type item + +syn keyword autodocRegion contained enum mapping code multiset array +syn keyword autodocRegion contained int string section mixed ol ul dl +syn keyword autodocRegion contained class module namespace +syn keyword autodocRegion contained endenum endmapping endcode endmultiset +syn keyword autodocRegion contained endarray endint endstring endsection +syn keyword autodocRegion contained endmixed endol endul enddl +syn keyword autodocRegion contained endclass endmodule endnamespace + +syn keyword autodocIgnore contained ignore endignore + +syn keyword autodocStatAcc contained b i u tt url pre sub sup +syn keyword autodocStatAcc contained ref rfc xml dl expr image + +syn keyword autodocTodo contained TODO FIXME XXX + +syn match autodocLineStart display "\(//\|/\?\*\)\@2<=!" +syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell + +syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead +syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion + +" Due to limitations of the matching algorithm, we cannot highlight +" nested autodocNStmtAcc structures correctly +syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend + +syn match autodocUrl contained display ".\+" +syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend +syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent + +syn match autodocSpecial "@@" display +syn match autodocLead "@" display contained + +"when wanted, highlight trailing white space +if exists("c_space_errors") + if !exists("c_no_trail_space_error") + syn match autodocSpaceError display excludenl "\s\+$" + endif + if !exists("c_no_tab_space_error") + syn match autodocSpaceError display " \+\t"me=e-1 + endif +endif + +if exists("c_minlines") + let b:c_minlines = c_minlines +else + if !exists("c_no_if0") + let b:c_minlines = 50 " #if 0 constructs can be long + else + let b:c_minlines = 15 " mostly for () constructs + endif +endif +exec "syn sync ccomment autodocComment minlines=" . b:c_minlines + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link autodocStatement Statement +hi def link autodocStatAcc Statement +hi def link autodocRegion Structure +hi def link autodocAtStmt Error +hi def link autodocNStmtAcc Identifier +hi def link autodocLink Type +hi def link autodocTodo Todo +hi def link autodocSpaceError Error +hi def link autodocLineStart SpecialComment +hi def link autodocSpecial SpecialChar +hi def link autodocUrl Underlined +hi def link autodocLead Statement +hi def link autodocIgnore Delimiter + +let b:current_syntax = "autodoc" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim index f659a87b71..1143ca7dd7 100644 --- a/runtime/syntax/c.vim +++ b/runtime/syntax/c.vim @@ -13,6 +13,14 @@ set cpo&vim let s:ft = matchstr(&ft, '^\([^.]\)\+') +" Optional embedded Autodoc parsing +" To enable it add: let g:c_autodoc = 1 +" to your .vimrc +if exists("c_autodoc") + syn include @cAutodoc <sfile>:p:h/autodoc.vim + unlet b:current_syntax +endif + " A bunch of useful C keywords syn keyword cStatement goto break return continue asm syn keyword cLabel case default @@ -377,6 +385,13 @@ syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInP syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell +" Optional embedded Autodoc parsing +if exists("c_autodoc") + syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL + syn cluster cCommentGroup add=cAutodocReal + syn cluster cPreProcGroup add=cAutodocReal +endif + " Highlight User Labels syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString if s:ft ==# 'c' || exists("cpp_no_cpp11") diff --git a/runtime/syntax/chicken.vim b/runtime/syntax/chicken.vim new file mode 100644 index 0000000000..f934d9d74e --- /dev/null +++ b/runtime/syntax/chicken.vim @@ -0,0 +1,77 @@ +" Vim syntax file +" Language: Scheme (CHICKEN) +" Last Change: 2018 Jan 31 +" Author: Evan Hanson <evhan@foldling.org> +" Maintainer: Evan Hanson <evhan@foldling.org> +" URL: https://foldling.org/vim/syntax/chicken.vim +" Notes: This is supplemental syntax, to be loaded after the core Scheme +" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1 +" and filetype=scheme. + +" Only to be used on top of the Scheme syntax. +if !exists('b:did_scheme_syntax') + finish +endif + +" Lighten parentheses. +hi def link schemeParentheses Comment + +" foo#bar +syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/ + +" ##foo#bar +syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/ + +" Heredocs. +syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/ + +" Keywords. +syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/ +syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/ + +" C/C++ syntax. +let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1) +if len(s:c) + exe 'syn include @c ' s:c[0] + syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c +endif + +syn keyword schemeSyntax define-record + +syn keyword schemeLibrarySyntax declare +syn keyword schemeLibrarySyntax module +syn keyword schemeLibrarySyntax reexport +syn keyword schemeLibrarySyntax require-library + +syn keyword schemeTypeSyntax --> +syn keyword schemeTypeSyntax -> +syn keyword schemeTypeSyntax : +syn keyword schemeTypeSyntax assume +syn keyword schemeTypeSyntax compiler-typecase +syn keyword schemeTypeSyntax define-specialization +syn keyword schemeTypeSyntax define-type +syn keyword schemeTypeSyntax the + +syn keyword schemeExtraSyntax and-let* +syn keyword schemeExtraSyntax match +syn keyword schemeExtraSyntax match-lambda +syn keyword schemeExtraSyntax match-lambda* + +syn keyword schemeSpecialSyntax define-compiler-syntax +syn keyword schemeSpecialSyntax define-constant +syn keyword schemeSpecialSyntax define-external +syn keyword schemeSpecialSyntax define-inline +syn keyword schemeSpecialSyntax foreign-code +syn keyword schemeSpecialSyntax foreign-declare +syn keyword schemeSpecialSyntax foreign-lambda +syn keyword schemeSpecialSyntax foreign-lambda* +syn keyword schemeSpecialSyntax foreign-primitive +syn keyword schemeSpecialSyntax foreign-safe-lambda +syn keyword schemeSpecialSyntax foreign-safe-lambda* +syn keyword schemeSpecialSyntax foreign-value + +syn keyword schemeSyntaxSyntax begin-for-syntax +syn keyword schemeSyntaxSyntax define-for-syntax +syn keyword schemeSyntaxSyntax er-macro-transformer +syn keyword schemeSyntaxSyntax ir-macro-transformer +syn keyword schemeSyntaxSyntax require-library-for-syntax diff --git a/runtime/syntax/cmod.vim b/runtime/syntax/cmod.vim new file mode 100644 index 0000000000..ea37682ff6 --- /dev/null +++ b/runtime/syntax/cmod.vim @@ -0,0 +1,144 @@ +" Vim syntax file +" Language: Cmod +" Current Maintainer: Stephen R. van den Berg <srb@cuci.nl> +" Last Change: 2018 Jan 23 +" Version: 2.9 +" Remark: Is used to edit Cmod files for Pike development. +" Remark: Includes a highlighter for any embedded Autodoc format. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Read the C syntax to start with +runtime! syntax/c.vim +unlet b:current_syntax + +if !exists("c_autodoc") + " For embedded Autodoc documentation + syn include @cmodAutodoc <sfile>:p:h/autodoc.vim + unlet b:current_syntax +endif + +" Supports rotating amongst several same-level preprocessor conditionals +packadd! matchit +let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>" + +" Cmod extensions +syn keyword cmodStatement __INIT INIT EXIT GC_RECURSE GC_CHECK +syn keyword cmodStatement EXTRA OPTIMIZE RETURN +syn keyword cmodStatement ADD_EFUN ADD_EFUN2 ADD_FUNCTION +syn keyword cmodStatement MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN + +syn keyword cmodStatement SET_SVAL pop_n_elems pop_stack +syn keyword cmodStatement SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP +syn keyword cmodStatement SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP +syn keyword cmodStatement PTR_FROM_INT INHERIT_FROM_PTR +syn keyword cmodStatement DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC +syn keyword cmodStatement UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO +syn keyword cmodStatement MKPCHARP_STR APPLY_MASTER current_storage +syn keyword cmodStatement PIKE_MAP_VARIABLE size_shift +syn keyword cmodStatement THREADS_ALLOW THREADS_DISALLOW + +syn keyword cmodStatement add_integer_constant ref_push_object +syn keyword cmodStatement push_string apply_svalue free_svalue +syn keyword cmodStatement get_inherit_storage get_storage +syn keyword cmodStatement make_shared_binary_string push_int64 +syn keyword cmodStatement begin_shared_string end_shared_string +syn keyword cmodStatement add_ref fast_clone_object clone_object +syn keyword cmodStatement push_undefined push_int ref_push_string +syn keyword cmodStatement free_string push_ulongest free_object +syn keyword cmodStatement convert_stack_top_to_bignum push_array +syn keyword cmodStatement push_object reduce_stack_top_bignum +syn keyword cmodStatement push_static_text apply_current +syn keyword cmodStatement assign_svalue free_program destruct_object +syn keyword cmodStatement start_new_program low_inherit stack_swap +syn keyword cmodStatement generic_error_program end_program +syn keyword cmodStatement free_array apply_external copy_mapping +syn keyword cmodStatement push_constant_text ref_push_mapping +syn keyword cmodStatement mapping_insert mapping_string_insert_string +syn keyword cmodStatement f_aggregate_mapping f_aggregate apply +syn keyword cmodStatement push_mapping push_svalue low_mapping_lookup +syn keyword cmodStatement assign_svalues_no_free f_add +syn keyword cmodStatement push_empty_string stack_dup assign_lvalue +syn keyword cmodStatement low_mapping_string_lookup allocate_mapping +syn keyword cmodStatement copy_shared_string make_shared_binary_string0 +syn keyword cmodStatement f_call_function f_index f_utf8_to_string +syn keyword cmodStatement finish_string_builder init_string_builder +syn keyword cmodStatement reset_string_builder free_string_builder +syn keyword cmodStatement string_builder_putchar get_all_args +syn keyword cmodStatement add_shared_strings check_all_args +syn keyword cmodStatement do_inherit add_string_constant +syn keyword cmodStatement add_program_constant set_init_callback +syn keyword cmodStatement simple_mapping_string_lookup +syn keyword cmodStatement f_sprintf push_text string_has_null +syn keyword cmodStatement end_and_resize_shared_string + +syn keyword cmodStatement args sp + +syn keyword cmodStatement free + +syn keyword cmodConstant ID_PROTECTED ID_FINAL PIKE_DEBUG +syn keyword cmodConstant NUMBER_NUMBER +syn keyword cmodConstant PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY +syn keyword cmodConstant PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING +syn keyword cmodConstant NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION +syn keyword cmodConstant T_OBJECT T_STRING T_ARRAY T_MAPPING + +syn keyword cmodException SET_ONERROR UNSET_ONERROR ONERROR +syn keyword cmodException CALL_AND_UNSET_ONERROR + +syn keyword cmodDebug Pike_fatal Pike_error check_stack + +syn keyword cmodAccess public protected private INHERIT +syn keyword cmodAccess CTYPE CVAR PIKEVAR PIKEFUN + +syn keyword cmodModifier efun export flags optflags optfunc +syn keyword cmodModifier type rawtype errname name c_name prototype +syn keyword cmodModifier program_flags gc_trivial PMOD_EXPORT +syn keyword cmodModifier ATTRIBUTE noclone noinline +syn keyword cmodModifier tOr tFuncV tInt tMix tVoid tStr tMap tPrg +syn keyword cmodModifier tSetvar tArr tMult tMultiset +syn keyword cmodModifier tArray tMapping tString tSetvar tVar + +syn keyword cmodType bool mapping string multiset array mixed +syn keyword cmodType object function program auto svalue +syn keyword cmodType bignum longest zero pike_string +syn keyword cmodType this this_program THIS INT_TYPE INT64 INT32 +syn keyword cmodType p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT + +syn keyword cmodOperator _destruct create __hash _sizeof _indices _values +syn keyword cmodOperator _is_type _sprintf _equal _m_delete _get_iterator +syn keyword cmodOperator _search _types _serialize _deserialize +syn keyword cmodOperator _size_object _random _sqrt TYPEOF SUBTYPEOF +syn keyword cmodOperator LIKELY UNLIKELY + +syn keyword cmodStructure DECLARATIONS PIKECLASS DECLARE_STORAGE + +if !exists("c_autodoc") + syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL + syn cluster cCommentGroup add=cmodAutodocReal + syn cluster cPreProcGroup add=cmodAutodocReal +endif + +" Default highlighting +hi def link cmodAccess Statement +hi def link cmodOperator Operator +hi def link cmodStatement Statement +hi def link cmodConstant Constant +hi def link cmodModifier Type +hi def link cmodType Type +hi def link cmodStorageClass StorageClass +hi def link cmodStructure Structure +hi def link cmodException Exception +hi def link cmodDebug Debug + +let b:current_syntax = "cmod" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/config.vim b/runtime/syntax/config.vim index c6d4e6b363..3636ed4130 100644 --- a/runtime/syntax/config.vim +++ b/runtime/syntax/config.vim @@ -1,9 +1,10 @@ " Vim syntax file " Language: configure.in script: M4 with sh -" Maintainer: Christian Hammesr <ch@lathspell.westend.com> -" Last Change: 2015 Jan 14 +" Former Maintainer: Christian Hammesr <ch@lathspell.westend.com> +" Last Change: 2018 Feb 03 " (patch from Yngve Inntjore Levinsen to detect AC_MSG) " (patch from Khym Chanur to add @Spell) +" (patch from James McCoy to fix paren matching) " Well, I actually even do not know much about m4. This explains why there " is probably very much missing here, yet ! @@ -30,8 +31,8 @@ syn keyword configspecial cat rm eval syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell " Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string. -syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell -syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell +syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell +syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell " Define the default highlighting. " Only when an item doesn't have highlighting yet @@ -45,6 +46,7 @@ hi def link confignumber Number hi def link configkeyword Keyword hi def link configspecial Special hi def link configstring String +hi def link configmsg String let b:current_syntax = "config" diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim index 23db7b10e8..ecdbc1795c 100644 --- a/runtime/syntax/css.vim +++ b/runtime/syntax/css.vim @@ -4,10 +4,10 @@ " Claudio Fleiner <claudio@fleiner.com> (Maintainer) " Yeti (Add full CSS2, HTML4 support) " Nikolai Weibull (Add CSS2 support) -" Maintainer: Jules Wang <w.jq0722@gmail.com> " URL: https://github.com/JulesWang/css.vim -" Last Change: 2017 Jan 14 -" cssClassName updated by Ryuichi Hayashida Jan 2016 +" Maintainer: Jules Wang <w.jq0722@gmail.com> +" Last Change: 2018 Feb. 27 +" cssClassName updated by Ryuichi Hayashida Jan 2016 " quit when a syntax file was already loaded if !exists("main_syntax") @@ -69,74 +69,12 @@ endtry " digits syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators -syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators - -syn match cssIncludeKeyword /@\(-[a-z]\+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained -" @media -syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock -syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl -syn keyword cssMediaKeyword only not and contained -syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold -syn match cssMediaComma "," skipwhite skipnl contained - -" Reference: http://www.w3.org/TR/css3-mediaqueries/ -syn keyword cssMediaProp contained width height orientation scan grid -syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/ -syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/ -syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/ -syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/ -syn keyword cssMediaAttr contained portrait landscape progressive interlace - -" @page -" http://www.w3.org/TR/css3-page/ -syn match cssPage "@page\>[^{]*{\@=" contains=cssPagePseudo,cssIncludeKeyword nextgroup=cssPageWrap transparent skipwhite skipnl -syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl -syn region cssPageWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssPageMargin,cssPageProp,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks -syn match cssPageMargin /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition skipwhite skipnl -syn keyword cssPageProp contained content size -" http://www.w3.org/TR/CSS2/page.html#break-inside -syn keyword cssPageProp contained orphans widows - -" @keyframe -" http://www.w3.org/TR/css3-animations/#keyframes -syn match cssKeyFrame "@\(-[a-z]\+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent -syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector -syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl nextgroup=cssDefinition - -" @import -syn region cssInclude start=/@import\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword,cssURL,cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType -syn region cssInclude start=/@charset\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword -syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword - -" @font-face -" http://www.w3.org/TR/css3-fonts/#at-font-face-rule -syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl -syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssCommonAttr,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssFontDescriptorAttr,cssNoise - -syn match cssFontDescriptorProp contained "\<font-family\>" -syn keyword cssFontDescriptorProp contained src -syn match cssFontDescriptorProp contained "\<font-\(style\|weight\|stretch\)\>" -syn match cssFontDescriptorProp contained "\<unicode-range\>" -syn match cssFontDescriptorProp contained "\<font-\(variant\|feature-settings\)\>" - -" src functions -syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend -" font-sytle and font-weight attributes -syn keyword cssFontDescriptorAttr contained normal italic oblique bold -" font-stretch attributes -syn match cssFontDescriptorAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>" -" unicode-range attributes -syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+" -syn match cssFontDescriptorAttr contained "U+\x\+-\x\+" -" font-feature-settings attributes -syn keyword cssFontDescriptorAttr contained on off - - - " The 16 basic color names syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow @@ -162,8 +100,8 @@ syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajow syn keyword cssColor contained oldlace olivedrab orange orangered orchid syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/ syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue -syn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown -syn keyword cssColor contained seagreen seashell sienna skyblue slateblue +syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon +syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan syn keyword cssColor contained thistle tomato turquoise violet wheat syn keyword cssColor contained whitesmoke yellowgreen @@ -180,10 +118,11 @@ syn match cssImportant contained "!\s*important\>" syn match cssColor contained "\<transparent\>" syn match cssColor contained "\<currentColor\>" syn match cssColor contained "\<white\>" -syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators -syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators +syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators +syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators +syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators -syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" contains=cssStringQ,cssStringQQ oneline +syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma @@ -224,7 +163,6 @@ syn keyword cssBackgroundAttr contained left center right top bottom " background-repeat attributes syn match cssBackgroundAttr contained "\<no-repeat\>" syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>" -syn keyword cssBackgroundAttr contained space round " background-size attributes syn keyword cssBackgroundAttr contained cover contain @@ -236,7 +174,7 @@ syn match cssBorderProp contained "\<box-decoration-break\>" syn match cssBorderProp contained "\<box-shadow\>" " border-image attributes -syn keyword cssBorderAttr contained stretch round space fill +syn keyword cssBorderAttr contained stretch round fill " border-style attributes syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset @@ -264,14 +202,18 @@ syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>" syn keyword cssDimensionProp contained height syn keyword cssDimensionProp contained width -" shadow and sizing are in other property groups -syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>" -syn keyword cssFlexibleBoxAttr contained start end baseline -syn keyword cssFlexibleBoxAttr contained reverse -syn keyword cssFlexibleBoxAttr contained single multiple -syn keyword cssFlexibleBoxAttr contained horizontal -syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align -syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>" +" CSS Flexible Box Layout Module Level 1 +" http://www.w3.org/TR/css3-flexbox/ +" CSS Box Alignment Module Level 3 +" http://www.w3.org/TR/css-align-3/ +syn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>" +syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>" +syn keyword cssFlexibleBoxProp contained order + +syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>" +syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center +syn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>" +syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>" " CSS Fonts Module Level 3 " http://www.w3.org/TR/css-fonts-3/ @@ -279,11 +221,11 @@ syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\ " font attributes syn keyword cssFontAttr contained icon menu caption -syn match cssFontAttr contained "\<small-\(caps\|caption\)\>" syn match cssFontAttr contained "\<message-box\>" syn match cssFontAttr contained "\<status-bar\>" syn keyword cssFontAttr contained larger smaller syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>" +syn match cssFontAttr contained "\<small-\(caps\|caption\)\>" " font-family attributes syn match cssFontAttr contained "\<\(sans-\)\=serif\>" syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf @@ -312,12 +254,16 @@ syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>" syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>" syn keyword cssMultiColumnProp contained columns syn keyword cssMultiColumnAttr contained balance medium -syn keyword cssMultiColumnAttr contained always avoid left right page column -syn match cssMultiColumnAttr contained "\<avoid-\(page\|column\)\>" +syn keyword cssMultiColumnAttr contained always left right page column +syn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>" " http://www.w3.org/TR/css3-break/#page-break syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>" +" http://www.w3.org/TR/SVG11/interact.html +syn match cssInteractProp contained "\<pointer-events\>" +syn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>" + " TODO find following items in w3c docs. syn keyword cssGeneratedContentProp contained quotes crop syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>" @@ -325,7 +271,12 @@ syn match cssGeneratedContentProp contained "\<move-to\>" syn match cssGeneratedContentProp contained "\<page-policy\>" syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" -syn match cssGridProp contained "\<grid-\(columns\|rows\)\>" +" https://www.w3.org/TR/css-grid-1/ +syn match cssGridProp contained "\<grid\>" +syn match cssGridProp contained "\<grid\(-\(template\|auto\)\)\=\(-\(columns\|rows\|areas\)\)\>" +syn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>" +syn match cssGridProp contained "\<grid-\(area\|gap\)\>" +syn match cssGridProp contained "\<grid-auto-flow\>" syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>" @@ -339,14 +290,14 @@ syn keyword cssListAttr contained inside outside syn keyword cssPositioningProp contained bottom clear clip display float left syn keyword cssPositioningProp contained position right top visibility syn match cssPositioningProp contained "\<z-index\>" -syn keyword cssPositioningAttr contained block compact +syn keyword cssPositioningAttr contained block compact grid syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>" syn keyword cssPositioningAttr contained left right both syn match cssPositioningAttr contained "\<list-item\>" -syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>" -syn keyword cssPositioningAttr contained static relative absolute fixed +syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>" +syn keyword cssPositioningAttr contained static relative absolute fixed subgrid -syn keyword cssPrintAttr contained landscape portrait crop cross always avoid +syn keyword cssPrintAttr contained landscape portrait crop cross always syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" syn keyword cssTableAttr contained fixed collapse separate show hide once always @@ -419,17 +370,20 @@ syn keyword cssUIAttr contained both horizontal vertical syn match cssUIProp contained "\<text-overflow\>" syn keyword cssUIAttr contained clip ellipsis -" Already highlighted Props: font content +syn match cssUIProp contained "\<image-rendering\>" +syn keyword cssUIAttr contained pixellated +syn match cssUIAttr contained "\<crisp-edges\>" + "------------------------------------------------ " Webkit/iOS specific attributes -syn match cssUIAttr contained '\(preserve-3d\)' +syn match cssUIAttr contained '\<preserve-3d\>' " IE specific attributes -syn match cssIEUIAttr contained '\(bicubic\)' +syn match cssIEUIAttr contained '\<bicubic\>' " Webkit/iOS specific properties -syn match cssUIProp contained '\(tap-highlight-color\|user-select\|touch-callout\)' +syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>' " IE specific properties -syn match cssIEUIProp contained '\(interpolation-mode\|zoom\|filter\)' +syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>' " Webkit/Firebox specific properties/attributes syn keyword cssUIProp contained appearance @@ -454,11 +408,25 @@ syn keyword cssAuralAttr contained male female child code digits continuous " mobile text syn match cssMobileTextProp contained "\<text-size-adjust\>" - +syn keyword cssMediaProp contained width height orientation scan grid +syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/ +syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/ +syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/ +syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/ +syn keyword cssMediaAttr contained portrait landscape progressive interlace +syn match cssKeyFrameProp /\d*%\|from\|to/ contained nextgroup=cssDefinition +syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition +syn keyword cssPageProp contained content size +syn keyword cssPageProp contained orphans widows +syn keyword cssFontDescriptorProp contained src +syn match cssFontDescriptorProp contained "\<unicode-range\>" +" unicode-range attributes +syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+" +syn match cssFontDescriptorAttr contained "U+\x\+-\x\+" syn match cssBraces contained "[{}]" syn match cssError contained "{@<>" -syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold +syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssAttributeSelector,cssClassName,cssIdentifier,cssAtRule,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold syn match cssBraceError "}" syn match cssAttrComma "," @@ -477,7 +445,7 @@ syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>" syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>" " Misc highlight groups -syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained +syntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained syntax match cssNoise contained /\(:\|;\|\/\)/ " Comment @@ -490,7 +458,7 @@ syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEsc syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ " Vendor Prefix -syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)" +syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-" " Various CSS Hack characters " In earlier versions of IE (6 and 7), one can prefix property names @@ -508,6 +476,34 @@ syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\)/ contained contains=css.* " 'transition' has Props after ':'. syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise +syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ contained + +syn keyword cssAtRuleLogical only not and contained + +" @media +" Reference: http://www.w3.org/TR/css3-mediaqueries/ +syn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment nextgroup=cssDefinition +syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained + +" @page +" http://www.w3.org/TR/css3-page/ +syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition +syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl +" @keyframe +" http://www.w3.org/TR/css3-animations/#keyframes +syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition + +syn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType +syn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword +syn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword + +" @font-face +" http://www.w3.org/TR/css3-fonts/#at-font-face-rule +syn match cssAtRule "@font-face\>" nextgroup=cssFontDescriptorBlock +" @supports +" https://www.w3.org/TR/css3-conditional/#at-supports +syn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition + if main_syntax == "css" syn sync minlines=10 @@ -537,6 +533,7 @@ hi def link cssFontProp cssProp hi def link cssGeneratedContentProp cssProp hi def link cssGridProp cssProp hi def link cssHyerlinkProp cssProp +hi def link cssInteractProp cssProp hi def link cssLineboxProp cssProp hi def link cssListProp cssProp hi def link cssMarqueeProp cssProp @@ -567,6 +564,7 @@ hi def link cssFontAttr cssAttr hi def link cssGeneratedContentAttr cssAttr hi def link cssGridAttr cssAttr hi def link cssHyerlinkAttr cssAttr +hi def link cssInteractAttr cssAttr hi def link cssLineboxAttr cssAttr hi def link cssListAttr cssAttr hi def link cssMarginAttr cssAttr @@ -603,8 +601,8 @@ hi def link cssFunctionName Function hi def link cssFunctionComma Function hi def link cssColor Constant hi def link cssIdentifier Function -hi def link cssInclude Include -hi def link cssIncludeKeyword atKeyword +hi def link cssAtRule Include +hi def link cssAtKeyword PreProc hi def link cssImportant Special hi def link cssBraces Function hi def link cssBraceError Error @@ -613,20 +611,16 @@ hi def link cssUnicodeEscape Special hi def link cssStringQQ String hi def link cssStringQ String hi def link cssAttributeSelector String -hi def link cssMedia atKeyword hi def link cssMediaType Special hi def link cssMediaComma Normal -hi def link cssMediaKeyword Statement +hi def link cssAtRuleLogical Statement hi def link cssMediaProp cssProp hi def link cssMediaAttr cssAttr -hi def link cssPage atKeyword hi def link cssPagePseudo PreProc -hi def link cssPageMargin atKeyword +hi def link cssPageMarginProp cssAtKeyword hi def link cssPageProp cssProp -hi def link cssKeyFrame atKeyword -hi def link cssKeyFrameSelector Constant +hi def link cssKeyFrameProp Constant hi def link cssFontDescriptor Special -hi def link cssFontDescriptorFunction Constant hi def link cssFontDescriptorProp cssProp hi def link cssFontDescriptorAttr cssAttr hi def link cssUnicodeRange Constant @@ -636,7 +630,6 @@ hi def link cssProp StorageClass hi def link cssAttr Constant hi def link cssUnitDecorators Number hi def link cssNoise Noise -hi def link atKeyword PreProc let b:current_syntax = "css" diff --git a/runtime/syntax/cuda.vim b/runtime/syntax/cuda.vim index cfc70b9ea8..13d70e343a 100644 --- a/runtime/syntax/cuda.vim +++ b/runtime/syntax/cuda.vim @@ -1,15 +1,15 @@ " Vim syntax file " Language: CUDA (NVIDIA Compute Unified Device Architecture) " Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net> -" Last Change: 2007 Oct 13 +" Last Change: 2018 Feb 06 " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif -" Read the C syntax to start with -runtime! syntax/c.vim +" Read the C++ syntax to start with +runtime! syntax/cpp.vim " CUDA extentions syn keyword cudaStorageClass __device__ __global__ __host__ diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim index 6e6ed1951a..e79fc9a31b 100644 --- a/runtime/syntax/debchangelog.vim +++ b/runtime/syntax/debchangelog.vim @@ -1,10 +1,10 @@ " Vim syntax file " Language: Debian changelog files -" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> +" Maintainer: Debian Vim Maintainers " Former Maintainers: Gerfried Fuchs <alfie@ist.org> " Wichert Akkerman <wakkerma@debian.org> -" Last Change: 2017 Apr 23 -" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim +" Last Change: 2018 Jan 06 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim " Standard syntax initialization if exists("b:current_syntax") @@ -21,7 +21,7 @@ let s:binNMU='binary-only=yes' syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ " exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"' exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"' -syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful)%(-%(security|proposed|updates|backports|commercial|partner))=)+" +syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic)%(-%(security|proposed|updates|backports|commercial|partner))=)+" syn match debchangelogVersion contained "(.\{-})" syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*" syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*" diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim index b8790747aa..945812f25c 100644 --- a/runtime/syntax/debcontrol.vim +++ b/runtime/syntax/debcontrol.vim @@ -1,10 +1,10 @@ " Vim syntax file " Language: Debian control files -" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> +" Maintainer: Debian Vim Maintainers " Former Maintainers: Gerfried Fuchs <alfie@ist.org> " Wichert Akkerman <wakkerma@debian.org> -" Last Change: 2017 Nov 04 -" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim +" Last Change: 2018 Jan 06 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim " Standard syntax initialization if exists("b:current_syntax") @@ -52,7 +52,7 @@ let s:sections = [ \, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded' \, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics' \, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection' - \, 'java', 'javascript', 'kde', 'kernel', 'libs', 'libdevel', 'lisp' + \, 'java\%(script\)\=', 'kde', 'kernel', 'libs', 'libdevel', 'lisp' \, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net' \, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python' \, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex' @@ -87,44 +87,29 @@ syn match debcontrolComment "^#.*$" contains=@Spell syn case ignore -" List of all legal keys, in order, from deb-src-control(5) -" Source fields -syn match debcontrolKey contained "^\%(Source\|Maintainer\|Uploaders\|Standards-Version\|Description\|Homepage\|Bugs\|Rules-Requires-Root\): *" -syn match debcontrolKey contained "^\%(XS-\)\=Vcs-\%(Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\|Browser\): *" -syn match debcontrolKey contained "^\%(Origin\|Section\|Priority\): *" -syn match debcontrolKey contained "^Build-\%(Depends\|Conflicts\)\%(-Arch\|-Indep\)\=: *" - -" Binary fields -syn match debcontrolKey contained "^\%(Package\%(-Type\)\=\|Architecture\|Build-Profiles\): *" -syn match debcontrolKey contained "^\%(\%(Build-\)\=Essential\|Multi-Arch\|Tag\): *" -syn match debcontrolKey contained "^\%(\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\): *" -syn match debcontrolKey contained "^\%(Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): *" - -" User-defined fields -syn match debcontrolKey contained "^X[SBC]\{0,3\}\%(-Private\)\=-[-a-zA-Z0-9]\+: *" - -syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *" +" Handle all fields from deb-src-control(5) " Fields for which we do strict syntax checking -syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline -syn region debcontrolStrictField start="^Multi-Arch" end="$" contains=debcontrolKey,debcontrolMultiArch oneline -syn region debcontrolStrictField start="^\%(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline -syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline -syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline -syn region debcontrolStrictField start="^\%(XC-\)\=Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline -syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend -syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend -syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend -syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend -syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend -syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline -syn region debcontrolStrictField start="^Rules-Requires-Root" end="$" contains=debcontrolKey,debcontrolR3 oneline -syn region debcontrolStrictField start="^\%(Build-\)\=Essential" end="$" contains=debcontrolKey,debcontrolYesNo oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Architecture: *" end="$" contains=debcontrolArchitecture,debcontrolSpace oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Multi-Arch: *" end="$" contains=debcontrolMultiArch oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Package\|Source\): *" end="$" contains=debcontrolName oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Priority: *" end="$" contains=debcontrolPriority oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Section: *" end="$" contains=debcontrolSection oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XC-\)\=Package-Type: *" end="$" contains=debcontrolPackageType oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Homepage: *" end="$" contains=debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Rules-Requires-Root: *" end="$" contains=debcontrolR3 oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Build-\)\=Essential: *" end="$" contains=debcontrolYesNo oneline + +syn region debcontrolStrictField matchgroup=debcontrolDeprecatedKey start="^\%(XS-\)\=DM-Upload-Allowed: *" end="$" contains=debcontrolDmUpload oneline " Catch-all for the other legal fields -syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline -syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment -syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell +syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline +syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment +syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell " Associate our matches and regions with pretty colours hi def link debcontrolKey Keyword diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim index 6791ece294..4e136fa9e3 100644 --- a/runtime/syntax/debsources.vim +++ b/runtime/syntax/debsources.vim @@ -1,9 +1,9 @@ " Vim syntax file " Language: Debian sources.list -" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> +" Maintainer: Debian Vim Maintainers " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl> -" Last Change: 2017 Oct 28 -" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim +" Last Change: 2018 Jan 06 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim " Standard syntax initialization if exists("b:current_syntax") diff --git a/runtime/syntax/dircolors.vim b/runtime/syntax/dircolors.vim index 3d7f63dc55..74a7068488 100644 --- a/runtime/syntax/dircolors.vim +++ b/runtime/syntax/dircolors.vim @@ -2,7 +2,7 @@ " Language: dircolors(1) input file " Maintainer: Jan Larres <jan@majutsushi.net> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2013-08-17 +" Latest Revision: 2018-02-19 if exists("b:current_syntax") finish @@ -135,6 +135,12 @@ function! s:preview_color(linenr) abort elseif item >= 40 && item <= 47 " ANSI SGR background color let hi_str .= s:get_hi_str(item - 40, 'bg') + elseif item >= 90 && item <= 97 + " ANSI SGR+8 foreground color (xterm 16-color support) + let hi_str .= s:get_hi_str(item - 82, 'fg') + elseif item >= 100 && item <= 107 + " ANSI SGR+8 background color (xterm 16-color support) + let hi_str .= s:get_hi_str(item - 92, 'bg') elseif item == 38 " Foreground for terminals with 88/256 color support let color = s:get_256color(colors) diff --git a/runtime/syntax/doxygen.vim b/runtime/syntax/doxygen.vim index 6bd3726279..adc0c41dd6 100644 --- a/runtime/syntax/doxygen.vim +++ b/runtime/syntax/doxygen.vim @@ -2,11 +2,10 @@ " Language: doxygen on top of c, cpp, idl, java, php " Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net> " Author: Michael Geddes -" Last Changes: Jan 2009 (\tparam by Domnique Pelle, Aug 2013) -" Nov 2017 (@throws by Domnique Pelle) -" Version: 1.23 +" Last Change: November 2017 (\throws by Candy Gumdrop) +" Version: 1.27 " -" Copyright 2004-2008 Michael Geddes +" Copyright 2004-2017 Michael Geddes " Please feel free to use, modify & distribute all or part of this script, " providing this copyright message remains. " I would appreciate being acknowledged in any derived scripts, and would @@ -59,52 +58,76 @@ try " " C/C++ Style line comments - syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion - syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion + syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+ containedin=phpRegion + syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion + syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+ + syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion + + syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO,doxygenLeadingWhite keepend fold containedin=phpRegion + syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenLeadingLWhite,doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenCommentWhite2 fold containedin=phpRegion syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion + syn region doxygenComment start=+/\*@\ze[{}]+ end=+\*/+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion " Single line brief followed by multiline comment. + syn match doxygenCommentWhite2 +\_s*\ze/\*\(\*/\)\@![*!]+ contained nextgroup=doxygenComment2 syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl " Skip empty lines at the start for when comments start on the 2nd/3rd line. - syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl - syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl + syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl + syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl " Match the Starting pattern (effectively creating the start of a BNF) if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief - syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl - syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite + syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl + syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial + syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeaingLWhite,doxygenPrevL,doxygenBriefL,doxygenSpecial " Match the first sentence as a brief comment if ! exists('g:doxygen_end_punctuation') let g:doxygen_end_punctuation='[.]' endif - exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody' + exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueCommentWhite,doxygenLeadingWhite,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody' syn match doxygenBriefEndComment +\*/+ contained exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend' syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite else - syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl - syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite + syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl + syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeadingLWhite,doxygenPrevL,doxygenLine,doxygenSpecial + syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite endif " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. - syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl + syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl + " Match an [@\]brief so that it moves to body-mode. + " + " + " syn match doxygenBriefLine contained + syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite + " syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained + syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained + + + +" end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ +"syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contains=doxygenContinueCommentWhite,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipwhite keepend matchgroup=xxx +syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ skipwhite keepend matchgroup=xxx +" syn region doxygenBriefLine matchgroup=xxxy contained start=+\<\k.\++ skip=+^\s*\k+ end=+end+ skipwhite keepend +"doxygenFindBriefSpecial, + "" syn region doxygenSpecialMultilineDesc start=+.\++ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend - syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipwhite keepend " Match a '<' for applying a comment to the previous element. - syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite + syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkipWhite skipwhite if exists("c_comment_strings") " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s @@ -123,10 +146,11 @@ endif "syn region doxygenBodyBit contained start=+$+ " The main body of a doxygen comment. - syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell + syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueCommentWhite,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell " These allow the skipping of comment continuation '*' characters. - syn match doxygenContinueComment contained +^\s*\*/\@!\s*+ + syn match doxygenContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenContinueComment + syn match doxygenContinueComment contained +\*/\@!+ " Catch a Brief comment without punctuation - flag it as an error but " make sure the end comment is picked up also. @@ -135,27 +159,19 @@ endif " Skip empty lines at the start for when comments start on the 2nd/3rd line. if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief - syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl - syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl + syn match doxygenStartSkipWhite +^\s*\ze\*/\@!+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl + "syn match doxygenStartSkipWhite +^\s*\ze\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl else - syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl - syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl + syn match doxygenStartSkipWhite +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl + syn match doxygenStartSkipWhite +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl endif - " Match an [@\]brief so that it moves to body-mode. - " - " - " syn match doxygenBriefLine contained - syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite - syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained - - " Create the single word matching special identifiers. fun! s:DxyCreateSmallSpecial( kword, name ) let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+' - exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word' + exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueCommentWhite,doxygen'.a:name.'Word' exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend' endfun call s:DxyCreateSmallSpecial('p', 'Code') @@ -180,40 +196,42 @@ endif " Match parameters and retvals (highlighting the first word as special). syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite - syn keyword doxygenParam contained param tparam nextgroup=doxygenParamName,doxygenParamDirection skipwhite + syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite + syn keyword doxygenTParam contained tparam nextgroup=doxygenParamName skipwhite syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite " Match one line identifiers. syn keyword doxygenOther contained addindex anchor \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer - \ example htmlonly image include ingroup internal latexonly line - \ overload related relates relatedalso relatesalso sa skip skipline + \ example htmlonly image include includelineno ingroup internal latexonly line + \ overload relates relatesalso sa skip skipline \ until verbinclude version addtogroup htmlinclude copydoc dotfile \ xmlonly endxmlonly - \ nextgroup=doxygenSpecialOnelineDesc + \ nextgroup=doxygenSpecialOnelineDesc copybrief copydetails copyright dir extends + \ implements - syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell + syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+ - syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell + syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+ - if exists('b:current_syntax') + if exists('b:current_syntax') let b:doxygen_syntax_save=b:current_syntax unlet b:current_syntax endif syn include @Dotx syntax/dot.vim - if exists('b:doxygen_syntax_save') + if exists('b:doxygen_syntax_save') let b:current_syntax=b:doxygen_syntax_save unlet b:doxygen_syntax_save else unlet b:current_syntax endif - syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx + syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueCommentWhite,@NoSpell,@Dotx syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+ " Match single line identifiers. @@ -224,13 +242,13 @@ endif syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc - syn keyword doxygenOther contained arg author authors date deprecated li result return returns see invariant note post pre remark remarks since test nextgroup=doxygenSpecialMultilineDesc + syn keyword doxygenOther contained arg author authors date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc " Handle \link, \endlink, highlighting the link-to and the link text bits separately. - syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial + syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueCommentWhite,doxygenLinkError,doxygenEndlinkSpecial syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+ syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment @@ -250,7 +268,7 @@ endif " Handle section syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent - syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment + syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueCommentWhite syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc " Does the one-line description for the one-line type identifiers. @@ -260,8 +278,12 @@ endif " Handle the multiline description for the multiline type identifiers. " Continue until an 'empty' line (can contain a '*' continuation) or until the " next whole-line @ command \ command. - syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend - syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite + syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend + +" syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite + syn match doxygenSpecialContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenSpecialContinueComment + syn match doxygenSpecialContinueComment contained +\*/\@!+ + " Handle special cases 'bold' and 'group' syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading @@ -288,7 +310,7 @@ endif " Supported HTML subset. Not perfect, but okay. syn case ignore - syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueComment,doxygenHtmlVar + syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueCommentWhite,doxygenHtmlVar syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite @@ -298,7 +320,7 @@ endif syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink - syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment + syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueCommentWhite " Html Support syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop hi link doxygenHtmlLink Underlined @@ -343,7 +365,7 @@ endif syn cluster rcGroup add=doxygen.* let s:my_syncolor=0 - if !exists(':SynColor') + if !exists(':SynColor') command -nargs=+ SynColor hi def <args> let s:my_syncolor=1 endif @@ -469,6 +491,8 @@ endif call s:Doxygen_Hilights() + syn match doxygenLeadingWhite +\(^\s*\*\)\@<=\s*+ contained + " This is still a proposal, but won't do any harm. aug doxygengroup au! @@ -483,6 +507,7 @@ endif SynLink doxygenOtherTODO Todo SynLink doxygenOtherWARN Todo SynLink doxygenOtherBUG Todo + SynLink doxygenLeadingLWhite doxygenBody SynLink doxygenErrorSpecial Error SynLink doxygenErrorEnd Error @@ -517,7 +542,10 @@ endif SynLink doxygenBriefL doxygenBrief SynLink doxygenBriefLine doxygenBrief SynLink doxygenHeaderLine doxygenSpecialHeading - SynLink doxygenStartSkip doxygenContinueComment + SynLink doxygenCommentWhite Normal + SynLink doxygenCommentWhite2 doxygenCommentWhite + SynLink doxygenContinueCommentWhite doxygenCommentWhite + SynLink doxygenStartSkipWhite doxygenContinueCommentWhite SynLink doxygenLinkWord doxygenParamName SynLink doxygenLinkRest doxygenSpecialMultilineDesc SynLink doxygenHyperLink doxygenLinkWord @@ -591,5 +619,5 @@ finally let &cpo = s:cpo_save unlet s:cpo_save endtry - +let suppress_doxygen=1 " vim:et sw=2 sts=2 diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim index 5f943a9496..991fd8af39 100644 --- a/runtime/syntax/html.vim +++ b/runtime/syntax/html.vim @@ -3,8 +3,8 @@ " Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net> " Previous Maintainer: Claudio Fleiner <claudio@fleiner.com> " Repository: https://notabug.org/jorgesumle/vim-html-syntax -" Last Change: 2017 Sep 30 -" included patch from Christian Brabandt to make use of the strikethrough attributes +" Last Change: 2017 Dec 16 +" Included patch from Jorge Maldonado Ventura to add the dialog element " " Please check :help html.vim for some comments and a description of the options @@ -100,11 +100,11 @@ syn keyword htmlArg contained summary tabindex valuetype version " html 5 arg names syn keyword htmlArg contained allowfullscreen async autocomplete autofocus syn keyword htmlArg contained autoplay challenge contenteditable contextmenu -syn keyword htmlArg contained controls crossorigin default dirname download -syn keyword htmlArg contained draggable dropzone form formaction formenctype -syn keyword htmlArg contained formmethod formnovalidate formtarget hidden -syn keyword htmlArg contained high icon inputmode keytype kind list loop low -syn keyword htmlArg contained max min minlength muted nonce novalidate open +syn keyword htmlArg contained controls crossorigin default dialog dirname +syn keyword htmlArg contained download draggable dropzone form formaction +syn keyword htmlArg contained formenctype formmethod formnovalidate formtarget +syn keyword htmlArg contained hidden high icon inputmode keytype kind list loop +syn keyword htmlArg contained low max min minlength muted nonce novalidate open syn keyword htmlArg contained optimum pattern placeholder poster preload syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate diff --git a/runtime/syntax/mix.vim b/runtime/syntax/mix.vim index 9ab98eacf8..564d344cc8 100644 --- a/runtime/syntax/mix.vim +++ b/runtime/syntax/mix.vim @@ -2,7 +2,7 @@ " Language: MIX (Donald Knuth's assembly language used in TAOCP) " Maintainer: Wu Yongwei <wuyongwei@gmail.com> " Filenames: *.mixal *.mix -" Last Change: 2013 Nov 13 +" Last Change: 2017-11-26 15:21:36 +0800 " Quit when a syntax file was already loaded if exists("b:current_syntax") @@ -16,7 +16,7 @@ syn case ignore " Special processing of ALF directive: implementations vary whether quotation " marks are needed -syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixAlfDirective,mixString nextgroup=mixEndComment contained +syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixString nextgroup=mixEndComment contained " Region for parameters syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained @@ -46,6 +46,7 @@ syn keyword mixDirective ALF nextgroup=mixAlfParam contained " Opcodes syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite +syn keyword mixOpcode SLB SRB JAE JAO JXE JXO nextgroup=mixParam contained skipwhite syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite @@ -58,7 +59,7 @@ syn match mixOpcode "J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite " Switch back to being case sensitive syn case match -" Registers (only to used in comments now) +" Registers (only to be used in comments now) syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained " The default highlighting diff --git a/runtime/syntax/nsis.vim b/runtime/syntax/nsis.vim index 3a343dd430..461ffb41fd 100644 --- a/runtime/syntax/nsis.vim +++ b/runtime/syntax/nsis.vim @@ -1,52 +1,72 @@ " Vim syntax file -" Language: NSIS script, for version of NSIS 1.91 and later -" Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt> -" Last Change: 2004 May 12 +" Language: NSIS script, for version of NSIS 3.02 and later +" Maintainer: Ken Takata +" URL: https://github.com/k-takata/vim-nsis +" Previous Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt> +" Last Change: 2018-01-26 " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif +let s:cpo_save = &cpo +set cpo&vim + syn case ignore -"COMMENTS +"Pseudo definitions +syn match nsisLine nextgroup=@nsisPseudoStatement skipwhite "^" +syn cluster nsisPseudoStatement contains=nsisFirstComment,nsisLocalLabel,nsisGlobalLabel +syn cluster nsisPseudoStatement add=nsisDefine,nsisPreCondit,nsisMacro,nsisInclude,nsisSystem +syn cluster nsisPseudoStatement add=nsisAttribute,nsisCompiler,nsisVersionInfo,nsisInstruction,nsisStatement + +"COMMENTS (4.1) syn keyword nsisTodo todo attention note fixme readme -syn region nsisComment start=";" end="$" contains=nsisTodo -syn region nsisComment start="#" end="$" contains=nsisTodo - -"LABELS -syn match nsisLocalLabel "\a\S\{-}:" -syn match nsisGlobalLabel "\.\S\{-1,}:" - -"PREPROCESSOR -syn match nsisPreprocSubst "${.\{-}}" -syn match nsisDefine "!define\>" -syn match nsisDefine "!undef\>" -syn match nsisPreCondit "!ifdef\>" -syn match nsisPreCondit "!ifndef\>" -syn match nsisPreCondit "!endif\>" -syn match nsisPreCondit "!else\>" -syn match nsisMacro "!macro\>" -syn match nsisMacro "!macroend\>" -syn match nsisMacro "!insertmacro\>" - -"COMPILER UTILITY -syn match nsisInclude "!include\>" -syn match nsisSystem "!cd\>" -syn match nsisSystem "!system\>" -syn match nsisSystem "!packhdr\>" - -"VARIABLES +syn region nsisComment start="[;#]" end="$" contains=nsisTodo,nsisLineContinuation,@Spell oneline +syn region nsisComment start=".\@1<=/\*" end="\*/" contains=nsisTodo,@Spell +syn region nsisFirstComment start="/\*" end="\*/" contained contains=nsisTodo,@Spell skipwhite + \ nextgroup=@nsisPseudoStatement + +syn match nsisLineContinuation "\\$" + +"STRINGS (4.1) +syn region nsisString start=/"/ end=/"/ contains=@nsisStringItems,@Spell +syn region nsisString start=/'/ end=/'/ contains=@nsisStringItems,@Spell +syn region nsisString start=/`/ end=/`/ contains=@nsisStringItems,@Spell + +syn cluster nsisStringItems contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisRegistry,nsisLineContinuation + +"NUMBERS (4.1) +syn match nsisNumber "\<[1-9]\d*\>" +syn match nsisNumber "\<0x\x\+\>" +syn match nsisNumber "\<0\o*\>" + +"STRING REPLACEMENT (5.4, 4.9.15.2, 5.3.1) +syn region nsisPreprocSubst start="\${" end="}" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar +syn region nsisPreprocLangStr start="\$(" end=")" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar +syn region nsisPreprocEnvVar start="\$%" end="%" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar + +"VARIABLES (4.2.2) syn match nsisUserVar "$\d" syn match nsisUserVar "$R\d" syn match nsisSysVar "$INSTDIR" syn match nsisSysVar "$OUTDIR" syn match nsisSysVar "$CMDLINE" +syn match nsisSysVar "$LANGUAGE" +"CONSTANTS (4.2.3) syn match nsisSysVar "$PROGRAMFILES" +syn match nsisSysVar "$PROGRAMFILES32" +syn match nsisSysVar "$PROGRAMFILES64" +syn match nsisSysVar "$COMMONFILES" +syn match nsisSysVar "$COMMONFILES32" +syn match nsisSysVar "$COMMONFILES64" syn match nsisSysVar "$DESKTOP" syn match nsisSysVar "$EXEDIR" +syn match nsisSysVar "$EXEFILE" +syn match nsisSysVar "$EXEPATH" +syn match nsisSysVar "${NSISDIR}" syn match nsisSysVar "$WINDIR" syn match nsisSysVar "$SYSDIR" syn match nsisSysVar "$TEMP" @@ -54,170 +74,513 @@ syn match nsisSysVar "$STARTMENU" syn match nsisSysVar "$SMPROGRAMS" syn match nsisSysVar "$SMSTARTUP" syn match nsisSysVar "$QUICKLAUNCH" +syn match nsisSysVar "$DOCUMENTS" +syn match nsisSysVar "$SENDTO" +syn match nsisSysVar "$RECENT" +syn match nsisSysVar "$FAVORITES" +syn match nsisSysVar "$MUSIC" +syn match nsisSysVar "$PICTURES" +syn match nsisSysVar "$VIDEOS" +syn match nsisSysVar "$NETHOOD" +syn match nsisSysVar "$FONTS" +syn match nsisSysVar "$TEMPLATES" +syn match nsisSysVar "$APPDATA" +syn match nsisSysVar "$LOCALAPPDATA" +syn match nsisSysVar "$PRINTHOOD" +syn match nsisSysVar "$INTERNET_CACHE" +syn match nsisSysVar "$COOKIES" +syn match nsisSysVar "$HISTORY" +syn match nsisSysVar "$PROFILE" +syn match nsisSysVar "$ADMINTOOLS" +syn match nsisSysVar "$RESOURCES" +syn match nsisSysVar "$RESOURCES_LOCALIZED" +syn match nsisSysVar "$CDBURN_AREA" syn match nsisSysVar "$HWNDPARENT" +syn match nsisSysVar "$PLUGINSDIR" syn match nsisSysVar "$\\r" syn match nsisSysVar "$\\n" +syn match nsisSysVar "$\\t" syn match nsisSysVar "$\$" +syn match nsisSysVar "$\\["'`]" -"STRINGS -syn region nsisString start=/"/ skip=/'\|`/ end=/"/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry -syn region nsisString start=/'/ skip=/"\|`/ end=/'/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry -syn region nsisString start=/`/ skip=/"\|'/ end=/`/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry +"LABELS (4.3) +syn match nsisLocalLabel contained "[^-+!$0-9;#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" +syn match nsisGlobalLabel contained "\.[^-+!$0-9;# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" "CONSTANTS -syn keyword nsisBoolean true false on off - -syn keyword nsisAttribOptions hide show nevershow auto force try ifnewer normal silent silentlog -syn keyword nsisAttribOptions smooth colored SET CUR END RO none listonly textonly both current all -syn keyword nsisAttribOptions zlib bzip2 lzma - -syn match nsisAttribOptions '\/NOCUSTOM' -syn match nsisAttribOptions '\/CUSTOMSTRING' -syn match nsisAttribOptions '\/COMPONENTSONLYONCUSTOM' -syn match nsisAttribOptions '\/windows' -syn match nsisAttribOptions '\/r' -syn match nsisAttribOptions '\/oname' -syn match nsisAttribOptions '\/REBOOTOK' -syn match nsisAttribOptions '\/SILENT' -syn match nsisAttribOptions '\/FILESONLY' -syn match nsisAttribOptions '\/SHORT' - -syn keyword nsisExecShell SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED - -syn keyword nsisRegistry HKCR HKLM HKCU HKU HKCC HKDD HKPD -syn keyword nsisRegistry HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS -syn keyword nsisRegistry HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA - -syn keyword nsisFileAttrib NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY -syn keyword nsisFileAttrib FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN -syn keyword nsisFileAttrib FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM -syn keyword nsisFileAttrib FILE_ATTRIBUTE_TEMPORARY - -syn keyword nsisMessageBox MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL -syn keyword nsisMessageBox MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP -syn keyword nsisMessageBox MB_TOPMOST MB_SETFOREGROUND MB_RIGHT -syn keyword nsisMessageBox MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4 -syn keyword nsisMessageBox IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES - -syn match nsisNumber "\<[^0]\d*\>" -syn match nsisNumber "\<0x\x\+\>" -syn match nsisNumber "\<0\o*\>" +syn keyword nsisBoolean contained true false +syn keyword nsisOnOff contained on off + +syn keyword nsisRegistry contained HKCR HKLM HKCU HKU HKCC HKDD HKPD SHCTX +syn keyword nsisRegistry contained HKCR32 HKCR64 HKCU32 HKCU64 HKLM32 HKLM64 +syn keyword nsisRegistry contained HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS +syn keyword nsisRegistry contained HKEY_CLASSES_ROOT32 HKEY_CLASSES_ROOT64 +syn keyword nsisRegistry contained HKEY_CURRENT_USER32 HKEY_CURRENT_USER64 +syn keyword nsisRegistry contained HKEY_LOCAL_MACHINE32 HKEY_LOCAL_MACHINE64 +syn keyword nsisRegistry contained HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA +syn keyword nsisRegistry contained SHELL_CONTEXT + + +" common options +syn cluster nsisAnyOpt contains=nsisComment,nsisLineContinuation,nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisString,nsisNumber +syn region nsisBooleanOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBoolean +syn region nsisOnOffOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisOnOff +syn region nsisLangOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLangKwd +syn match nsisLangKwd contained "/LANG\>" +syn region nsisFontOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFontKwd +syn match nsisFontKwd contained "/\%(ITALIC\|UNDERLINE\|STRIKE\)\>" + +"STATEMENTS - pages (4.5) +syn keyword nsisStatement contained Page UninstPage nextgroup=nsisPageOpt skipwhite +syn region nsisPageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageKwd +syn keyword nsisPageKwd contained custom license components directory instfiles uninstConfirm +syn match nsisPageKwd contained "/ENABLECANCEL\>" + +syn keyword nsisStatement contained PageEx nextgroup=nsisPageExOpt skipwhite +syn region nsisPageExOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageExKwd +syn match nsisPageExKwd contained "\<\%(un\.\)\?\%(custom\|license\|components\|directory\|instfiles\|uninstConfirm\)\>" + +syn keyword nsisStatement contained PageExEnd PageCallbacks + +"STATEMENTS - sections (4.6.1) +syn keyword nsisStatement contained AddSize SectionEnd SectionGroupEnd + +syn keyword nsisStatement contained Section nextgroup=nsisSectionOpt skipwhite +syn region nsisSectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionKwd +syn match nsisSectionKwd contained "/o\>" + +syn keyword nsisStatement contained SectionIn nextgroup=nsisSectionInOpt skipwhite +syn region nsisSectionInOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionInKwd +syn keyword nsisSectionInKwd contained RO + +syn keyword nsisStatement contained SectionGroup nextgroup=nsisSectionGroupOpt skipwhite +syn region nsisSectionGroupOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionGroupKwd +syn match nsisSectionGroupKwd contained "/e\>" + +"STATEMENTS - functions (4.7.1) +syn keyword nsisStatement contained Function FunctionEnd + + +"STATEMENTS - LogicLib.nsh +syn match nsisStatement "${If}" +syn match nsisStatement "${IfNot}" +syn match nsisStatement "${Unless}" +syn match nsisStatement "${ElseIf}" +syn match nsisStatement "${ElseIfNot}" +syn match nsisStatement "${ElseUnless}" +syn match nsisStatement "${Else}" +syn match nsisStatement "${EndIf}" +syn match nsisStatement "${EndUnless}" +syn match nsisStatement "${AndIf}" +syn match nsisStatement "${AndIfNot}" +syn match nsisStatement "${AndUnless}" +syn match nsisStatement "${OrIf}" +syn match nsisStatement "${OrIfNot}" +syn match nsisStatement "${OrUnless}" +syn match nsisStatement "${IfThen}" +syn match nsisStatement "${IfNotThen}" +syn match nsisStatement "${||\?}" nextgroup=@nsisPseudoStatement skipwhite +syn match nsisStatement "${IfCmd}" nextgroup=@nsisPseudoStatement skipwhite +syn match nsisStatement "${Select}" +syn match nsisStatement "${Case}" +syn match nsisStatement "${Case[2-5]}" +syn match nsisStatement "${CaseElse}" +syn match nsisStatement "${Default}" +syn match nsisStatement "${EndSelect}" +syn match nsisStatement "${Switch}" +syn match nsisStatement "${EndSwitch}" +syn match nsisStatement "${Break}" +syn match nsisStatement "${Do}" +syn match nsisStatement "${DoWhile}" +syn match nsisStatement "${DoUntil}" +syn match nsisStatement "${ExitDo}" +syn match nsisStatement "${Continue}" +syn match nsisStatement "${Loop}" +syn match nsisStatement "${LoopWhile}" +syn match nsisStatement "${LoopUntil}" +syn match nsisStatement "${For}" +syn match nsisStatement "${ForEach}" +syn match nsisStatement "${ExitFor}" +syn match nsisStatement "${Next}" +"STATEMENTS - Memento.nsh +syn match nsisStatement "${MementoSection}" +syn match nsisStatement "${MementoSectionEnd}" + + +"USER VARIABLES (4.2.1) +syn keyword nsisInstruction contained Var nextgroup=nsisVarOpt skipwhite +syn region nsisVarOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVarKwd +syn match nsisVarKwd contained "/GLOBAL\>" + +"INSTALLER ATTRIBUTES (4.8.1) +syn keyword nsisAttribute contained Caption ChangeUI CheckBitmap CompletedText ComponentText +syn keyword nsisAttribute contained DetailsButtonText DirText DirVar +syn keyword nsisAttribute contained FileErrorText Icon InstallButtonText +syn keyword nsisAttribute contained InstallDir InstProgressFlags +syn keyword nsisAttribute contained LicenseData LicenseText +syn keyword nsisAttribute contained MiscButtonText Name OutFile +syn keyword nsisAttribute contained SpaceTexts SubCaption UninstallButtonText UninstallCaption +syn keyword nsisAttribute contained UninstallIcon UninstallSubCaption UninstallText + +syn keyword nsisAttribute contained AddBrandingImage nextgroup=nsisAddBrandingImageOpt skipwhite +syn region nsisAddBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddBrandingImageKwd +syn keyword nsisAddBrandingImageKwd contained left right top bottom width height + +syn keyword nsisAttribute contained nextgroup=nsisBooleanOpt skipwhite + \ AllowRootDirInstall AutoCloseWindow + +syn keyword nsisAttribute contained BGFont nextgroup=nsisFontOpt skipwhite + +syn keyword nsisAttribute contained BGGradient nextgroup=nsisBGGradientOpt skipwhite +syn region nsisBGGradientOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBGGradientKwd +syn keyword nsisBGGradientKwd contained off + +syn keyword nsisAttribute contained BrandingText nextgroup=nsisBrandingTextOpt skipwhite +syn region nsisBrandingTextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBrandingTextKwd +syn match nsisBrandingTextKwd contained "/TRIM\%(LEFT\|RIGHT\|CENTER\)\>" + +syn keyword nsisAttribute contained CRCCheck nextgroup=nsisCRCCheckOpt skipwhite +syn region nsisCRCCheckOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCRCCheckKwd +syn keyword nsisCRCCheckKwd contained on off force + +syn keyword nsisAttribute contained DirVerify nextgroup=nsisDirVerifyOpt skipwhite +syn region nsisDirVerifyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDirVerifyKwd +syn keyword nsisDirVerifyKwd contained auto leave + +syn keyword nsisAttribute contained InstallColors nextgroup=nsisInstallColorsOpt skipwhite +syn region nsisInstallColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstallColorsKwd +syn match nsisInstallColorsKwd contained "/windows\>" + +syn keyword nsisAttribute contained InstallDirRegKey nextgroup=nsisRegistryOpt skipwhite + +syn keyword nsisAttribute contained InstType nextgroup=nsisInstTypeOpt skipwhite +syn region nsisInstTypeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstTypeKwd +syn match nsisInstTypeKwd contained "/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\)\>" + +syn keyword nsisAttribute contained LicenseBkColor nextgroup=nsisLicenseBkColorOpt skipwhite +syn region nsisLicenseBkColorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseBkColorKwd +syn match nsisLicenseBkColorKwd contained "/\%(gray\|windows\)\>" + +syn keyword nsisAttribute contained LicenseForceSelection nextgroup=nsisLicenseForceSelectionOpt skipwhite +syn region nsisLicenseForceSelectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseForceSelectionKwd +syn keyword nsisLicenseForceSelectionKwd contained checkbox radiobuttons off + +syn keyword nsisAttribute contained ManifestDPIAware nextgroup=nsisManifestDPIAwareOpt skipwhite +syn region nsisManifestDPIAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestDPIAwareKwd +syn keyword nsisManifestDPIAwareKwd contained notset true false + +syn keyword nsisAttribute contained ManifestSupportedOS nextgroup=nsisManifestSupportedOSOpt skipwhite +syn region nsisManifestSupportedOSOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd +syn match nsisManifestSupportedOSKwd contained "\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>" + +syn keyword nsisAttribute contained RequestExecutionLevel nextgroup=nsisRequestExecutionLevelOpt skipwhite +syn region nsisRequestExecutionLevelOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd +syn keyword nsisRequestExecutionLevelKwd contained none user highest admin + +syn keyword nsisAttribute contained SetFont nextgroup=nsisLangOpt skipwhite + +syn keyword nsisAttribute contained nextgroup=nsisShowInstDetailsOpt skipwhite + \ ShowInstDetails ShowUninstDetails +syn region nsisShowInstDetailsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisShowInstDetailsKwd +syn keyword nsisShowInstDetailsKwd contained hide show nevershow + +syn keyword nsisAttribute contained SilentInstall nextgroup=nsisSilentInstallOpt skipwhite +syn region nsisSilentInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentInstallKwd +syn keyword nsisSilentInstallKwd contained normal silent silentlog + +syn keyword nsisAttribute contained SilentUnInstall nextgroup=nsisSilentUnInstallOpt skipwhite +syn region nsisSilentUnInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentUnInstallKwd +syn keyword nsisSilentUnInstallKwd contained normal silent + +syn keyword nsisAttribute contained nextgroup=nsisOnOffOpt skipwhite + \ WindowIcon XPStyle + +"COMPILER FLAGS (4.8.2) +syn keyword nsisCompiler contained nextgroup=nsisOnOffOpt skipwhite + \ AllowSkipFiles SetDatablockOptimize SetDateSave + +syn keyword nsisCompiler contained FileBufSize SetCompressorDictSize + +syn keyword nsisCompiler contained SetCompress nextgroup=nsisSetCompressOpt skipwhite +syn region nsisSetCompressOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressKwd +syn keyword nsisSetCompressKwd contained auto force off + +syn keyword nsisCompiler contained SetCompressor nextgroup=nsisSetCompressorOpt skipwhite +syn region nsisSetCompressorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressorKwd +syn keyword nsisSetCompressorKwd contained zlib bzip2 lzma +syn match nsisSetCompressorKwd contained "/\%(SOLID\|FINAL\)" + +syn keyword nsisCompiler contained SetOverwrite nextgroup=nsisSetOverwriteOpt skipwhite +syn region nsisSetOverwriteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetOverwriteKwd +syn keyword nsisSetOverwriteKwd contained on off try ifnewer ifdiff lastused + +syn keyword nsisCompiler contained Unicode nextgroup=nsisBooleanOpt skipwhite + +"VERSION INFORMATION (4.8.3) +syn keyword nsisVersionInfo contained VIAddVersionKey nextgroup=nsisLangOpt skipwhite + +syn keyword nsisVersionInfo contained VIProductVersion VIFileVersion + + +"FUNCTIONS - basic (4.9.1) +syn keyword nsisInstruction contained Delete Rename nextgroup=nsisDeleteOpt skipwhite +syn region nsisDeleteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteKwd +syn match nsisDeleteKwd contained "/REBOOTOK\>" + +syn keyword nsisInstruction contained Exec ExecWait SetOutPath + +syn keyword nsisInstruction contained ExecShell ExecShellWait nextgroup=nsisExecShellOpt skipwhite +syn region nsisExecShellOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisExecShellKwd +syn keyword nsisExecShellKwd contained SW_SHOWDEFAULT SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE +syn match nsisExecShellKwd contained "/INVOKEIDLIST\>" + +syn keyword nsisInstruction contained File nextgroup=nsisFileOpt skipwhite +syn region nsisFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileKwd +syn match nsisFileKwd contained "/\%(nonfatal\|[arx]\|oname\)\>" + +syn keyword nsisInstruction contained ReserveFile nextgroup=nsisReserveFileOpt skipwhite +syn region nsisReserveFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisReserveFileKwd +syn match nsisReserveFileKwd contained "/\%(nonfatal\|[rx]\|plugin\)\>" + +syn keyword nsisInstruction contained RMDir nextgroup=nsisRMDirOpt skipwhite +syn region nsisRMDirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRMDirKwd +syn match nsisRMDirKwd contained "/\%(REBOOTOK\|r\)\>" + +"FUNCTIONS - registry & ini (4.9.2) +syn keyword nsisInstruction contained DeleteINISec DeleteINIStr FlushINI ReadINIStr WriteINIStr +syn keyword nsisInstruction contained ExpandEnvStrings ReadEnvStr -"INSTALLER ATTRIBUTES - General installer configuration -syn keyword nsisAttribute OutFile Name Caption SubCaption BrandingText Icon -syn keyword nsisAttribute WindowIcon BGGradient SilentInstall SilentUnInstall -syn keyword nsisAttribute CRCCheck MiscButtonText InstallButtonText FileErrorText +syn keyword nsisInstruction contained DeleteRegKey nextgroup=nsisDeleteRegKeyOpt skipwhite +syn region nsisDeleteRegKeyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteRegKeyKwd,nsisRegistry +syn match nsisDeleteRegKeyKwd contained "/ifempty\>" -"INSTALLER ATTRIBUTES - Install directory configuration -syn keyword nsisAttribute InstallDir InstallDirRegKey +syn keyword nsisInstruction contained nextgroup=nsisRegistryOpt skipwhite + \ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr +syn region nsisRegistryOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry -"INSTALLER ATTRIBUTES - License page configuration -syn keyword nsisAttribute LicenseText LicenseData +syn keyword nsisInstruction contained WriteRegMultiStr nextgroup=nsisWriteRegMultiStrOpt skipwhite +syn region nsisWriteRegMultiStrOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry,nsisWriteRegMultiStrKwd +syn match nsisWriteRegMultiStrKwd contained "/REGEDIT5\>" -"INSTALLER ATTRIBUTES - Component page configuration -syn keyword nsisAttribute ComponentText InstType EnabledBitmap DisabledBitmap SpaceTexts +syn keyword nsisInstruction contained SetRegView nextgroup=nsisSetRegViewOpt skipwhite +syn region nsisSetRegViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetRegViewKwd +syn keyword nsisSetRegViewKwd contained default lastused -"INSTALLER ATTRIBUTES - Directory page configuration -syn keyword nsisAttribute DirShow DirText AllowRootDirInstall +"FUNCTIONS - general purpose (4.9.3) +syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetDLLVersion +syn keyword nsisInstruction contained GetDLLVersionLocal GetFileTime GetFileTimeLocal +syn keyword nsisInstruction contained GetTempFileName SearchPath RegDLL UnRegDLL -"INSTALLER ATTRIBUTES - Install page configuration -syn keyword nsisAttribute InstallColors InstProgressFlags AutoCloseWindow -syn keyword nsisAttribute ShowInstDetails DetailsButtonText CompletedText +syn keyword nsisInstruction contained CopyFiles nextgroup=nsisCopyFilesOpt skipwhite +syn region nsisCopyFilesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCopyFilesKwd +syn match nsisCopyFilesKwd contained "/\%(SILENT\|FILESONLY\)\>" -"INSTALLER ATTRIBUTES - Uninstall configuration -syn keyword nsisAttribute UninstallText UninstallIcon UninstallCaption -syn keyword nsisAttribute UninstallSubCaption ShowUninstDetails UninstallButtonText +syn keyword nsisInstruction contained CreateShortcut nextgroup=nsisCreateShortcutOpt skipwhite +syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd +syn match nsisCreateShortcutKwd contained "/NoWorkingDir\>" -"COMPILER ATTRIBUTES -syn keyword nsisCompiler SetOverwrite SetCompress SetCompressor SetDatablockOptimize SetDateSave +syn keyword nsisInstruction contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite +syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd +syn match nsisGetFullPathNameKwd contained "/SHORT\>" +syn keyword nsisInstruction contained SetFileAttributes nextgroup=nsisSetFileAttributesOpt skipwhite +syn region nsisSetFileAttributesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileAttrib +syn keyword nsisFileAttrib contained NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY +syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN +syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM +syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_TEMPORARY -"FUNCTIONS - general purpose -syn keyword nsisInstruction SetOutPath File Exec ExecWait ExecShell -syn keyword nsisInstruction Rename Delete RMDir +"FUNCTIONS - Flow Control (4.9.4) +syn keyword nsisInstruction contained Abort Call ClearErrors GetCurrentAddress +syn keyword nsisInstruction contained GetFunctionAddress GetLabelAddress Goto +syn keyword nsisInstruction contained IfAbort IfErrors IfFileExists IfRebootFlag IfSilent +syn keyword nsisInstruction contained IntCmp IntCmpU Return Quit SetErrors StrCmp StrCmpS -"FUNCTIONS - registry & ini -syn keyword nsisInstruction WriteRegStr WriteRegExpandStr WriteRegDWORD WriteRegBin -syn keyword nsisInstruction WriteINIStr ReadRegStr ReadRegDWORD ReadINIStr ReadEnvStr -syn keyword nsisInstruction ExpandEnvStrings DeleteRegValue DeleteRegKey EnumRegKey -syn keyword nsisInstruction EnumRegValue DeleteINISec DeleteINIStr +syn keyword nsisInstruction contained MessageBox nextgroup=nsisMessageBoxOpt skipwhite +syn region nsisMessageBoxOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisMessageBox +syn keyword nsisMessageBox contained MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL +syn keyword nsisMessageBox contained MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP MB_USERICON +syn keyword nsisMessageBox contained MB_TOPMOST MB_SETFOREGROUND MB_RIGHT MB_RTLREADING +syn keyword nsisMessageBox contained MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4 +syn keyword nsisMessageBox contained IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES +syn match nsisMessageBox contained "/SD\>" -"FUNCTIONS - general purpose, advanced -syn keyword nsisInstruction CreateDirectory CopyFiles SetFileAttributes CreateShortCut -syn keyword nsisInstruction GetFullPathName SearchPath GetTempFileName CallInstDLL -syn keyword nsisInstruction RegDLL UnRegDLL GetDLLVersion GetDLLVersionLocal -syn keyword nsisInstruction GetFileTime GetFileTimeLocal +"FUNCTIONS - File and directory i/o instructions (4.9.5) +syn keyword nsisInstruction contained FileClose FileOpen FileRead FileReadUTF16LE +syn keyword nsisInstruction contained FileReadByte FileReadWord FileSeek FileWrite +syn keyword nsisInstruction contained FileWriteByte FileWriteWord +syn keyword nsisInstruction contained FindClose FindFirst FindNext -"FUNCTIONS - Branching, flow control, error checking, user interaction, etc instructions -syn keyword nsisInstruction Goto Call Return IfErrors ClearErrors SetErrors FindWindow -syn keyword nsisInstruction SendMessage IsWindow IfFileExists MessageBox StrCmp -syn keyword nsisInstruction IntCmp IntCmpU Abort Quit GetFunctionAddress GetLabelAddress -syn keyword nsisInstruction GetCurrentAddress +syn keyword nsisInstruction contained FileWriteUTF16LE nextgroup=nsisFileWriteUTF16LEOpt skipwhite +syn region nsisFileWriteUTF16LEOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileWriteUTF16LEKwd +syn match nsisFileWriteUTF16LEKwd contained "/BOM\>" -"FUNCTIONS - File and directory i/o instructions -syn keyword nsisInstruction FindFirst FindNext FindClose FileOpen FileClose FileRead -syn keyword nsisInstruction FileWrite FileReadByte FileWriteByte FileSeek +"FUNCTIONS - Uninstaller instructions (4.9.6) +syn keyword nsisInstruction contained WriteUninstaller -"FUNCTIONS - Misc instructions -syn keyword nsisInstruction SetDetailsView SetDetailsPrint SetAutoClose DetailPrint -syn keyword nsisInstruction Sleep BringToFront HideWindow SetShellVarContext +"FUNCTIONS - Misc instructions (4.9.7) +syn keyword nsisInstruction contained GetErrorLevel GetInstDirError InitPluginsDir Nop +syn keyword nsisInstruction contained SetErrorLevel Sleep -"FUNCTIONS - String manipulation support -syn keyword nsisInstruction StrCpy StrLen +syn keyword nsisInstruction contained SetShellVarContext nextgroup=nsisSetShellVarContextOpt skipwhite +syn region nsisSetShellVarContextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetShellVarContextKwd +syn keyword nsisSetShellVarContextKwd contained current all -"FUNCTIONS - Stack support -syn keyword nsisInstruction Push Pop Exch +"FUNCTIONS - String manipulation support (4.9.8) +syn keyword nsisInstruction contained StrCpy StrLen -"FUNCTIONS - Integer manipulation support -syn keyword nsisInstruction IntOp IntFmt +"FUNCTIONS - Stack support (4.9.9) +syn keyword nsisInstruction contained Exch Push Pop -"FUNCTIONS - Rebooting support -syn keyword nsisInstruction Reboot IfRebootFlag SetRebootFlag +"FUNCTIONS - Integer manipulation support (4.9.10) +syn keyword nsisInstruction contained IntOp IntFmt -"FUNCTIONS - Uninstaller instructions -syn keyword nsisInstruction WriteUninstaller +"FUNCTIONS - Rebooting support (4.9.11) +syn keyword nsisInstruction contained Reboot SetRebootFlag -"FUNCTIONS - Install logging instructions -syn keyword nsisInstruction LogSet LogText +"FUNCTIONS - Install logging instructions (4.9.12) +syn keyword nsisInstruction contained LogSet nextgroup=nsisOnOffOpt skipwhite +syn keyword nsisInstruction contained LogText -"FUNCTIONS - Section management instructions -syn keyword nsisInstruction SectionSetFlags SectionGetFlags SectionSetText -syn keyword nsisInstruction SectionGetText +"FUNCTIONS - Section management instructions (4.9.13) +syn keyword nsisInstruction contained SectionSetFlags SectionGetFlags SectionSetText +syn keyword nsisInstruction contained SectionGetText SectionSetInstTypes SectionGetInstTypes +syn keyword nsisInstruction contained SectionSetSize SectionGetSize SetCurInstType GetCurInstType +syn keyword nsisInstruction contained InstTypeSetText InstTypeGetText +"FUNCTIONS - User Interface Instructions (4.9.14) +syn keyword nsisInstruction contained BringToFront DetailPrint EnableWindow +syn keyword nsisInstruction contained FindWindow GetDlgItem HideWindow IsWindow +syn keyword nsisInstruction contained ShowWindow -"SPECIAL FUNCTIONS - install +syn keyword nsisInstruction contained CreateFont nextgroup=nsisFontOpt skipwhite + +syn keyword nsisInstruction contained nextgroup=nsisBooleanOpt skipwhite + \ LockWindow SetAutoClose + +syn keyword nsisInstruction contained SendMessage nextgroup=nsisSendMessageOpt skipwhite +syn region nsisSendMessageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSendMessageKwd +syn match nsisSendMessageKwd contained "/TIMEOUT\>" + +syn keyword nsisInstruction contained SetBrandingImage nextgroup=nsisSetBrandingImageOpt skipwhite +syn region nsisSetBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetBrandingImageKwd +syn match nsisSetBrandingImageKwd contained "/\%(IMGID\|RESIZETOFIT\)\>" + +syn keyword nsisInstruction contained SetDetailsView nextgroup=nsisSetDetailsViewOpt skipwhite +syn region nsisSetDetailsViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsViewKwd +syn keyword nsisSetDetailsViewKwd contained show hide + +syn keyword nsisInstruction contained SetDetailsPrint nextgroup=nsisSetDetailsPrintOpt skipwhite +syn region nsisSetDetailsPrintOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsPrintKwd +syn keyword nsisSetDetailsPrintKwd contained none listonly textonly both lastused + +syn keyword nsisInstruction contained SetCtlColors nextgroup=nsisSetCtlColorsOpt skipwhite +syn region nsisSetCtlColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCtlColorsKwd +syn match nsisSetCtlColorsKwd contained "/BRANDING\>" + +syn keyword nsisInstruction contained SetSilent nextgroup=nsisSetSilentOpt skipwhite +syn region nsisSetSilentOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetSilentKwd +syn keyword nsisSetSilentKwd contained silent normal + + +"FUNCTIONS - Multiple Languages Instructions (4.9.15) +syn keyword nsisInstruction contained LoadLanguageFile LangString LicenseLangString + + +"SPECIAL FUNCTIONS - install (4.7.2.1) +syn match nsisCallback "\.onGUIInit" syn match nsisCallback "\.onInit" -syn match nsisCallback "\.onUserAbort" -syn match nsisCallback "\.onInstSuccess" syn match nsisCallback "\.onInstFailed" -syn match nsisCallback "\.onVerifyInstDir" -syn match nsisCallback "\.onNextPage" -syn match nsisCallback "\.onPrevPage" +syn match nsisCallback "\.onInstSuccess" +syn match nsisCallback "\.onGUIEnd" +syn match nsisCallback "\.onMouseOverSection" +syn match nsisCallback "\.onRebootFailed" syn match nsisCallback "\.onSelChange" +syn match nsisCallback "\.onUserAbort" +syn match nsisCallback "\.onVerifyInstDir" -"SPECIAL FUNCTIONS - uninstall +"SPECIAL FUNCTIONS - uninstall (4.7.2.2) +syn match nsisCallback "un\.onGUIInit" syn match nsisCallback "un\.onInit" +syn match nsisCallback "un\.onUninstFailed" +syn match nsisCallback "un\.onUninstSuccess" +syn match nsisCallback "un\.onGUIEnd" +syn match nsisCallback "un\.onRebootFailed" +syn match nsisCallback "un\.onSelChange" syn match nsisCallback "un\.onUserAbort" -syn match nsisCallback "un\.onInstSuccess" -syn match nsisCallback "un\.onInstFailed" -syn match nsisCallback "un\.onVerifyInstDir" -syn match nsisCallback "un\.onNextPage" -"STATEMENTS - sections -syn keyword nsisStatement Section SectionIn SectionEnd SectionDivider -syn keyword nsisStatement AddSize +"COMPILER UTILITY (5.1) +syn match nsisInclude contained "!include\>" nextgroup=nsisIncludeOpt skipwhite +syn region nsisIncludeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIncludeKwd +syn match nsisIncludeKwd contained "/\%(NONFATAL\|CHARSET\)\>" + +syn match nsisSystem contained "!addincludedir\>" + +syn match nsisSystem contained "!addplugindir\>" nextgroup=nsisAddplugindirOpt skipwhite +syn region nsisAddplugindirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddplugindirKwd +syn match nsisAddplugindirKwd contained "/\%(x86-ansi\|x86-unicode\)\>" + +syn match nsisSystem contained "!appendfile\>" nextgroup=nsisAppendfileOpt skipwhite +syn region nsisAppendfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAppendfileKwd +syn match nsisAppendfileKwd contained "/\%(CHARSET\|RawNL\)\>" + +syn match nsisSystem contained "!cd\>" + +syn match nsisSystem contained "!delfile\>" nextgroup=nsisDelfileOpt skipwhite +syn region nsisDelfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDelfileKwd +syn match nsisDelfileKwd contained "/nonfatal\>" + +syn match nsisSystem contained "!echo\>" +syn match nsisSystem contained "!error\>" +syn match nsisSystem contained "!execute\>" +syn match nsisSystem contained "!makensis\>" +syn match nsisSystem contained "!packhdr\>" +syn match nsisSystem contained "!finalize\>" +syn match nsisSystem contained "!system\>" +syn match nsisSystem contained "!tempfile\>" +syn match nsisSystem contained "!getdllversion\>" +syn match nsisSystem contained "!warning\>" + +syn match nsisSystem contained "!pragma\>" nextgroup=nsisPragmaOpt skipwhite +syn region nsisPragmaOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPragmaKwd +syn keyword nsisPragmaKwd contained enable disable default push pop + +syn match nsisSystem contained "!verbose\>" nextgroup=nsisVerboseOpt skipwhite +syn region nsisVerboseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVerboseKwd +syn keyword nsisVerboseKwd contained push pop + +"PREPROCESSOR (5.4) +syn match nsisDefine contained "!define\>" nextgroup=nsisDefineOpt skipwhite +syn region nsisDefineOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd +syn match nsisDefineKwd contained "/\%(ifndef\|redef\|date\|utcdate\|math\|file\)\>" + +syn match nsisDefine contained "!undef\>" +syn match nsisPreCondit contained "!ifdef\>" +syn match nsisPreCondit contained "!ifndef\>" + +syn match nsisPreCondit contained "!if\>" nextgroup=nsisIfOpt skipwhite +syn region nsisIfOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIfKwd +syn match nsisIfKwd contained "/FileExists\>" -"STATEMENTS - functions -syn keyword nsisStatement Function FunctionEnd +syn match nsisPreCondit contained "!ifmacrodef\>" +syn match nsisPreCondit contained "!ifmacrondef\>" +syn match nsisPreCondit contained "!else\>" +syn match nsisPreCondit contained "!endif\>" +syn match nsisMacro contained "!insertmacro\>" +syn match nsisMacro contained "!macro\>" +syn match nsisMacro contained "!macroend\>" +syn match nsisMacro contained "!macroundef\>" -"STATEMENTS - pages -syn keyword nsisStatement Page UninstPage PageEx PageExEnc PageCallbacks +syn match nsisMacro contained "!searchparse\>" nextgroup=nsisSearchparseOpt skipwhite +syn region nsisSearchparseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchparseKwd +syn match nsisSearchparseKwd contained "/\%(ignorecase\|noerrors\|file\)\>" +syn match nsisMacro contained "!searchreplace\>" nextgroup=nsisSearchreplaceOpt skipwhite +syn region nsisSearchreplaceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchreplaceKwd +syn match nsisSearchreplaceKwd contained "/ignorecase\>" -"ERROR -syn keyword nsisError UninstallExeName " Define the default highlighting. @@ -225,32 +588,93 @@ syn keyword nsisError UninstallExeName hi def link nsisInstruction Function hi def link nsisComment Comment -hi def link nsisLocalLabel Label +hi def link nsisFirstComment Comment +hi def link nsisLocalLabel Label hi def link nsisGlobalLabel Label -hi def link nsisStatement Statement +hi def link nsisStatement Statement hi def link nsisString String hi def link nsisBoolean Boolean -hi def link nsisAttribOptions Constant -hi def link nsisExecShell Constant -hi def link nsisFileAttrib Constant -hi def link nsisMessageBox Constant -hi def link nsisRegistry Identifier +hi def link nsisOnOff Boolean +hi def link nsisFontKwd Constant +hi def link nsisLangKwd Constant +hi def link nsisPageKwd Constant +hi def link nsisPageExKwd Constant +hi def link nsisSectionKwd Constant +hi def link nsisSectionInKwd Constant +hi def link nsisSectionGroupKwd Constant +hi def link nsisVarKwd Constant +hi def link nsisAddBrandingImageKwd Constant +hi def link nsisBGGradientKwd Constant +hi def link nsisBrandingTextKwd Constant +hi def link nsisCRCCheckKwd Constant +hi def link nsisDirVerifyKwd Constant +hi def link nsisInstallColorsKwd Constant +hi def link nsisInstTypeKwd Constant +hi def link nsisLicenseBkColorKwd Constant +hi def link nsisLicenseForceSelectionKwd Constant +hi def link nsisManifestDPIAwareKwd Constant +hi def link nsisManifestSupportedOSKwd Constant +hi def link nsisRequestExecutionLevelKwd Constant +hi def link nsisShowInstDetailsKwd Constant +hi def link nsisSilentInstallKwd Constant +hi def link nsisSilentUnInstallKwd Constant +hi def link nsisSetCompressKwd Constant +hi def link nsisSetCompressorKwd Constant +hi def link nsisSetOverwriteKwd Constant +hi def link nsisDeleteKwd Constant +hi def link nsisExecShellKwd Constant +hi def link nsisFileKwd Constant +hi def link nsisReserveFileKwd Constant +hi def link nsisRMDirKwd Constant +hi def link nsisDeleteRegKeyKwd Constant +hi def link nsisWriteRegMultiStrKwd Constant +hi def link nsisSetRegViewKwd Constant +hi def link nsisCopyFilesKwd Constant +hi def link nsisCreateShortcutKwd Constant +hi def link nsisGetFullPathNameKwd Constant +hi def link nsisFileAttrib Constant +hi def link nsisMessageBox Constant +hi def link nsisFileWriteUTF16LEKwd Constant +hi def link nsisSetShellVarContextKwd Constant +hi def link nsisSendMessageKwd Constant +hi def link nsisSetBrandingImageKwd Constant +hi def link nsisSetDetailsViewKwd Constant +hi def link nsisSetDetailsPrintKwd Constant +hi def link nsisSetCtlColorsKwd Constant +hi def link nsisSetSilentKwd Constant +hi def link nsisRegistry Identifier hi def link nsisNumber Number hi def link nsisError Error hi def link nsisUserVar Identifier hi def link nsisSysVar Identifier -hi def link nsisAttribute Type -hi def link nsisCompiler Type +hi def link nsisAttribute Type +hi def link nsisCompiler Type +hi def link nsisVersionInfo Type hi def link nsisTodo Todo -hi def link nsisCallback Operator +hi def link nsisCallback Identifier " preprocessor commands hi def link nsisPreprocSubst PreProc +hi def link nsisPreprocLangStr PreProc +hi def link nsisPreprocEnvVar PreProc hi def link nsisDefine Define hi def link nsisMacro Macro -hi def link nsisPreCondit PreCondit +hi def link nsisPreCondit PreCondit hi def link nsisInclude Include hi def link nsisSystem PreProc +hi def link nsisLineContinuation Special +hi def link nsisIncludeKwd Constant +hi def link nsisAddplugindirKwd Constant +hi def link nsisAppendfileKwd Constant +hi def link nsisDelfileKwd Constant +hi def link nsisPragmaKwd Constant +hi def link nsisVerboseKwd Constant +hi def link nsisDefineKwd Constant +hi def link nsisIfKwd Constant +hi def link nsisSearchparseKwd Constant +hi def link nsisSearchreplaceKwd Constant let b:current_syntax = "nsis" +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/pike.vim b/runtime/syntax/pike.vim index ccd122c46c..2c34cb4f38 100644 --- a/runtime/syntax/pike.vim +++ b/runtime/syntax/pike.vim @@ -1,59 +1,184 @@ " Vim syntax file -" Language: Pike -" Maintainer: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it> -" Last Change: 2001 May 10 +" Language: Pike +" Maintainer: Stephen R. van den Berg <srb@cuci.nl> +" Maintainer of previous implementation: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it> +" Last Change: 2018 Jan 28 +" Version: 2.9 +" Remark: Derived from the C-syntax; fixed several bugs in the C-syntax +" Remark: and extended it with the Pike syntax. +" Remark: Includes a highlighter for all Pike types of parenthesis errors. +" Remark: Includes a highlighter for SQL on multiline strings. +" Remark: Includes a highlighter for any embedded Autodoc format. -" quit when a syntax file was already loaded +" Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") finish endif -" A bunch of useful C keywords -syn keyword pikeStatement goto break return continue -syn keyword pikeLabel case default -syn keyword pikeConditional if else switch -syn keyword pikeRepeat while for foreach do -syn keyword pikeStatement gauge destruct lambda inherit import typeof -syn keyword pikeException catch -syn keyword pikeType inline nomask private protected public static +let s:cpo_save = &cpo +set cpo&vim +" For multiline strings, try formatting them as SQL +syn include @pikeSQL <sfile>:p:h/sqloracle.vim +unlet b:current_syntax -syn keyword pikeTodo contained TODO FIXME XXX +" For embedded Autodoc documentation (WIP) +syn include @pikeAutodoc <sfile>:p:h/autodoc.vim +unlet b:current_syntax + +syn case match + +" Supports array, multiset, mapping multi-character delimiter matching +" Supports rotating amongst several same-level preprocessor conditionals +packadd! matchit +let b:match_words = "({:}\\@1<=),(\\[:]\\@1<=),(<:>\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>" + +" A bunch of useful Pike keywords +syn keyword pikeDebug gauge backtrace describe_backtrace werror _Static_assert static_assert +syn keyword pikeException error catch throw +syn keyword pikeLabel case default break return continue +syn keyword pikeConditional if else switch +syn keyword pikeRepeat while for foreach do + +syn keyword pikePredef RegGetKeyNames RegGetValue RegGetValues +syn keyword pikePredef __automap__ __empty_program +syn keyword pikePredef __handle_sprintf_format __parse_pike_type _disable_threads +syn keyword pikePredef _do_call_outs _exit _gdb_breakpoint +syn keyword pikePredef abs access acos acosh add_constant alarm all_constants +syn keyword pikePredef array_sscanf asin asinh atan atan2 atanh atexit +syn keyword pikePredef basetype call_function call_out call_out_info cd ceil +syn keyword pikePredef combine_path combine_path_nt +syn keyword pikePredef combine_path_unix compile copy_value cos cosh cpp crypt +syn keyword pikePredef ctime decode_value delay encode_value encode_value_canonic +syn keyword pikePredef enumerate errno exece exit exp file_stat file_truncate +syn keyword pikePredef filesystem_stat find_call_out floor fork function_name +syn keyword pikePredef function_object function_program gc +syn keyword pikePredef get_active_compilation_handler get_active_error_handler +syn keyword pikePredef get_all_groups get_all_users get_dir get_groups_for_user +syn keyword pikePredef get_iterator get_profiling_info get_weak_flag getcwd +syn keyword pikePredef getgrgid getgrnam gethrdtime gethrtime gethrvtime getpid +syn keyword pikePredef getpwnam getpwuid getxattr glob gmtime has_index has_prefix +syn keyword pikePredef has_suffix has_value hash hash_7_0 hash_7_4 hash_8_0 +syn keyword pikePredef hash_value kill limit listxattr load_module localtime +syn keyword pikePredef log lower_case master max min mkdir mktime mv +syn keyword pikePredef object_program pow query_num_arg random_seed +syn keyword pikePredef remove_call_out removexattr replace_master rm round +syn keyword pikePredef set_priority set_weak_flag setxattr sgn signal signame +syn keyword pikePredef signum sin sinh sleep sort sprintf sqrt sscanf strerror +syn keyword pikePredef string_filter_non_unicode string_to_unicode string_to_utf8 +syn keyword pikePredef tan tanh time trace types ualarm unicode_to_string +syn keyword pikePredef upper_case utf8_to_string version + +syn keyword pikePredef write lock try_lock +syn keyword pikePredef MutexKey Timestamp Date Time TimeTZ Interval Inet Range +syn keyword pikePredef Null null inf nan + +syn keyword pikeTodo contained TODO FIXME XXX + +" Match parengroups: allows for highlighting indices of mappings and +" highlighting semicolons that are out of place due to a paren imbalance +syn cluster pikePreShort contains=pikeDefine,pikePreProc,pikeCppOutWrapper,pikeCppInWrapper,pikePreCondit,pikePreConditMatch +syn cluster pikeExprGroup contains=pikeMappIndex,@pikeStmt,pikeNest,@pikeBadGroup,pikeSoftCast +syn match pikeWord transparent contained /[^()'"[\]{},;:]\+/ contains=ALLBUT,@pikePreProcGroup,@pikeExprGroup +syn match pikeFirstWord transparent display contained /^\s*#[^()'"[\]{},;:]\+/ contains=@pikePreShort +syn cluster pikeMappElm contains=pikeMappIndex,@pikeStmt +syn cluster pikeStmt contains=pikeFirstWord,pikeCharacter,pikeString,pikeMlString,pikeWord,pikeNest +syn cluster pikeBadGroup contains=pikeBadPClose,pikeBadAClose,pikeBadBClose,pikeBadSPClose,pikeBadSAClose,pikeBadSBClose,pikeBadSClose,pikeBadSPAClose,pikeBadSBAClose +syn match pikeBadPClose display contained "[}\]]" +syn match pikeBadAClose display contained "[)\]]" +syn match pikeBadBClose display contained "[)}]" +syn match pikeBadSPClose display contained "[;}\]]" +syn match pikeBadSAClose display contained "[;)\]]" +syn match pikeBadSPAClose display contained "[;\]]" +syn match pikeBadSBAClose display contained "[;}]" +syn match pikeBadSClose display contained "[;)}\]]" +syn region pikeNest transparent start="(\@1<!{" end="}" contains=@pikeStmt,pikeUserLabel,pikeBadAClose +syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<!([[{<]\@!" end=")" contains=@pikeStmt,pikeBadSPClose +syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<=(" end=")" contains=@pikeStmt,pikeBadPClose +syn region pikeNest transparent start="(\@1<!\[" end="]" contains=@pikeStmt,pikeBadSBClose +syn region pikeNest transparent start="(\zs\[" end="])" contains=@pikeMappElm,pikeBadSBAClose +" For some reason specifying a matchgroup on the pikeNest below makes it +" override the shorter variant; consider it a kludge, no idea why it works +syn region pikeNest transparent matchgroup=pikeSoftCast start=%(\zs\[[ \t\v\r\n.a-zA-Z0-9_():,|]\+])\@!% end=")" contains=@pikeStmt +syn region pikeNest transparent start="(\zs{" end="})" contains=@pikeStmt,pikeBadSPAClose +syn region pikeNest transparent start="(\zs<" end=">)" contains=@pikeStmt,pikeBadSPClose keepend + +" It's easy to accidentally add a space after a backslash that was intended +" for line continuation. Some compilers allow it, which makes it +" unpredictable and should be avoided. +syn match pikeBadContinuation contained "\\\s\+$" + +" pikeCommentGroup allows adding matches for special things in comments +syn cluster pikeCommentGroup contains=pikeTodo,pikeBadContinuation " String and Character constants " Highlight special characters (those which have a backslash) differently -syn match pikeSpecial contained "\\[0-7][0-7][0-7]\=\|\\." -syn region pikeString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial -syn match pikeCharacter "'[^\\]'" -syn match pikeSpecialCharacter "'\\.'" -syn match pikeSpecialCharacter "'\\[0-7][0-7]'" -syn match pikeSpecialCharacter "'\\[0-7][0-7][0-7]'" - -" Compound data types -syn region pikeCompoundType start='({' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='})' -syn region pikeCompoundType start='(\[' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='\])' -syn region pikeCompoundType start='(<' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='>)' - -"catch errors caused by wrong parenthesis -syn region pikeParen transparent start='([^{[<(]' end=')' contains=ALLBUT,pikeParenError,pikeIncluded,pikeSpecial,pikeTodo,pikeUserLabel,pikeBitField -syn match pikeParenError ")" -syn match pikeInParen contained "[^(][{}][^)]" +syn match pikeSpecial display contained "\\\%(x\x*\|d\d*\|\o\+\|u\x\{4}\|U\x\{8}\|[abefnrtv]\|$\)" + +" ISO C11 or ISO C++ 11 +if !exists("c_no_cformat") + " Highlight % items in strings. + syn match pikeFormat display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlLjzt]\|ll\|hh\)\=\%([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained + syn match pikeFormat display "%%" contained + syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,pikeFormat,@Spell keepend + syn region pikeMlString start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeFormat,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend +else + syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,@Spell + syn region pikeMlString transparent start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend +endif + +" Use SQL-syntax highlighting in multiline string if it starts with +" a standard SQL keyword +syn case ignore +" FIXME Use explicit newline match to cover up a bug in the regexp engine +" If the kludge is not used, the match will only start unless at least a space +" follows the initial doublequote on the first line (or the keyword is on +" the first line). +syn region pikeEmbeddedString contained start=+\%(#"\n\?\)\@2<=\_s*\%(SELECT\|INSERT\|UPDATE\|DELETE\|WITH\|CREATE\|DROP\|ALTER\)\>+ skip=+\\\\\|\\"+ end=+[\\#]\@1<!"+ contains=@pikeSQL,pikeBindings keepend +syn case match + +syn match pikeBindings display contained ":\@1<!:\I\i*" + +syn match pikeCharacter "'[^\\']'" contains=pikeDelimiterSQ +syn match pikeCharacter "'[^']*'" contains=pikeSpecial,pikeDelimiterSQ +syn match pikeSpecialError "'\\[^'\"?\\abefnrtv]'" +syn match pikeDelimiterDQ display +"+ contained +syn match pikeDelimiterSQ display +'+ contained + +"when wanted, highlight trailing white space +if exists("c_space_errors") + if !exists("c_no_trail_space_error") + syn match pikeSpaceError display excludenl "\s\+$" + endif + if !exists("c_no_tab_space_error") + syn match pikeSpaceError display " \+\ze\t" + endif +endif "integer number, or floating point number without a dot and with "f". syn case ignore -syn match pikeNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" +syn match pikeNumbers display transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctalError,pikeOctal +" Same, but without octal error (for comments) +syn match pikeNumbersCom display contained transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctal +syn match pikeNumber display contained "\<\d\+\%(u\=l\{0,2}\|ll\=u\)\>" +"hex number +syn match pikeNumber display contained "\<0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match pikeOctal display contained "\<0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=pikeOctalZero +syn match pikeOctalZero display contained "\<0" "floating point number, with dot, optional exponent -syn match pikeFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" +syn match pikeFloat display contained "\<\d\+\%(f\|\.[0-9.]\@!\d*\%(e[-+]\=\d\+\)\=[fl]\=\)" "floating point number, starting with a dot, optional exponent -syn match pikeFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +syn match pikeFloat display contained "[0-9.]\@1<!\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>" "floating point number, without dot, with exponent -syn match pikeFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" -"hex number -syn match pikeNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>" -"syn match pikeIdentifier "\<[a-z_][a-z0-9_]*\>" -syn case match +syn match pikeFloat display contained "\<\d\+e[-+]\=\d\+[fl]\=\>" + +"hexadecimal floating point number, two variants, with exponent +syn match pikeFloat display contained "\<0x\%(\x\+\.\?\|\x*\.\x\+\)p[-+]\=\d\+[fl]\=\>" + " flag an octal number with wrong digits -syn match pikeOctalError "\<0[0-7]*[89]" +syn match pikeOctalError display contained "\<0\o*[89]\d*" +syn case match if exists("c_comment_strings") " A comment can contain pikeString, pikeCharacter and pikeNumber. @@ -61,82 +186,201 @@ if exists("c_comment_strings") " need to use a special type of pikeString: pikeCommentString, which also ends on " "*/", and sees a "*" at the start of the line as comment again. " Unfortunately this doesn't very well work for // type of comments :-( - syntax match pikeCommentSkip contained "^\s*\*\($\|\s\+\)" - syntax region pikeCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=pikeSpecial,pikeCommentSkip - syntax region pikeComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial - syntax region pikeComment start="/\*" end="\*/" contains=pikeTodo,pikeCommentString,pikeCharacter,pikeNumber,pikeFloat - syntax match pikeComment "//.*" contains=pikeTodo,pikeComment2String,pikeCharacter,pikeNumber - syntax match pikeComment "#\!.*" contains=pikeTodo,pikeComment2String,pikeCharacter,pikeNumber + syn match pikeCommentSkip contained "^\s*\*\%($\|\s\+\)" + syn region pikeCommentString contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\ze\*/+ contains=pikeSpecial,pikeCommentSkip + syn region pikeComment2String contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial + syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeComment2String,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord + if exists("c_no_comment_fold") + " Use "extend" here to have preprocessor lines not terminate halfway a + " comment. + syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord + else + syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord + endif else - syn region pikeComment start="/\*" end="\*/" contains=pikeTodo - syn match pikeComment "//.*" contains=pikeTodo - syn match pikeComment "#!.*" contains=pikeTodo + syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord + if exists("c_no_comment_fold") + syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord + else + syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord + endif endif -syntax match pikeCommentError "\*/" +" keep a // comment separately, it terminates a preproc. conditional +syn match pikeCommentError display "\*/" +syn match pikeCommentStartError display "/\ze\*" contained + +syn keyword pikeOperator sizeof +syn keyword pikeOperator typeof _typeof _refs +syn keyword pikeOperator zero_type intp stringp arrayp mappingp multisetp +syn keyword pikeOperator objectp functionp programp callablep destructedp +syn keyword pikeOperator object_variablep undefinedp +syn keyword pikeOperator allocate equal +syn keyword pikeOperator aggregate aggregate_mapping aggregate_multiset +syn keyword pikeOperator map filter search replace reverse column rows +syn keyword pikeOperator indices values mkmapping mkmultiset m_delete sort +syn keyword pikeOperator m_delete destruct +syn keyword pikeOperator create _destruct _sprintf cast _encode _decode +syn keyword pikeOperator __hash _sizeof _values _indices __INIT _equal +syn keyword pikeOperator _is_type _m_delete _get_iterator _search +syn keyword pikeOperator _serialize _deserialize _sqrt _types _random +syn keyword pikeOperator _size_object + +syn keyword pikeType int void +syn keyword pikeType float +syn keyword pikeType bool string array mapping multiset mixed +syn keyword pikeType object function program auto + +syn keyword pikeType this this_object this_program +syn keyword pikeType sprintf_args sprintf_format sprintf_result +syn keyword pikeType strict_sprintf_format + +syn keyword pikeStructure class enum typedef inherit import +syn keyword pikeTypedef typedef +syn keyword pikeStorageClass private protected public constant final variant +syn keyword pikeStorageClass optional inline extern static __deprecated__ lambda -syn keyword pikeOperator sizeof -syn keyword pikeType int string void float mapping array multiset mixed -syn keyword pikeType program object function +syn keyword pikeConstant __LINE__ __FILE__ __DIR__ __DATE__ __TIME__ +syn keyword pikeConstant __AUTO_BIGNUM__ __NT__ +syn keyword pikeConstant __BUILD__ __COUNTER__ _MAJOR__ __MINOR__ __VERSION__ +syn keyword pikeConstant __REAL_BUILD__ _REAL_MAJOR__ __REAL_MINOR__ +syn keyword pikeConstant __REAL_VERSION__ __PIKE__ UNDEFINED -syn region pikePreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=pikeComment,pikeString,pikeCharacter,pikeNumber,pikeCommentError -syn region pikeIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ -syn match pikeIncluded contained "<[^>]*>" -syn match pikeInclude "^\s*#\s*include\>\s*["<]" contains=pikeIncluded -"syn match pikeLineSkip "\\$" -syn region pikeDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,pikePreCondit,pikeIncluded,pikeInclude,pikeDefine,pikeInParen -syn region pikePreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,pikePreCondit,pikeIncluded,pikeInclude,pikeDefine,pikeInParen +" These should actually only be parsed in preprocessor conditionals +syn keyword pikeCppOperator contained defined constant efun _Pragma + +syn keyword pikeBoolean true false + +syn match pikeCppPrefix display "^\s*\zs#\s*[a-z]\+" contained +syn region pikePreCondit start="^\s*#\s*\%(if\%(n\?def\)\?\|el\%(se\)\?if\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix +syn match pikePreConditMatch display "^\s*\zs#\s*\%(else\|endif\)\>" +if !exists("c_no_if0") + syn cluster pikeCppOutInGroup contains=pikeCppInIf,pikeCppInElse,pikeCppInElse2,pikeCppOutIf,pikeCppOutIf2,pikeCppOutElse,pikeCppInSkip,pikeCppOutSkip + syn region pikeCppOutWrapper start="^\s*\zs#\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=pikeCppOutIf,pikeCppOutElse,@NoSpell fold + syn region pikeCppOutIf contained start="0\+" matchgroup=pikeCppOutWrapper end="^\s*#\s*endif\>" contains=pikeCppOutIf2,pikeCppOutElse + if !exists("c_no_if0_fold") + syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell fold + else + syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell + endif + syn region pikeCppOutElse contained matchgroup=pikeCppOutWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit + syn region pikeCppInWrapper start="^\s*\zs#\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=pikeCppInIf,pikeCppInElse fold + syn region pikeCppInIf contained matchgroup=pikeCppInWrapper start="\d\+" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit + if !exists("c_no_if0_fold") + syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2 fold + else + syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2 + endif + syn region pikeCppInElse2 contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)\%([^/]\|/[^/*]\)*" end="^\ze\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip,@Spell + syn region pikeCppOutSkip contained start="^\s*#\s*if\%(n\?def\)\?\>" skip="\\$" end="^\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip + syn region pikeCppInSkip contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifn\?def\>\)" skip="\\$" end="^\s*#\s*endif\>" containedin=pikeCppOutElse,pikeCppInIf,pikeCppInSkip contains=TOP,pikePreProc +endif +syn region pikeIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeDelimiterDQ keepend +syn match pikeIncluded display contained "<[^>]*>" +syn match pikeInclude display "^\s*\zs#\s*include\>\s*["<]" contains=pikeIncluded +syn cluster pikePreProcGroup contains=pikeIncluded,pikeInclude,pikeEmbeddedString,pikeCppOutWrapper,pikeCppInWrapper,@pikeCppOutInGroup,pikeFormat,pikeMlString,pikeCommentStartError,@pikeBadGroup,pikeWord +syn region pikeDefine start="^\s*\zs#\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=@pikeStmt,@pikeBadGroup +syn region pikePreProc start="^\s*\zs#\s*\%(pragma\|charset\|pike\|require\|string\|line\|warning\|error\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix,@Spell,pikeConstant + +syn match pikeAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@pikeAutodoc containedin=pikeComment,pikeCommentL +syn cluster pikeCommentGroup add=pikeAutodocReal +syn cluster pikePreProcGroup add=pikeAutodocReal " Highlight User Labels -syn region pikeMulti transparent start='?' end=':' contains=ALLBUT,pikeIncluded,pikeSpecial,pikeTodo,pikeUserLabel,pikeBitField " Avoid matching foo::bar() in C++ by requiring that the next char is not ':' -syn match pikeUserLabel "^\s*\I\i*\s*:$" -syn match pikeUserLabel ";\s*\I\i*\s*:$"ms=s+1 -syn match pikeUserLabel "^\s*\I\i*\s*:[^:]"me=e-1 -syn match pikeUserLabel ";\s*\I\i*\s*:[^:]"ms=s+1,me=e-1 +syn match pikeUserLabel display "\%(^\|[{};]\)\zs\I\i*\s*\ze:\%([^:]\|$\)" contained contains=NONE +syn match pikeUserLabel display "\%(\<\%(break\|continue\)\_s\+\)\@10<=\I\i*" contained contains=NONE +syn match pikeUserLabel display "\%(\<case\)\@5<=\s\+[^<()[\]{},;:]\+\ze::\@!" contained contains=pikeDelimiterDQ,pikeDelimiterSQ -" Avoid recognizing most bitfields as labels -syn match pikeBitField "^\s*\I\i*\s*:\s*[1-9]"me=e-1 -syn match pikeBitField ";\s*\I\i*\s*:\s*[1-9]"me=e-1 +syn match pikeMappIndex display contained "[^<()[\]{},;:]\+\ze::\@!" contains=pikeDelimiterDQ,pikeDelimiterSQ +syn match pikeSoftCast display contained "\[[ \t\v\r\n.a-zA-Z0-9_():,|\+]" contains=NONE -syn sync ccomment pikeComment minlines=10 +if exists("c_minlines") + let b:c_minlines = c_minlines +else + if !exists("c_no_if0") + let b:c_minlines = 400 " #if 0 constructs can be long + else + let b:c_minlines = 200 " mostly for multiline strings + endif +endif +exec "syn sync ccomment pikeComment minlines=" . b:c_minlines +syn sync match pikeMlStringSync grouphere pikeMlString +^[^"#]\+#\"+ +syn sync match pikeAutodocSync grouphere pikeCommentL "^\s*//!" " Define the default highlighting. -" Only when an item doesn't have highlighting yet - +" Only used when an item doesn't have highlighting yet +hi def link pikeFormat SpecialChar +hi def link pikeMlString String +hi def link pikeCommentL Comment +hi def link pikeCommentStart Comment hi def link pikeLabel Label -hi def link pikeUserLabel Label +hi def link pikeUserLabel Identifier hi def link pikeConditional Conditional hi def link pikeRepeat Repeat -hi def link pikeCharacter Character -hi def link pikeSpecialCharacter pikeSpecial +hi def link pikeCharacter Character +hi def link pikeDelimiterDQ Delimiter +hi def link pikeDelimiterSQ Delimiter hi def link pikeNumber Number +hi def link pikeOctal Number +hi def link pikeOctalZero PreProc " link this to Error if you want hi def link pikeFloat Float -hi def link pikeOctalError pikeError -hi def link pikeParenError pikeError -hi def link pikeInParen pikeError -hi def link pikeCommentError pikeError -hi def link pikeOperator Operator +hi def link pikeOctalError Error +hi def link pikeCommentError Error +hi def link pikeCommentStartError Error +hi def link pikeSpaceError Error +hi def link pikeSpecialError Error +hi def link pikeOperator Operator +hi def link pikeCppOperator Operator +hi def link pikeStructure Structure +hi def link pikeTypedef Typedef +hi def link pikeStorageClass StorageClass hi def link pikeInclude Include +hi def link pikeCppPrefix PreCondit hi def link pikePreProc PreProc hi def link pikeDefine Macro -hi def link pikeIncluded pikeString +hi def link pikeIncluded String hi def link pikeError Error -hi def link pikeStatement Statement -hi def link pikePreCondit PreCondit +hi def link pikeDebug Debug +hi def link pikeException Exception +hi def link pikeStatement Statement hi def link pikeType Type -hi def link pikeCommentError pikeError -hi def link pikeCommentString pikeString -hi def link pikeComment2String pikeString -hi def link pikeCommentSkip pikeComment +hi def link pikeConstant Constant +hi def link pikeBoolean Boolean +hi def link pikeCommentString String +hi def link pikeComment2String String +hi def link pikeCommentSkip Comment hi def link pikeString String hi def link pikeComment Comment hi def link pikeSpecial SpecialChar hi def link pikeTodo Todo -hi def link pikeException pikeStatement -hi def link pikeCompoundType Constant -"hi def link pikeIdentifier Identifier +hi def link pikeBadContinuation Error + +hi def link pikeCppInWrapper PreCondit +hi def link pikeCppOutWrapper PreCondit +hi def link pikePreConditMatch PreCondit + +hi def link pikeCppOutSkip Comment +hi def link pikeCppInElse2 Comment +hi def link pikeCppOutIf2 Comment +hi def link pikeCppOut Comment +hi def link pikePredef Statement +hi def link pikeBindings Identifier +hi def link pikeMappIndex Identifier +hi def link pikeSoftCast Type +hi def link pikeBadGroup Error +hi def link pikeBadPClose Error +hi def link pikeBadAClose Error +hi def link pikeBadBClose Error +hi def link pikeBadSPClose Error +hi def link pikeBadSAClose Error +hi def link pikeBadSBClose Error +hi def link pikeBadSPAClose Error +hi def link pikeBadSBAClose Error +hi def link pikeBadSClose Error let b:current_syntax = "pike" +let &cpo = s:cpo_save +unlet s:cpo_save " vim: ts=8 diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim index b50b9c60e5..78472cdbfd 100644 --- a/runtime/syntax/readline.vim +++ b/runtime/syntax/readline.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: readline(3) configuration file +" Maintainer: Daniel Moch <daniel@danielmoch.com> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2017-06-25 +" Latest Revision: 2017-12-25 " readline_has_bash - if defined add support for bash specific " settings/functions @@ -152,6 +153,9 @@ syn keyword readlineVariable contained \ skipwhite \ comment-begin \ isearch-terminators + \ vi-cmd-mode-string + \ vi-ins-mode-string + \ emacs-mode-string syn keyword readlineVariable contained \ nextgroup=readlineNumber diff --git a/runtime/syntax/scheme.vim b/runtime/syntax/scheme.vim index af9a659e07..e209729f57 100644 --- a/runtime/syntax/scheme.vim +++ b/runtime/syntax/scheme.vim @@ -1,328 +1,464 @@ " Vim syntax file -" Language: Scheme (R5RS + some R6RS extras) -" Last Change: 2016 May 23 -" Maintainer: Sergey Khorev <sergey.khorev@gmail.com> -" Original author: Dirk van Deun <dirk@igwe.vub.ac.be> - -" This script incorrectly recognizes some junk input as numerals: -" parsing the complete system of Scheme numerals using the pattern -" language is practically impossible: I did a lax approximation. - -" MzScheme extensions can be activated with setting is_mzscheme variable - -" Suggestions and bug reports are solicited by the author. - -" Initializing: - -" quit when a syntax file was already loaded -if exists("b:current_syntax") +" Language: Scheme (R7RS) +" Last Change: 2018-01-06 +" Author: Evan Hanson <evhan@foldling.org> +" Maintainer: Evan Hanson <evhan@foldling.org> +" Previous Author: Dirk van Deun <dirk@igwe.vub.ac.be> +" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com> +" URL: https://foldling.org/vim/syntax/scheme.vim + +if exists('b:current_syntax') finish endif -let s:cpo_save = &cpo +let s:cpo = &cpo set cpo&vim -syn case ignore - -" Fascist highlighting: everything that doesn't fit the rules is an error... - -syn match schemeError ![^ \t()\[\]";]*! -syn match schemeError ")" - -" Quoted and backquoted stuff - -syn region schemeQuoted matchgroup=Delimiter start="['`]" end=![ \t()\[\]";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc - -syn region schemeQuoted matchgroup=Delimiter start="['`](" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeQuoted matchgroup=Delimiter start="['`]#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc - -syn region schemeStrucRestricted matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeStrucRestricted matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc - -" Popular Scheme extension: -" using [] as well as () -syn region schemeStrucRestricted matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeStrucRestricted matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc - -syn region schemeUnquote matchgroup=Delimiter start="," end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeUnquote matchgroup=Delimiter start=",@" end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc - -syn region schemeUnquote matchgroup=Delimiter start=",(" end=")" contains=ALL -syn region schemeUnquote matchgroup=Delimiter start=",@(" end=")" contains=ALL - -syn region schemeUnquote matchgroup=Delimiter start=",#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeUnquote matchgroup=Delimiter start=",@#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc - -syn region schemeUnquote matchgroup=Delimiter start=",\[" end="\]" contains=ALL -syn region schemeUnquote matchgroup=Delimiter start=",@\[" end="\]" contains=ALL - -syn region schemeUnquote matchgroup=Delimiter start=",#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc -syn region schemeUnquote matchgroup=Delimiter start=",@#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc - -" R5RS Scheme Functions and Syntax: - -setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_ - -syn keyword schemeSyntax lambda and or if cond case define let let* letrec -syn keyword schemeSyntax begin do delay set! else => -syn keyword schemeSyntax quote quasiquote unquote unquote-splicing -syn keyword schemeSyntax define-syntax let-syntax letrec-syntax syntax-rules -" R6RS -syn keyword schemeSyntax define-record-type fields protocol - -syn keyword schemeFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car! -syn keyword schemeFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr -syn keyword schemeFunc cdaar cdadr cddar cdddr caaaar caaadr caadar caaddr -syn keyword schemeFunc cadaar cadadr caddar cadddr cdaaar cdaadr cdadar cdaddr -syn keyword schemeFunc cddaar cddadr cdddar cddddr null? list? list length -syn keyword schemeFunc append reverse list-ref memq memv member assq assv assoc -syn keyword schemeFunc symbol? symbol->string string->symbol number? complex? -syn keyword schemeFunc real? rational? integer? exact? inexact? = < > <= >= -syn keyword schemeFunc zero? positive? negative? odd? even? max min + * - / abs -syn keyword schemeFunc quotient remainder modulo gcd lcm numerator denominator -syn keyword schemeFunc floor ceiling truncate round rationalize exp log sin cos -syn keyword schemeFunc tan asin acos atan sqrt expt make-rectangular make-polar -syn keyword schemeFunc real-part imag-part magnitude angle exact->inexact -syn keyword schemeFunc inexact->exact number->string string->number char=? -syn keyword schemeFunc char-ci=? char<? char-ci<? char>? char-ci>? char<=? -syn keyword schemeFunc char-ci<=? char>=? char-ci>=? char-alphabetic? char? -syn keyword schemeFunc char-numeric? char-whitespace? char-upper-case? -syn keyword schemeFunc char-lower-case? -syn keyword schemeFunc char->integer integer->char char-upcase char-downcase -syn keyword schemeFunc string? make-string string string-length string-ref -syn keyword schemeFunc string-set! string=? string-ci=? string<? string-ci<? -syn keyword schemeFunc string>? string-ci>? string<=? string-ci<=? string>=? -syn keyword schemeFunc string-ci>=? substring string-append vector? make-vector -syn keyword schemeFunc vector vector-length vector-ref vector-set! procedure? -syn keyword schemeFunc apply map for-each call-with-current-continuation -syn keyword schemeFunc call-with-input-file call-with-output-file input-port? -syn keyword schemeFunc output-port? current-input-port current-output-port -syn keyword schemeFunc open-input-file open-output-file close-input-port -syn keyword schemeFunc close-output-port eof-object? read read-char peek-char -syn keyword schemeFunc write display newline write-char call/cc -syn keyword schemeFunc list-tail string->list list->string string-copy -syn keyword schemeFunc string-fill! vector->list list->vector vector-fill! -syn keyword schemeFunc force with-input-from-file with-output-to-file -syn keyword schemeFunc char-ready? load transcript-on transcript-off eval -syn keyword schemeFunc dynamic-wind port? values call-with-values -syn keyword schemeFunc scheme-report-environment null-environment -syn keyword schemeFunc interaction-environment -" R6RS -syn keyword schemeFunc make-eq-hashtable make-eqv-hashtable make-hashtable -syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set! -syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update! -syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys -syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function -syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash -syn keyword schemeFunc find for-all exists filter partition fold-left fold-right -syn keyword schemeFunc remp remove remv remq memp assp cons* - -" ... so that a single + or -, inside a quoted context, would not be -" interpreted as a number (outside such contexts, it's a schemeFunc) - -syn match schemeDelimiter !\.[ \t\[\]()";]!me=e-1 -syn match schemeDelimiter !\.$! -" ... and a single dot is not a number but a delimiter - -" This keeps all other stuff unhighlighted, except *stuff* and <stuff>: - -syn match schemeOther ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*, -syn match schemeError ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*, - -syn match schemeOther "\.\.\." -syn match schemeError !\.\.\.[^ \t\[\]()";]\+! -" ... a special identifier - -syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*[ \t\[\]()";],me=e-1 -syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*$, -syn match schemeError ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*, +syn match schemeParentheses "[^ '`\t\n()\[\]";]\+" +syn match schemeParentheses "[)\]]" -syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1 -syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$, -syn match schemeError ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*, +syn match schemeIdentifier /[^ '`\t\n()\[\]"|;][^ '`\t\n()\[\]"|;]*/ -" Non-quoted lists, and strings: +syn region schemeQuote matchgroup=schemeData start=/'[`']*/ end=/[ \t\n()\[\]";]/me=e-1 +syn region schemeQuote matchgroup=schemeData start=/'['`]*"/ skip=/\\[\\"]/ end=/"/ +syn region schemeQuote matchgroup=schemeData start=/'['`]*|/ skip=/\\[\\|]/ end=/|/ +syn region schemeQuote matchgroup=schemeData start=/'['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster -syn region schemeStruc matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALL -syn region schemeStruc matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALL +syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*/ end=/[ \t\n()\[\]";]/me=e-1 +syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuote,schemeQuoteForm,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster -syn region schemeStruc matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALL -syn region schemeStruc matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALL +syn region schemeUnquote matchgroup=schemeParentheses start=/,/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster +syn region schemeUnquote matchgroup=schemeParentheses start=/,@/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster +syn region schemeUnquote matchgroup=schemeParentheses start=/,(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster +syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster -" Simple literals: -syn region schemeString start=+\%(\\\)\@<!"+ skip=+\\[\\"]+ end=+"+ contains=@Spell +syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster +syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster -" Comments: +syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/ +syn region schemeSymbol start=/\(\\\)\@<!|/ skip=/\\[\\|]/ end=/|/ -syn match schemeComment ";.*$" contains=@Spell +syn match schemeNumber /\(#[dbeio]\)*[+\-]*\([0-9]\+\|inf.0\|nan.0\)\(\/\|\.\)\?[0-9+\-@\ilns]*\>/ +syn match schemeNumber /#x[+\-]*[0-9a-fA-F]\+\>/ +syn match schemeBoolean /#t\(rue\)\?/ +syn match schemeBoolean /#f\(alse\)\?/ -" Writing out the complete description of Scheme numerals without -" using variables is a day's work for a trained secretary... +syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/ +syn match schemeCharacter /#\\x[0-9a-fA-F]\+/ -syn match schemeOther ![+-][ \t\[\]()";]!me=e-1 -syn match schemeOther ![+-]$! -" -" This is a useful lax approximation: -syn match schemeNumber "[-#+.]\=[0-9][-#+/0-9a-f@i.boxesfdl]*" -syn match schemeError ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*! +syn match schemeComment /;.*$/ -syn match schemeBoolean "#[tf]" -syn match schemeError !#[tf][^ \t\[\]()";]\+! +syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment -syn match schemeCharacter "#\\" -syn match schemeCharacter "#\\." -syn match schemeError !#\\.[^ \t\[\]()";]\+! -syn match schemeCharacter "#\\space" -syn match schemeError !#\\space[^ \t\[\]()";]\+! -syn match schemeCharacter "#\\newline" -syn match schemeError !#\\newline[^ \t\[\]()";]\+! +syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster +syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster -" R6RS -syn match schemeCharacter "#\\x[0-9a-fA-F]\+" +syn region schemeVector matchgroup=schemeData start="#(" end=")" contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster +syn region schemeVector matchgroup=schemeData start="#[fsu]\d\+(" end=")" contains=schemeNumber,schemeComment,schemeDatumComment - -if exists("b:is_mzscheme") || exists("is_mzscheme") - " MzScheme extensions - " multiline comment - syn region schemeComment start="#|" end="|#" contains=@Spell - - " #%xxx are the special MzScheme identifiers - syn match schemeOther "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+" - " anything limited by |'s is identifier - syn match schemeOther "|[^|]\+|" - - syn match schemeCharacter "#\\\%(return\|tab\)" - - " Modules require stmt - syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename - " modules provide stmt - syn keyword schemeExtSyntax provide struct all-from all-from-except all-defined all-defined-except - " Other from MzScheme - syn keyword schemeExtSyntax with-handlers when unless instantiate define-struct case-lambda syntax-case - syn keyword schemeExtSyntax free-identifier=? bound-identifier=? module-identifier=? syntax-object->datum - syn keyword schemeExtSyntax datum->syntax-object - syn keyword schemeExtSyntax let-values let*-values letrec-values set!-values fluid-let parameterize begin0 - syn keyword schemeExtSyntax error raise opt-lambda define-values unit unit/sig define-signature - syn keyword schemeExtSyntax invoke-unit/sig define-values/invoke-unit/sig compound-unit/sig import export - syn keyword schemeExtSyntax link syntax quasisyntax unsyntax with-syntax - - syn keyword schemeExtFunc format system-type current-extension-compiler current-extension-linker - syn keyword schemeExtFunc use-standard-linker use-standard-compiler - syn keyword schemeExtFunc find-executable-path append-object-suffix append-extension-suffix - syn keyword schemeExtFunc current-library-collection-paths current-extension-compiler-flags make-parameter - syn keyword schemeExtFunc current-directory build-path normalize-path current-extension-linker-flags - syn keyword schemeExtFunc file-exists? directory-exists? delete-directory/files delete-directory delete-file - syn keyword schemeExtFunc system compile-file system-library-subpath getenv putenv current-standard-link-libraries - syn keyword schemeExtFunc remove* file-size find-files fold-files directory-list shell-execute split-path - syn keyword schemeExtFunc current-error-port process/ports process printf fprintf open-input-string open-output-string - syn keyword schemeExtFunc get-output-string - " exceptions - syn keyword schemeExtFunc exn exn:application:arity exn:application:continuation exn:application:fprintf:mismatch - syn keyword schemeExtFunc exn:application:mismatch exn:application:type exn:application:mismatch exn:break exn:i/o:filesystem exn:i/o:port - syn keyword schemeExtFunc exn:i/o:port:closed exn:i/o:tcp exn:i/o:udp exn:misc exn:misc:application exn:misc:unsupported exn:module exn:read - syn keyword schemeExtFunc exn:read:non-char exn:special-comment exn:syntax exn:thread exn:user exn:variable exn:application:mismatch - syn keyword schemeExtFunc exn? exn:application:arity? exn:application:continuation? exn:application:fprintf:mismatch? exn:application:mismatch? - syn keyword schemeExtFunc exn:application:type? exn:application:mismatch? exn:break? exn:i/o:filesystem? exn:i/o:port? exn:i/o:port:closed? - syn keyword schemeExtFunc exn:i/o:tcp? exn:i/o:udp? exn:misc? exn:misc:application? exn:misc:unsupported? exn:module? exn:read? exn:read:non-char? - syn keyword schemeExtFunc exn:special-comment? exn:syntax? exn:thread? exn:user? exn:variable? exn:application:mismatch? - " Command-line parsing - syn keyword schemeExtFunc command-line current-command-line-arguments once-any help-labels multi once-each - - " syntax quoting, unquoting and quasiquotation - syn region schemeUnquote matchgroup=Delimiter start="#," end=![ \t\[\]()";]!me=e-1 contains=ALL - syn region schemeUnquote matchgroup=Delimiter start="#,@" end=![ \t\[\]()";]!me=e-1 contains=ALL - syn region schemeUnquote matchgroup=Delimiter start="#,(" end=")" contains=ALL - syn region schemeUnquote matchgroup=Delimiter start="#,@(" end=")" contains=ALL - syn region schemeUnquote matchgroup=Delimiter start="#,\[" end="\]" contains=ALL - syn region schemeUnquote matchgroup=Delimiter start="#,@\[" end="\]" contains=ALL - syn region schemeQuoted matchgroup=Delimiter start="#['`]" end=![ \t()\[\]";]!me=e-1 contains=ALL - syn region schemeQuoted matchgroup=Delimiter start="#['`](" matchgroup=Delimiter end=")" contains=ALL - - " Identifiers are very liberal in MzScheme/Racket - syn match schemeOther ![^()[\]{}",'`;#|\\ ]\+! - - " Language setting - syn match schemeLang "#lang [-+_/A-Za-z0-9]\+\>" - - " Various number forms - syn match schemeNumber "[-+]\=[0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\>" - syn match schemeNumber "[-+]\=\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>" - syn match schemeNumber "[-+]\=[0-9]\+/[0-9]\+\>" - syn match schemeNumber "\([-+]\=\([0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\|[0-9]\+/[0-9]\+\)\)\=[-+]\([0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\|[0-9]\+/[0-9]\+\)\=i\>" +if exists('g:is_chicken') || exists('b:is_chicken') + syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\|import-syntax\|use\|require-extension\)\(-for-syntax\)\?\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment +else + syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment endif - -if exists("b:is_chicken") || exists("is_chicken") - " multiline comment - syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=@Spell,schemeMultilineComment - - syn match schemeOther "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+" - syn match schemeExtSyntax "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+" - - syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec - syn keyword schemeExtSyntax foreign-lambda foreign-lambda* define-external define-macro load-library - syn keyword schemeExtSyntax let-values let*-values letrec-values ->string require-extension - syn keyword schemeExtSyntax let-optionals let-optionals* define-foreign-variable define-record - syn keyword schemeExtSyntax pointer tag-pointer tagged-pointer? define-foreign-type - syn keyword schemeExtSyntax require require-for-syntax cond-expand and-let* receive argc+argv - syn keyword schemeExtSyntax fixnum? fx= fx> fx< fx>= fx<= fxmin fxmax - syn keyword schemeExtFunc ##core#inline ##sys#error ##sys#update-errno - - " here-string - syn region schemeString start=+#<<\s*\z(.*\)+ end=+^\z1$+ contains=@Spell - - if filereadable(expand("<sfile>:p:h")."/cpp.vim") - unlet! b:current_syntax - syn include @ChickenC <sfile>:p:h/cpp.vim - syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-declare "+ end=+")\@=+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+foreign-declare\s*#<<\z(.*\)$+hs=s+15 end=+^\z1$+ contains=@ChickenC - syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse "+ end=+")\@=+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+foreign-parse\s*#<<\z(.*\)$+hs=s+13 end=+^\z1$+ contains=@ChickenC - syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse/spec "+ end=+")\@=+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+foreign-parse/spec\s*#<<\z(.*\)$+hs=s+18 end=+^\z1$+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+#>+ end=+<#+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+#>?+ end=+<#+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+#>!+ end=+<#+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+#>\$+ end=+<#+ contains=@ChickenC - syn region ChickenC matchgroup=schemeComment start=+#>%+ end=+<#+ contains=@ChickenC - endif - - " suggested by Alex Queiroz - syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+" - syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+ contains=@Spell +syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\|srfi\)\>" +syn region schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster +syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword + +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*/ end=/[ \t\n()\[\]";]/me=e-1 +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*"/ skip=/\\[\\"]/ end=/"/ +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*|/ skip=/\\[\\|]/ end=/|/ +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*\(#\([usf]\d\+\)\?\)\?(/ end=/)/ contains=schemeDatumCommentForm +syn region schemeDatumCommentForm start="(" end=")" contained contains=schemeDatumCommentForm + +syn cluster schemeSyntaxCluster contains=schemeFunction,schemeKeyword,schemeSyntax,schemeExtraSyntax,schemeLibrarySyntax,schemeSyntaxSyntax + +syn keyword schemeLibrarySyntax define-library +syn keyword schemeLibrarySyntax export +syn keyword schemeLibrarySyntax include +syn keyword schemeLibrarySyntax include-ci +syn keyword schemeLibrarySyntax include-library-declarations +syn keyword schemeLibrarySyntax library +syn keyword schemeLibrarySyntax cond-expand + +syn keyword schemeSyntaxSyntax define-syntax +syn keyword schemeSyntaxSyntax let-syntax +syn keyword schemeSyntaxSyntax letrec-syntax +syn keyword schemeSyntaxSyntax syntax-rules + +syn keyword schemeSyntax => +syn keyword schemeSyntax and +syn keyword schemeSyntax begin +syn keyword schemeSyntax case +syn keyword schemeSyntax case-lambda +syn keyword schemeSyntax cond +syn keyword schemeSyntax define +syn keyword schemeSyntax define-record-type +syn keyword schemeSyntax define-values +syn keyword schemeSyntax delay +syn keyword schemeSyntax delay-force +syn keyword schemeSyntax do +syn keyword schemeSyntax else +syn keyword schemeSyntax guard +syn keyword schemeSyntax if +syn keyword schemeSyntax lambda +syn keyword schemeSyntax let +syn keyword schemeSyntax let* +syn keyword schemeSyntax let*-values +syn keyword schemeSyntax let-values +syn keyword schemeSyntax letrec +syn keyword schemeSyntax letrec* +syn keyword schemeSyntax or +syn keyword schemeSyntax parameterize +syn keyword schemeSyntax quasiquote +syn keyword schemeSyntax quote +syn keyword schemeSyntax set! +syn keyword schemeSyntax unless +syn keyword schemeSyntax unquote +syn keyword schemeSyntax unquote-splicing +syn keyword schemeSyntax when + +syn keyword schemeFunction * +syn keyword schemeFunction + +syn keyword schemeFunction - +syn keyword schemeFunction / +syn keyword schemeFunction < +syn keyword schemeFunction <= +syn keyword schemeFunction = +syn keyword schemeFunction > +syn keyword schemeFunction >= +syn keyword schemeFunction abs +syn keyword schemeFunction acos +syn keyword schemeFunction acos +syn keyword schemeFunction angle +syn keyword schemeFunction append +syn keyword schemeFunction apply +syn keyword schemeFunction asin +syn keyword schemeFunction assoc +syn keyword schemeFunction assq +syn keyword schemeFunction assv +syn keyword schemeFunction atan +syn keyword schemeFunction binary-port? +syn keyword schemeFunction boolean=? +syn keyword schemeFunction boolean? +syn keyword schemeFunction bytevector +syn keyword schemeFunction bytevector-append +syn keyword schemeFunction bytevector-append +syn keyword schemeFunction bytevector-copy +syn keyword schemeFunction bytevector-copy! +syn keyword schemeFunction bytevector-length +syn keyword schemeFunction bytevector-u8-ref +syn keyword schemeFunction bytevector-u8-set! +syn keyword schemeFunction bytevector? +syn keyword schemeFunction caaaar +syn keyword schemeFunction caaadr +syn keyword schemeFunction caaar +syn keyword schemeFunction caadar +syn keyword schemeFunction caaddr +syn keyword schemeFunction caadr +syn keyword schemeFunction caar +syn keyword schemeFunction cadaar +syn keyword schemeFunction cadadr +syn keyword schemeFunction cadar +syn keyword schemeFunction caddar +syn keyword schemeFunction cadddr +syn keyword schemeFunction caddr +syn keyword schemeFunction cadr +syn keyword schemeFunction call-with-current-continuation +syn keyword schemeFunction call-with-input-file +syn keyword schemeFunction call-with-output-file +syn keyword schemeFunction call-with-port +syn keyword schemeFunction call-with-values +syn keyword schemeFunction call/cc +syn keyword schemeFunction car +syn keyword schemeFunction cdaaar +syn keyword schemeFunction cdaadr +syn keyword schemeFunction cdaar +syn keyword schemeFunction cdadar +syn keyword schemeFunction cdaddr +syn keyword schemeFunction cdadr +syn keyword schemeFunction cdar +syn keyword schemeFunction cddaar +syn keyword schemeFunction cddadr +syn keyword schemeFunction cddar +syn keyword schemeFunction cdddar +syn keyword schemeFunction cddddr +syn keyword schemeFunction cdddr +syn keyword schemeFunction cddr +syn keyword schemeFunction cdr +syn keyword schemeFunction ceiling +syn keyword schemeFunction char->integer +syn keyword schemeFunction char-alphabetic? +syn keyword schemeFunction char-ci<=? +syn keyword schemeFunction char-ci<? +syn keyword schemeFunction char-ci=? +syn keyword schemeFunction char-ci>=? +syn keyword schemeFunction char-ci>? +syn keyword schemeFunction char-downcase +syn keyword schemeFunction char-foldcase +syn keyword schemeFunction char-lower-case? +syn keyword schemeFunction char-numeric? +syn keyword schemeFunction char-ready? +syn keyword schemeFunction char-upcase +syn keyword schemeFunction char-upper-case? +syn keyword schemeFunction char-whitespace? +syn keyword schemeFunction char<=? +syn keyword schemeFunction char<? +syn keyword schemeFunction char=? +syn keyword schemeFunction char>=? +syn keyword schemeFunction char>? +syn keyword schemeFunction char? +syn keyword schemeFunction close-input-port +syn keyword schemeFunction close-output-port +syn keyword schemeFunction close-port +syn keyword schemeFunction command-line +syn keyword schemeFunction complex? +syn keyword schemeFunction cons +syn keyword schemeFunction cos +syn keyword schemeFunction current-error-port +syn keyword schemeFunction current-input-port +syn keyword schemeFunction current-jiffy +syn keyword schemeFunction current-output-port +syn keyword schemeFunction current-second +syn keyword schemeFunction delete-file +syn keyword schemeFunction denominator +syn keyword schemeFunction digit-value +syn keyword schemeFunction display +syn keyword schemeFunction dynamic-wind +syn keyword schemeFunction emergency-exit +syn keyword schemeFunction environment +syn keyword schemeFunction eof-object +syn keyword schemeFunction eof-object? +syn keyword schemeFunction eq? +syn keyword schemeFunction equal? +syn keyword schemeFunction eqv? +syn keyword schemeFunction error +syn keyword schemeFunction error-object-irritants +syn keyword schemeFunction error-object-message +syn keyword schemeFunction error-object? +syn keyword schemeFunction eval +syn keyword schemeFunction even? +syn keyword schemeFunction exact +syn keyword schemeFunction exact->inexact +syn keyword schemeFunction exact-integer-sqrt +syn keyword schemeFunction exact-integer? +syn keyword schemeFunction exact? +syn keyword schemeFunction exit +syn keyword schemeFunction exp +syn keyword schemeFunction expt +syn keyword schemeFunction features +syn keyword schemeFunction file-error? +syn keyword schemeFunction file-exists? +syn keyword schemeFunction finite? +syn keyword schemeFunction floor +syn keyword schemeFunction floor-quotient +syn keyword schemeFunction floor-remainder +syn keyword schemeFunction floor/ +syn keyword schemeFunction flush-output-port +syn keyword schemeFunction for-each +syn keyword schemeFunction force +syn keyword schemeFunction gcd +syn keyword schemeFunction get-environment-variable +syn keyword schemeFunction get-environment-variables +syn keyword schemeFunction get-output-bytevector +syn keyword schemeFunction get-output-string +syn keyword schemeFunction imag-part +syn keyword schemeFunction inexact +syn keyword schemeFunction inexact->exact +syn keyword schemeFunction inexact? +syn keyword schemeFunction infinite? +syn keyword schemeFunction input-port-open? +syn keyword schemeFunction input-port? +syn keyword schemeFunction integer->char +syn keyword schemeFunction integer? +syn keyword schemeFunction interaction-environment +syn keyword schemeFunction jiffies-per-second +syn keyword schemeFunction lcm +syn keyword schemeFunction length +syn keyword schemeFunction list +syn keyword schemeFunction list->string +syn keyword schemeFunction list->vector +syn keyword schemeFunction list-copy +syn keyword schemeFunction list-ref +syn keyword schemeFunction list-set! +syn keyword schemeFunction list-tail +syn keyword schemeFunction list? +syn keyword schemeFunction load +syn keyword schemeFunction log +syn keyword schemeFunction magnitude +syn keyword schemeFunction make-bytevector +syn keyword schemeFunction make-list +syn keyword schemeFunction make-parameter +syn keyword schemeFunction make-polar +syn keyword schemeFunction make-promise +syn keyword schemeFunction make-rectangular +syn keyword schemeFunction make-string +syn keyword schemeFunction make-vector +syn keyword schemeFunction map +syn keyword schemeFunction max +syn keyword schemeFunction member +syn keyword schemeFunction memq +syn keyword schemeFunction memv +syn keyword schemeFunction min +syn keyword schemeFunction modulo +syn keyword schemeFunction nan? +syn keyword schemeFunction negative? +syn keyword schemeFunction newline +syn keyword schemeFunction not +syn keyword schemeFunction null-environment +syn keyword schemeFunction null? +syn keyword schemeFunction number->string +syn keyword schemeFunction number? +syn keyword schemeFunction numerator +syn keyword schemeFunction odd? +syn keyword schemeFunction open-binary-input-file +syn keyword schemeFunction open-binary-output-file +syn keyword schemeFunction open-input-bytevector +syn keyword schemeFunction open-input-file +syn keyword schemeFunction open-input-string +syn keyword schemeFunction open-output-bytevector +syn keyword schemeFunction open-output-file +syn keyword schemeFunction open-output-string +syn keyword schemeFunction output-port-open? +syn keyword schemeFunction output-port? +syn keyword schemeFunction pair? +syn keyword schemeFunction peek-char +syn keyword schemeFunction peek-u8 +syn keyword schemeFunction port? +syn keyword schemeFunction positive? +syn keyword schemeFunction procedure? +syn keyword schemeFunction promise? +syn keyword schemeFunction quotient +syn keyword schemeFunction raise +syn keyword schemeFunction raise-continuable +syn keyword schemeFunction rational? +syn keyword schemeFunction rationalize +syn keyword schemeFunction read +syn keyword schemeFunction read-bytevector +syn keyword schemeFunction read-bytevector! +syn keyword schemeFunction read-char +syn keyword schemeFunction read-error? +syn keyword schemeFunction read-line +syn keyword schemeFunction read-string +syn keyword schemeFunction read-u8 +syn keyword schemeFunction real-part +syn keyword schemeFunction real? +syn keyword schemeFunction remainder +syn keyword schemeFunction reverse +syn keyword schemeFunction round +syn keyword schemeFunction scheme-report-environment +syn keyword schemeFunction set-car! +syn keyword schemeFunction set-cdr! +syn keyword schemeFunction sin +syn keyword schemeFunction sqrt +syn keyword schemeFunction square +syn keyword schemeFunction string +syn keyword schemeFunction string->list +syn keyword schemeFunction string->number +syn keyword schemeFunction string->symbol +syn keyword schemeFunction string->utf8 +syn keyword schemeFunction string->vector +syn keyword schemeFunction string-append +syn keyword schemeFunction string-ci<=? +syn keyword schemeFunction string-ci<? +syn keyword schemeFunction string-ci=? +syn keyword schemeFunction string-ci>=? +syn keyword schemeFunction string-ci>? +syn keyword schemeFunction string-copy +syn keyword schemeFunction string-copy! +syn keyword schemeFunction string-downcase +syn keyword schemeFunction string-fill! +syn keyword schemeFunction string-foldcase +syn keyword schemeFunction string-for-each +syn keyword schemeFunction string-length +syn keyword schemeFunction string-map +syn keyword schemeFunction string-ref +syn keyword schemeFunction string-set! +syn keyword schemeFunction string-upcase +syn keyword schemeFunction string<=? +syn keyword schemeFunction string<? +syn keyword schemeFunction string=? +syn keyword schemeFunction string>=? +syn keyword schemeFunction string>? +syn keyword schemeFunction string? +syn keyword schemeFunction substring +syn keyword schemeFunction symbol->string +syn keyword schemeFunction symbol=? +syn keyword schemeFunction symbol? +syn keyword schemeFunction syntax-error +syn keyword schemeFunction tan +syn keyword schemeFunction textual-port? +syn keyword schemeFunction transcript-off +syn keyword schemeFunction transcript-on +syn keyword schemeFunction truncate +syn keyword schemeFunction truncate-quotient +syn keyword schemeFunction truncate-remainder +syn keyword schemeFunction truncate/ +syn keyword schemeFunction u8-ready? +syn keyword schemeFunction utf8->string +syn keyword schemeFunction values +syn keyword schemeFunction vector +syn keyword schemeFunction vector->list +syn keyword schemeFunction vector->string +syn keyword schemeFunction vector-append +syn keyword schemeFunction vector-copy +syn keyword schemeFunction vector-copy! +syn keyword schemeFunction vector-fill! +syn keyword schemeFunction vector-for-each +syn keyword schemeFunction vector-length +syn keyword schemeFunction vector-map +syn keyword schemeFunction vector-ref +syn keyword schemeFunction vector-set! +syn keyword schemeFunction vector? +syn keyword schemeFunction with-exception-handler +syn keyword schemeFunction with-input-from-file +syn keyword schemeFunction with-output-to-file +syn keyword schemeFunction write +syn keyword schemeFunction write-bytevector +syn keyword schemeFunction write-char +syn keyword schemeFunction write-shared +syn keyword schemeFunction write-simple +syn keyword schemeFunction write-string +syn keyword schemeFunction write-u8 +syn keyword schemeFunction zero? + +hi def link schemeBoolean Boolean +hi def link schemeCharacter Character +hi def link schemeComment Comment +hi def link schemeConstant Constant +hi def link schemeData Delimiter +hi def link schemeDatumComment Comment +hi def link schemeDatumCommentForm Comment +hi def link schemeDelimiter Delimiter +hi def link schemeError Error +hi def link schemeExtraSyntax Underlined +hi def link schemeFunction Function +hi def link schemeIdentifier Normal +hi def link schemeImport PreProc +hi def link schemeImportKeyword PreProc +hi def link schemeKeyword Type +hi def link schemeLibrarySyntax PreProc +hi def link schemeMultilineComment Comment +hi def link schemeNumber Number +hi def link schemeParentheses Normal +hi def link schemeQuasiquote Delimiter +hi def link schemeQuote Delimiter +hi def link schemeSpecialSyntax Special +hi def link schemeString String +hi def link schemeSymbol Normal +hi def link schemeSyntax Statement +hi def link schemeSyntaxSyntax PreProc +hi def link schemeTypeSyntax Type + +let b:did_scheme_syntax = 1 + +if exists('b:is_chicken') || exists('g:is_chicken') + exe 'ru! syntax/chicken.vim' endif -" Synchronization and the wrapping up... - -syn sync match matchPlace grouphere NONE "^[^ \t]" -" ... i.e. synchronize on a line that starts at the left margin - -" Define the default highlighting. -" Only when an item doesn't have highlighting yet - -hi def link schemeSyntax Statement -hi def link schemeFunc Function - -hi def link schemeString String -hi def link schemeCharacter Character -hi def link schemeNumber Number -hi def link schemeBoolean Boolean - -hi def link schemeDelimiter Delimiter -hi def link schemeConstant Constant - -hi def link schemeComment Comment -hi def link schemeMultilineComment Comment -hi def link schemeError Error - -hi def link schemeExtSyntax Type -hi def link schemeExtFunc PreProc - -hi def link schemeLang PreProc - - -let b:current_syntax = "scheme" - -let &cpo = s:cpo_save -unlet s:cpo_save +unlet b:did_scheme_syntax +let b:current_syntax = 'scheme' +let &cpo = s:cpo +unlet s:cpo diff --git a/runtime/syntax/snobol4.vim b/runtime/syntax/snobol4.vim index a14f15eef4..11ce2e0059 100644 --- a/runtime/syntax/snobol4.vim +++ b/runtime/syntax/snobol4.vim @@ -2,15 +2,16 @@ " Language: SNOBOL4 " Maintainer: Rafal Sulejman <rms@poczta.onet.pl> " Site: http://rms.republika.pl/vim/syntax/snobol4.vim -" Last change: 2006 may 10 +" Last change: : Thu, 25 Jan 2018 14:21:24 +0100 " Changes: +" - system variables updated for SNOBOL4 2.0+ " - strict snobol4 mode (set snobol4_strict_mode to activate) " - incorrect HL of dots in strings corrected " - incorrect HL of dot-variables in parens corrected " - one character labels weren't displayed correctly. " - nonexistent Snobol4 keywords displayed as errors. -" quit when a syntax file was already loaded +" Quit when a syntax file was already loaded if exists("b:current_syntax") finish endif @@ -59,7 +60,7 @@ syn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1 syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError syn match snobol4Number "\<\d*\(\.\d\d*\)*\>" syn match snobol4BogusSysVar "&\w\{1,}" -syn match snobol4SysVar "&\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)" +syn match snobol4SysVar "&\<\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|digits\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)\>" syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)" syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*" syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)" @@ -100,11 +101,11 @@ hi def link snobol4ErrInBracket snobol4Error hi def link snobol4SysVar Keyword hi def link snobol4BogusSysVar snobol4Error if exists("snobol4_strict_mode") -hi def link snobol4ExtSysVar WarningMsg -hi def link snobol4ExtKeyword WarningMsg + hi def link snobol4ExtSysVar WarningMsg + hi def link snobol4ExtKeyword WarningMsg else -hi def link snobol4ExtSysVar snobol4SysVar -hi def link snobol4ExtKeyword snobol4Keyword + hi def link snobol4ExtSysVar snobol4SysVar + hi def link snobol4ExtKeyword snobol4Keyword endif diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim index d5a5de65c8..1d777f8022 100644 --- a/runtime/syntax/tex.vim +++ b/runtime/syntax/tex.vim @@ -1,8 +1,8 @@ " Vim syntax file " Language: TeX " Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM> -" Last Change: Oct 12, 2017 -" Version: 105 +" Last Change: Dec 11, 2017 +" Version: 107 " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX " " Notes: {{{1 @@ -396,8 +396,8 @@ endif " Bad Math (mismatched): {{{1 if !exists("g:tex_no_math") && !s:tex_no_error - syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}" - syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}" + syn match texBadMath "\\end\s*{\s*\(array\|bBpvV]matrix\|split\|smallmatrix\)\s*}" + syn match texBadMath "\\end\s*{\s*\(displaymath\|equation\|eqnarray\|math\)\*\=\s*}" syn match texBadMath "\\[\])]" endif @@ -436,17 +436,10 @@ if !exists("g:tex_no_math") endfun " Standard Math Zones: {{{2 - call TexNewMathZone("A","align",1) - call TexNewMathZone("B","alignat",1) - call TexNewMathZone("C","displaymath",1) - call TexNewMathZone("D","eqnarray",1) - call TexNewMathZone("E","equation",1) - call TexNewMathZone("F","flalign",1) - call TexNewMathZone("G","gather",1) - call TexNewMathZone("H","math",1) - call TexNewMathZone("I","multline",1) - call TexNewMathZone("J","xalignat",1) - call TexNewMathZone("K","xxalignat",0) + call TexNewMathZone("A","displaymath",1) + call TexNewMathZone("B","eqnarray",1) + call TexNewMathZone("C","equation",1) + call TexNewMathZone("D","math",1) " Inline Math Zones: {{{2 if s:tex_fast =~# 'M' diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 1551a314a3..60dd0e1227 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -175,7 +175,7 @@ syn keyword vimFTOption contained detect indent off on plugin " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. -syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue +syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue,vimSetEqual,vimOption if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a' syn region vimAugroup fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList else @@ -191,7 +191,8 @@ syn keyword vimAugroupKey contained aug[roup] " ========= syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile -syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile +syn match vimOper "\(\<is\>\|\<isnot\>\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile +syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") @@ -537,7 +538,7 @@ syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster syn match vimHiGroup contained "\i\+" syn case ignore -syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl +syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl syn keyword vimFgBgAttrib contained none bg background fg foreground syn case match syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib diff --git a/src/nvim/po/sr.po b/src/nvim/po/sr.po new file mode 100644 index 0000000000..c1781e4953 --- /dev/null +++ b/src/nvim/po/sr.po @@ -0,0 +1,6918 @@ +# Serbian Cyrillic Translation for Vim +# +# Do ":help uganda" in Vim to read copying and usage conditions. +# Do ":help credits" in Vim to see a list of people who contributed. + +# Copyright (C) 2017 +# This file is distributed under the same license as the Vim package. +# FIRST AUTHOR Ivan Pešić <ivan.pesic@gmail.com>, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Vim(Serbian)\n" +"Report-Msgid-Bugs-To: <ivan.pesic@gmail.com>\n" +"POT-Creation-Date: 2017-12-21 08:34+0400\n" +"PO-Revision-Date: 2017-12-27 10:29+0400\n" +"Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n" +"Language-Team: Serbian <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "E831: bf_key_init() called with empty password" +msgstr "E831: bf_key_init() је позвана са празном лозинком" + +msgid "E820: sizeof(uint32_t) != 4" +msgstr "E820: sizeof(uint32_t) != 4" + +msgid "E817: Blowfish big/little endian use wrong" +msgstr "E817: Blowfish употреба big/little endian је погрешна" + +msgid "E818: sha256 test failed" +msgstr "E818: sha256 тест није успео" + +msgid "E819: Blowfish test failed" +msgstr "E819: Blowfish тест није успео" + +msgid "[Location List]" +msgstr "[Листа локација]" + +msgid "[Quickfix List]" +msgstr "[Quickfix листа]" + +msgid "E855: Autocommands caused command to abort" +msgstr "E855: Аутокоманде су изазвале прекид команде" + +msgid "E82: Cannot allocate any buffer, exiting..." +msgstr "E82: Не може да се резервише меморија ни за један бафер, излазак..." + +msgid "E83: Cannot allocate buffer, using other one..." +msgstr "E83: Не може да се резервише меморија за бафер, користи се други..." + +msgid "E931: Buffer cannot be registered" +msgstr "E931: Бафер не може да се региструје" + +msgid "E937: Attempt to delete a buffer that is in use" +msgstr "E937: Покушај брисања бафера који је у употреби" + +msgid "E515: No buffers were unloaded" +msgstr "E515: Ниједан бафер није уклоњен из меморије" + +msgid "E516: No buffers were deleted" +msgstr "E516: Ниједан бафер није обрисан" + +msgid "E517: No buffers were wiped out" +msgstr "E517: Ниједан бафер није очишћен" + +msgid "1 buffer unloaded" +msgstr "1 бафер је уклоњен из меморије" + +#, c-format +msgid "%d buffers unloaded" +msgstr "%d бафера је уклоњено из меморије" + +msgid "1 buffer deleted" +msgstr "1 бафер је обрисан" + +#, c-format +msgid "%d buffers deleted" +msgstr "%d бафера је обрисано" + +msgid "1 buffer wiped out" +msgstr "1 бафер је очишћен" + +#, c-format +msgid "%d buffers wiped out" +msgstr "%d бафера је очишћено" + +msgid "E90: Cannot unload last buffer" +msgstr "E90: Последњи бафер не може да се уклони из меморије" + +msgid "E84: No modified buffer found" +msgstr "E84: Није пронађен измењени бафер" + +msgid "E85: There is no listed buffer" +msgstr "E85: Нема бафера на листи" + +msgid "E87: Cannot go beyond last buffer" +msgstr "E87: Не може да се иде иза последњег бафера" + +msgid "E88: Cannot go before first buffer" +msgstr "E88: Не може да се иде испред првог бафера" + +#, c-format +msgid "E89: No write since last change for buffer %ld (add ! to override)" +msgstr "E89: Од последње измене није било уписа за бафер %ld (додајте ! да премостите)" + +msgid "E948: Job still running (add ! to end the job)" +msgstr "E948: Задатак се још извршава (додајте ! да зауставите задатак)" + +msgid "E37: No write since last change (add ! to override)" +msgstr "E37: Није било уписа од последње промене (додајте ! да премостите)" + +msgid "E948: Job still running" +msgstr "E948: Задатак се и даље извршава" + +msgid "E37: No write since last change" +msgstr "E37: Није било уписа од последње промене" + +msgid "W14: Warning: List of file names overflow" +msgstr "W14: Упозорење: Прекорачена је максимална величина листе имена датотека" + +#, c-format +msgid "E92: Buffer %ld not found" +msgstr "E92: Бафер %ld није пронађен" + +#, c-format +msgid "E93: More than one match for %s" +msgstr "E93: Више од једног подударања са %s" + +#, c-format +msgid "E94: No matching buffer for %s" +msgstr "E94: Ниједан бафер се не подудара са %s" + +#, c-format +msgid "line %ld" +msgstr "линија %ld" + +msgid "E95: Buffer with this name already exists" +msgstr "E95: Бафер са овим именом већ постоји" + +msgid " [Modified]" +msgstr "[Измењено]" + +msgid "[Not edited]" +msgstr "[Није уређивано]" + +msgid "[New file]" +msgstr "[Нова датотека]" + +msgid "[Read errors]" +msgstr "[Грешке при читању]" + +msgid "[RO]" +msgstr "[СЧ]" + +msgid "[readonly]" +msgstr "[само за читање]" + +#, c-format +msgid "1 line --%d%%--" +msgstr "1 линија --%d%%--" + +#, c-format +msgid "%ld lines --%d%%--" +msgstr "%ld линија --%d%%--" + +#, c-format +msgid "line %ld of %ld --%d%%-- col " +msgstr "линија %ld од %ld --%d%%-- кол " + +msgid "[No Name]" +msgstr "[Без имена]" + +msgid "help" +msgstr "помоћ" + +msgid "[Help]" +msgstr "[Помоћ]" + +msgid "[Preview]" +msgstr "[Преглед]" + +msgid "All" +msgstr "Све" + +msgid "Bot" +msgstr "Дно" + +msgid "Top" +msgstr "Врх" + +msgid "" +"\n" +"# Buffer list:\n" +msgstr "" +"\n" +"# Листа бафера:\n" + +msgid "E382: Cannot write, 'buftype' option is set" +msgstr "E382: Упис није могућ, постављена је 'buftype' опција" + +msgid "[Scratch]" +msgstr "[Празно]" + +msgid "" +"\n" +"--- Signs ---" +msgstr "" +"\n" +"--- Знаци ---" + +#, c-format +msgid "Signs for %s:" +msgstr "Знаци за %s:" + +#, c-format +msgid " line=%ld id=%d name=%s" +msgstr " линија=%ld ид=%d име=%s" + +msgid "E902: Cannot connect to port" +msgstr "E902: Повезивање на порт није могуће" + +msgid "E901: gethostbyname() in channel_open()" +msgstr "E901: gethostbyname() у channel_open()" + +msgid "E898: socket() in channel_open()" +msgstr "E898: socket() у channel_open()" + +msgid "E903: received command with non-string argument" +msgstr "E903: примњена команда са аргуменом који није стринг" + +msgid "E904: last argument for expr/call must be a number" +msgstr "E904: последњи аргумент за expr/call мора бити број" + +msgid "E904: third argument for call must be a list" +msgstr "E904: трећи аргумент за call мора бити листа" + +#, c-format +msgid "E905: received unknown command: %s" +msgstr "E905: примљена непозната команда: %s" + +#, c-format +msgid "E630: %s(): write while not connected" +msgstr "E630: %s(): упис док није успостављена веза" + +#, c-format +msgid "E631: %s(): write failed" +msgstr "E631: %s(): упис није успео" + +#, c-format +msgid "E917: Cannot use a callback with %s()" +msgstr "E917: Callback не може да се користи са %s()" + +msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" +msgstr "E912: ch_evalexpr()/ch_sendexpr() не може да се користи са raw или nl каналом" + +msgid "E906: not an open channel" +msgstr "E906: није отворен канал" + +msgid "E920: _io file requires _name to be set" +msgstr "E920: _io датотека захтева да _name буде постављено" + +msgid "E915: in_io buffer requires in_buf or in_name to be set" +msgstr "E915: in_io бафер захтева да in_buf или in_name буде постављено" + +#, c-format +msgid "E918: buffer must be loaded: %s" +msgstr "E918: бафер мора бити учитан: %s" + +msgid "E821: File is encrypted with unknown method" +msgstr "E821: Датотека је шифрована непознатом методом" + +msgid "Warning: Using a weak encryption method; see :help 'cm'" +msgstr "Упозорење: Користи се слаба метода шифрирања; погледајте :help 'cm'" + +msgid "Enter encryption key: " +msgstr "Унесите кључ за шифрирање: " + +msgid "Enter same key again: " +msgstr "Унесите исти кључ поново: " + +msgid "Keys don't match!" +msgstr "Кључеви нису исти!" + +msgid "[crypted]" +msgstr "[шифровано]" + +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: Недостаје тачка-зарез у Речнику: %s" + +#, c-format +msgid "E721: Duplicate key in Dictionary: \"%s\"" +msgstr "E721: Дупликат кључа у Речнику: \"%s\"" + +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: Недостаје зарез у Речнику: %s" + +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: Недостаје крај Речника '}': %s" + +msgid "extend() argument" +msgstr "extend() аргумент" + +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: Кључ већ постоји: %s" + +#, c-format +msgid "E96: Cannot diff more than %ld buffers" +msgstr "E96: Не може да се упоређује више од %ld бафера" + +msgid "E810: Cannot read or write temp files" +msgstr "E810: Није могуће читање или упис у привремене датотеке" + +msgid "E97: Cannot create diffs" +msgstr "E97: Није могуће креирање diff-ова" + +msgid "Patch file" +msgstr "Patch датотека" + +msgid "E816: Cannot read patch output" +msgstr "E816: Није могуће читање patch излаза" + +msgid "E98: Cannot read diff output" +msgstr "E98: Није могуће читање diff излаза" + +msgid "E99: Current buffer is not in diff mode" +msgstr "E99: Текући бафер није у diff режиму" + +msgid "E793: No other buffer in diff mode is modifiable" +msgstr "E793: Ниједан други бафер у diff режиму није измењив" + +msgid "E100: No other buffer in diff mode" +msgstr "E100: ниједан други бафер није у diff режиму" + +msgid "E101: More than two buffers in diff mode, don't know which one to use" +msgstr "E101: Више од два бафера су у diff режиму, не знам који да користим" + +#, c-format +msgid "E102: Can't find buffer \"%s\"" +msgstr "E102: Бафер \"%s\" не може да се пронађе" + +#, c-format +msgid "E103: Buffer \"%s\" is not in diff mode" +msgstr "E103: Бафер \"%s\" није у diff режиму" + +msgid "E787: Buffer changed unexpectedly" +msgstr "E787: Бафер је неочекивано измењен" + +msgid "E104: Escape not allowed in digraph" +msgstr "E104: Escape није дозвољен у digraph" + +msgid "E544: Keymap file not found" +msgstr "E544: Keymap датотека није пронађена" + +msgid "E105: Using :loadkeymap not in a sourced file" +msgstr "E105: Коришћење :loadkeymap ван датотеке која се учитава као скрипта" + +msgid "E791: Empty keymap entry" +msgstr "E791: Празна keymap ставка" + +msgid " Keyword completion (^N^P)" +msgstr " Довршавање кључне речи (^N^P)" + +msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" +msgstr " ^X режим (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" + +msgid " Whole line completion (^L^N^P)" +msgstr " Довршавање целе линије (^L^N^P)" + +msgid " File name completion (^F^N^P)" +msgstr " Довршавање имена датотеке (^F^N^P)" + +msgid " Tag completion (^]^N^P)" +msgstr " Довршавање ознаке (^]^N^P)" + +msgid " Path pattern completion (^N^P)" +msgstr " Довршавање шаблона путање (^N^P)" + +msgid " Definition completion (^D^N^P)" +msgstr " Довршавање дефиниције (^D^N^P)" + +msgid " Dictionary completion (^K^N^P)" +msgstr " Довршавање речника (^K^N^P)" + +msgid " Thesaurus completion (^T^N^P)" +msgstr " Довршавање речника синонима (^T^N^P)" + +msgid " Command-line completion (^V^N^P)" +msgstr " Довршавање командне линије (^V^N^P)" + +msgid " User defined completion (^U^N^P)" +msgstr " Кориснички дефинисано довршавање (^U^N^P)" + +msgid " Omni completion (^O^N^P)" +msgstr " Omni довршавање (^O^N^P)" + +msgid " Spelling suggestion (s^N^P)" +msgstr " Правописни предлог (s^N^P)" + +msgid " Keyword Local completion (^N^P)" +msgstr " Довршавање локалне кључне речи (^N^P)" + +msgid "Hit end of paragraph" +msgstr "Достигнут крај пасуса" + +msgid "E839: Completion function changed window" +msgstr "E839: Функција довршавања је променила прозор" + +msgid "E840: Completion function deleted text" +msgstr "E840: Функција довршавања је обрисала текст" + +msgid "'dictionary' option is empty" +msgstr "Опција 'dictionary' је празна" + +msgid "'thesaurus' option is empty" +msgstr "Опција 'thesaurus' је празна" + +#, c-format +msgid "Scanning dictionary %s" +msgstr "Скенирање речника: %s" + +msgid " (insert) Scroll (^E/^Y)" +msgstr " (уметање) Скроловање (^E/^Y)" + +msgid " (replace) Scroll (^E/^Y)" +msgstr " (замена) Скроловање (^E/^Y)" + +#, c-format +msgid "Scanning: %s" +msgstr "Скенирање: %s" + +msgid "Scanning tags." +msgstr "Скенирање ознака." + +msgid "match in file" +msgstr "подударање у датотеци" + +msgid " Adding" +msgstr " Додавање" + +msgid "-- Searching..." +msgstr "-- Претрага..." + +msgid "Back at original" +msgstr "Назад на оригинал" + +msgid "Word from other line" +msgstr "Реч из друге линије" + +msgid "The only match" +msgstr "Једино подударање" + +#, c-format +msgid "match %d of %d" +msgstr "подударање %d од %d" + +#, c-format +msgid "match %d" +msgstr "подударање %d" + +msgid "E18: Unexpected characters in :let" +msgstr "E18: Неочекивани карактери у :let" + +#, c-format +msgid "E121: Undefined variable: %s" +msgstr "E121: Недефинисана променљива: %s" + +msgid "E111: Missing ']'" +msgstr "E111: Недостаје ']'" + +msgid "E719: Cannot use [:] with a Dictionary" +msgstr "E719: Не може да се користи [:] са Речником" + +#, c-format +msgid "E734: Wrong variable type for %s=" +msgstr "E734: Погрешан тип променљиве за %s=" + +#, c-format +msgid "E461: Illegal variable name: %s" +msgstr "E461: Недозвољено име променљиве: %s" + +msgid "E806: using Float as a String" +msgstr "E806: коришћење Float као String" + +msgid "E687: Less targets than List items" +msgstr "E687: Мање одредишта него ставки Листе" + +msgid "E688: More targets than List items" +msgstr "E688: Више одредишта него ставки Листе" + +msgid "Double ; in list of variables" +msgstr "Дупле ; у листи променљивих" + +#, c-format +msgid "E738: Can't list variables for %s" +msgstr "E738: Не може да се прикаже листа променљивих за %s" + +msgid "E689: Can only index a List or Dictionary" +msgstr "E689: Само Листа или Речник могу да се индексирају" + +msgid "E708: [:] must come last" +msgstr "E708: [:] мора да буде последња" + +msgid "E709: [:] requires a List value" +msgstr "E709: [:] захтева вредност типа List" + +msgid "E710: List value has more items than target" +msgstr "E710: Вредност типа List има више ставки него одредиште" + +msgid "E711: List value has not enough items" +msgstr "E711: Вредност типа List нема довољно ставки" + +msgid "E690: Missing \"in\" after :for" +msgstr "E690: Недостаје \"in\" након :for" + +#, c-format +msgid "E108: No such variable: \"%s\"" +msgstr "E108: Не постоји таква променљива: \"%s\"" + +#, c-format +msgid "E940: Cannot lock or unlock variable %s" +msgstr "E940: Не може да се откључа или закључа променљива %s" + +msgid "E743: variable nested too deep for (un)lock" +msgstr "E743: променљива је угњеждена сувише дубоко да би се за(от)кључала" + +msgid "E109: Missing ':' after '?'" +msgstr "E109: Недостаје ':' након '?'" + +msgid "E691: Can only compare List with List" +msgstr "E691: List може да се пореди само са List" + +msgid "E692: Invalid operation for List" +msgstr "E692: Неисправна операција за List" + +msgid "E735: Can only compare Dictionary with Dictionary" +msgstr "E735: Dictionary може да се пореди само са Dictionary" + +msgid "E736: Invalid operation for Dictionary" +msgstr "E736: Неисправна операција за Dictionary" + +msgid "E694: Invalid operation for Funcrefs" +msgstr "E694: Неисправна операција за Funcrefs" + +msgid "E804: Cannot use '%' with Float" +msgstr "E804: '%' не може да се користи са Float" + +msgid "E110: Missing ')'" +msgstr "E110: Недостаје ')'" + +msgid "E695: Cannot index a Funcref" +msgstr "E695: Funcref не може да се индексира" + +msgid "E909: Cannot index a special variable" +msgstr "E909: Специјална променљива не може да се индексира" + +#, c-format +msgid "E112: Option name missing: %s" +msgstr "E112: Недостаје име опције: %s" + +#, c-format +msgid "E113: Unknown option: %s" +msgstr "E113: Непозната опција: %s" + +#, c-format +msgid "E114: Missing quote: %s" +msgstr "E114: Недостаје наводник: %s" + +#, c-format +msgid "E115: Missing quote: %s" +msgstr "E115: Недостаје наводник: %s" + +msgid "Not enough memory to set references, garbage collection aborted!" +msgstr "Нема довољно меморије за постављање референци, прекинуто је скупљање отпада" + +msgid "E724: variable nested too deep for displaying" +msgstr "E724: променљива је угњеждена предубоко да би се приказала" + +msgid "E805: Using a Float as a Number" +msgstr "E805: Користи се Float као Number" + +msgid "E703: Using a Funcref as a Number" +msgstr "E703: Користи се Funcref као Number" + +msgid "E745: Using a List as a Number" +msgstr "E745: Користи се List као Number" + +msgid "E728: Using a Dictionary as a Number" +msgstr "E728: Користи се Dictionary као Number" + +msgid "E910: Using a Job as a Number" +msgstr "E910: Користи се Job као Number" + +msgid "E913: Using a Channel as a Number" +msgstr "E913: Користи се Channel као Number" + +msgid "E891: Using a Funcref as a Float" +msgstr "E891: Користи се Funcref као Float" + +msgid "E892: Using a String as a Float" +msgstr "E892: Користи се String као Float" + +msgid "E893: Using a List as a Float" +msgstr "E893: Користи се List као Float" + +msgid "E894: Using a Dictionary as a Float" +msgstr "E894: Користи се Dictionary као Float" + +msgid "E907: Using a special value as a Float" +msgstr "E907: Користи се специјална вредност као Float" + +msgid "E911: Using a Job as a Float" +msgstr "E911: Користи се Job као Float" + +msgid "E914: Using a Channel as a Float" +msgstr "E914: Користи се Channel као Float" + +msgid "E729: using Funcref as a String" +msgstr "E729: користи се Funcref као String" + +msgid "E730: using List as a String" +msgstr "E730: користи се List као String" + +msgid "E731: using Dictionary as a String" +msgstr "E731: користи се Dictionary као String" + +msgid "E908: using an invalid value as a String" +msgstr "E908: користи се недозвољена вредност као String" + +#, c-format +msgid "E795: Cannot delete variable %s" +msgstr "E795: Променљива %s не може да се обрише" + +#, c-format +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: Име Funcref мора да почне великим словом: %s" + +#, c-format +msgid "E705: Variable name conflicts with existing function: %s" +msgstr "E705: Име променљиве је у конфликту са постојећом функцијом: %s" + +#, c-format +msgid "E741: Value is locked: %s" +msgstr "E741: Вредност је закључана: %s" + +msgid "Unknown" +msgstr "Непознато" + +#, c-format +msgid "E742: Cannot change value of %s" +msgstr "E742: Вредност %s не може да се промени" + +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: променљива је предубоко угњеждена да би се направила копија" + +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# глобалне променљиве:\n" + +msgid "" +"\n" +"\tLast set from " +msgstr "" +"\n" +"\tПоследњи сет од " + +msgid "map() argument" +msgstr "map() аргумент" + +msgid "filter() argument" +msgstr "filter() аргумент" + +#, c-format +msgid "E686: Argument of %s must be a List" +msgstr "E686: Аргумент за %s мора бити List" + +msgid "E928: String required" +msgstr "E928: Захтева се String" + +msgid "E808: Number or Float required" +msgstr "E808: Захтева се Number или Float" + +msgid "add() argument" +msgstr "add() аргумент" + +msgid "E785: complete() can only be used in Insert mode" +msgstr "E785: complete() може да се користи само у режиму Уметање" + +msgid "&Ok" +msgstr "&Ок" + +#, c-format +msgid "E700: Unknown function: %s" +msgstr "E700: Непозната функција: %s" + +msgid "E922: expected a dict" +msgstr "E922: очекивао се dict" + +msgid "E923: Second argument of function() must be a list or a dict" +msgstr "E923: Други аргумент function() мора бити list или dict" + +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"&OK\n" +"О&ткажи" + +msgid "called inputrestore() more often than inputsave()" +msgstr "inputrestore() је позвана више пута него inputsave()" + +msgid "insert() argument" +msgstr "insert() аргумент" + +msgid "E786: Range not allowed" +msgstr "E786: Опсег није дозвољен" + +msgid "E916: not a valid job" +msgstr "E916: није валидан job" + +msgid "E701: Invalid type for len()" +msgstr "E701: Неисправан тип за len()" + +#, c-format +msgid "E798: ID is reserved for \":match\": %ld" +msgstr "E798: ИД је резервисан за \":match\": %ld" + +msgid "E726: Stride is zero" +msgstr "E726: Корак је нула" + +msgid "E727: Start past end" +msgstr "E727: Почетак иза краја" + +msgid "<empty>" +msgstr "<празно>" + +msgid "E240: No connection to the X server" +msgstr "E240: Нема везе са X сервером" + +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: Слање ка %s није могуће" + +msgid "E277: Unable to read a server reply" +msgstr "E277: Не може да се прочита одговор сервера" + +msgid "E941: already started a server" +msgstr "E941: сервер је већ покренут" + +msgid "E942: +clientserver feature not available" +msgstr "E942: Могућност +clientserver није доступна" + +msgid "remove() argument" +msgstr "remove() аргумент" + +msgid "E655: Too many symbolic links (cycle?)" +msgstr "E655: Превише симболичких веза (циклус?)" + +msgid "reverse() argument" +msgstr "reverse() аргумент" + +msgid "E258: Unable to send to client" +msgstr "E258: Слање ка клијенту није могуће" + +#, c-format +msgid "E927: Invalid action: '%s'" +msgstr "E927: Неисправна акција: '%s'" + +msgid "sort() argument" +msgstr "sort() аргумент" + +msgid "uniq() argument" +msgstr "uniq() аргумент" + +msgid "E702: Sort compare function failed" +msgstr "E702: Sort функција поређења није успела" + +msgid "E882: Uniq compare function failed" +msgstr "E882: Uniq функција поређења није успела" + +msgid "(Invalid)" +msgstr "(Неисправно)" + +#, c-format +msgid "E935: invalid submatch number: %d" +msgstr "E935: неисправан број подпоклапања: %d" + +msgid "E677: Error writing temp file" +msgstr "E677: Грешка при упису temp датотеке" + +msgid "E921: Invalid callback argument" +msgstr "E921: Неисправан callback аргумент" + +#, c-format +msgid "<%s>%s%s %d, Hex %02x, Octal %03o" +msgstr "<%s>%s%s %d, Хекс %02x, Октално %03o" + +#, c-format +msgid "> %d, Hex %04x, Octal %o" +msgstr "> %d, Хекс %04x, Октално %o" + +#, c-format +msgid "> %d, Hex %08x, Octal %o" +msgstr "> %d, Хекс %08x, Октално %o" + +msgid "E134: Move lines into themselves" +msgstr "E134: Премештање линија у саме себе" + +msgid "1 line moved" +msgstr "1 линија премештена" + +#, c-format +msgid "%ld lines moved" +msgstr "%ld линија премештено" + +#, c-format +msgid "%ld lines filtered" +msgstr "%ld линија филтрирано" + +msgid "E135: *Filter* Autocommands must not change current buffer" +msgstr "E135: *Филтер* Аутокоманде не смеју да мењају текући бафер" + +msgid "[No write since last change]\n" +msgstr "[Нема уписа од последње промене]\n" + +#, c-format +msgid "%sviminfo: %s in line: " +msgstr "%sviminfo: %s у линији: " + +msgid "E136: viminfo: Too many errors, skipping rest of file" +msgstr "E136: viminfo: Превише грешака, остатак датотеке се прескаче" + +#, c-format +msgid "Reading viminfo file \"%s\"%s%s%s" +msgstr "Читање viminfo датотеке \"%s\"%s%s%s" + +msgid " info" +msgstr " инфо" + +msgid " marks" +msgstr " маркера" + +msgid " oldfiles" +msgstr " старихдатотека" + +msgid " FAILED" +msgstr " НЕУСПЕЛО" + +#, c-format +msgid "E137: Viminfo file is not writable: %s" +msgstr "E137: Viminfo датотека није уписива: %s" + +#, c-format +msgid "E929: Too many viminfo temp files, like %s!" +msgstr "E929: Превише viminfo temp датотека, као %s!" + +#, c-format +msgid "E138: Can't write viminfo file %s!" +msgstr "E138: Viminfo датотека %s не може да се упише!" + +#, c-format +msgid "Writing viminfo file \"%s\"" +msgstr "Уписивање viminfo датотеке \"%s\"" + +#, c-format +msgid "E886: Can't rename viminfo file to %s!" +msgstr "E886: Viminfo датотека не може да се преименује у %s!" + +#, c-format +msgid "# This viminfo file was generated by Vim %s.\n" +msgstr "# Ову viminfo датотеку је генерисао Vim %s.\n" + +msgid "" +"# You may edit it if you're careful!\n" +"\n" +msgstr "" +"# Можете да је уређујете ако сте опрезни!\n" +"\n" + +msgid "# Value of 'encoding' when this file was written\n" +msgstr "# Вредност опције 'encoding' када је ова датотека написана\n" + +msgid "Illegal starting char" +msgstr "Неисправан почетни карактер" + +msgid "" +"\n" +"# Bar lines, copied verbatim:\n" +msgstr "" +"\n" +"# Преградне линије, копиране дословно:\n" + +msgid "Save As" +msgstr "Сачувај као" + +msgid "Write partial file?" +msgstr "Да упишем парцијалну датотеку?" + +msgid "E140: Use ! to write partial buffer" +msgstr "E140: Користите ! да бисте уписали парцијални бафер" + +#, c-format +msgid "Overwrite existing file \"%s\"?" +msgstr "Да препишем постојећи датотеку \"%s\"?" + +#, c-format +msgid "Swap file \"%s\" exists, overwrite anyway?" +msgstr "Swap датотека \"%s\" постоји, да је препишем у сваком случају?" + +#, c-format +msgid "E768: Swap file exists: %s (:silent! overrides)" +msgstr "E768: Swap датотека постоји: %s (:silent! премошћава)" + +#, c-format +msgid "E141: No file name for buffer %ld" +msgstr "E141: Нема имена датотеке за бафер %ld" + +msgid "E142: File not written: Writing is disabled by 'write' option" +msgstr "E142: Датотека није уписана: Уписивање је онемогућено опцијом 'write'" + +#, c-format +msgid "" +"'readonly' option is set for \"%s\".\n" +"Do you wish to write anyway?" +msgstr "" +"'readonly' опција је постављена за \"%s\".\n" +"Да ли ипак желите да упишете?" + +#, c-format +msgid "" +"File permissions of \"%s\" are read-only.\n" +"It may still be possible to write it.\n" +"Do you wish to try?" +msgstr "" +"Дозволе датотеке \"%s\" омогућавају само читање.\n" +"Можда је ипак могуће да се упише.\n" +"Да ли желите да покушате?" + +#, c-format +msgid "E505: \"%s\" is read-only (add ! to override)" +msgstr "E505: \"%s\" је само за читање (додајте ! за премошћавање)" + +msgid "Edit File" +msgstr "Уреди датотеку" + +#, c-format +msgid "E143: Autocommands unexpectedly deleted new buffer %s" +msgstr "E143: Аутокоманде су неочекивано обрисале нов бафер %s" + +msgid "E144: non-numeric argument to :z" +msgstr "E144: ненумерички аргумент за :z" + +msgid "E145: Shell commands not allowed in rvim" +msgstr "E145: Shell команде нису дозвољене у rvim" + +msgid "E146: Regular expressions can't be delimited by letters" +msgstr "E146: Регуларни изрази не могу да се раздвајају словима" + +#, c-format +msgid "replace with %s (y/n/a/q/l/^E/^Y)?" +msgstr "заменити са %s (y/n/a/q/l/^E/^Y)?" + +msgid "(Interrupted) " +msgstr "(Прекинуто)" + +msgid "1 match" +msgstr "1 подударање" + +msgid "1 substitution" +msgstr "1 замена" + +#, c-format +msgid "%ld matches" +msgstr "%ld подударања" + +#, c-format +msgid "%ld substitutions" +msgstr "%ld замена" + +msgid " on 1 line" +msgstr " у 1 линији" + +#, c-format +msgid " on %ld lines" +msgstr " у %ld линија" + +msgid "E147: Cannot do :global recursive with a range" +msgstr "E147: :global не може да се изврши рекурзивно са опсегом" + +msgid "E148: Regular expression missing from global" +msgstr "E148: У global недостаје регуларни израз" + +#, c-format +msgid "Pattern found in every line: %s" +msgstr "Шаблон је пронаћен у свакој линији: %s" + +#, c-format +msgid "Pattern not found: %s" +msgstr "Шаблон није пронађен: %s" + +msgid "" +"\n" +"# Last Substitute String:\n" +"$" +msgstr "" +"\n" +"# Последњи Стринг за замену:\n" +"$" + +msgid "E478: Don't panic!" +msgstr "E478: Не паничите!" + +#, c-format +msgid "E661: Sorry, no '%s' help for %s" +msgstr "E661: Жао нам је, нема '%s' помоћи за %s" + +#, c-format +msgid "E149: Sorry, no help for %s" +msgstr "E149: Жао нам је, нема помоћи за %s" + +#, c-format +msgid "Sorry, help file \"%s\" not found" +msgstr "Жао нам је, датотека помоћи \"%s\" није пронађена" + +#, c-format +msgid "E151: No match: %s" +msgstr "E151: Нема подударања: %s" + +#, c-format +msgid "E152: Cannot open %s for writing" +msgstr "E152: %s не може да се отвори за упис" + +#, c-format +msgid "E153: Unable to open %s for reading" +msgstr "E153: %s не може да се отвори за читање" + +#, c-format +msgid "E670: Mix of help file encodings within a language: %s" +msgstr "E670: Помешано је више кодирања фајлова помоћи за језик: %s" + +#, c-format +msgid "E154: Duplicate tag \"%s\" in file %s/%s" +msgstr "E154: Дуплирана ознака \"%s\" у датотеци %s/%s" + +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: Није директоријум: %s" + +#, c-format +msgid "E160: Unknown sign command: %s" +msgstr "E160: Непозната знак команда: %s" + +msgid "E156: Missing sign name" +msgstr "E156: Недостаје име знака" + +msgid "E612: Too many signs defined" +msgstr "E612: Дефинисано је превише знакова" + +#, c-format +msgid "E239: Invalid sign text: %s" +msgstr "E239: Неисправан текст знака: %s" + +#, c-format +msgid "E155: Unknown sign: %s" +msgstr "E155: Непознат знак: %s" + +msgid "E159: Missing sign number" +msgstr "E159: Недостаје број знака" + +#, c-format +msgid "E158: Invalid buffer name: %s" +msgstr "E158: Неисправно име бафера: %s" + +msgid "E934: Cannot jump to a buffer that does not have a name" +msgstr "E934: Не може да се скочи на бафер који нема име`" + +#, c-format +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: Неисправан ИД знака: %ld" + +#, c-format +msgid "E885: Not possible to change sign %s" +msgstr "E885: Знак %s не може да се промени" + +msgid " (NOT FOUND)" +msgstr " (НИЈЕ ПРОНАЂЕНО)" + +msgid " (not supported)" +msgstr " (није подржано)" + +msgid "[Deleted]" +msgstr "[Обрисано]" + +msgid "No old files" +msgstr "Нема старих датотека" + +msgid "Entering Debug mode. Type \"cont\" to continue." +msgstr "Улазак у Debug режим. Откуцајте \"cont\" за наставак." + +#, c-format +msgid "line %ld: %s" +msgstr "линија %ld: %s" + +#, c-format +msgid "cmd: %s" +msgstr "ком: %s" + +msgid "frame is zero" +msgstr "оквир је нула" + +#, c-format +msgid "frame at highest level: %d" +msgstr "оквир је на највишем нивоу: %d" + +#, c-format +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "Прекидна тачка у \"%s%s\" линија %ld" + +#, c-format +msgid "E161: Breakpoint not found: %s" +msgstr "E161: Прекидна тачка није пронађена: %s" + +msgid "No breakpoints defined" +msgstr "Није дефинисана ниједна прекидна тачка" + +#, c-format +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s линија %ld" + +msgid "E750: First use \":profile start {fname}\"" +msgstr "E750: Најпре користите \":profile start {fname}\"" + +#, c-format +msgid "Save changes to \"%s\"?" +msgstr "Да сачувам промене у \"%s\"?" + +#, c-format +msgid "E947: Job still running in buffer \"%s\"" +msgstr "E947: Задатак се и даље извршава у баферу \"%s\"" + +#, c-format +msgid "E162: No write since last change for buffer \"%s\"" +msgstr "E162: Није било уписа од последње промене за бафер \"%s\"" + +msgid "Warning: Entered other buffer unexpectedly (check autocommands)" +msgstr "Упозорење: Неочекивано се прешло у други бафер (проверите аутокоманде)" + +msgid "E163: There is only one file to edit" +msgstr "E163: Постоји само једна датотека за уређивање" + +msgid "E164: Cannot go before first file" +msgstr "E164: Не може да се иде испред прве датотеке" + +msgid "E165: Cannot go beyond last file" +msgstr "E165: Не може да се иде испред прве датотеке" + +#, c-format +msgid "E666: compiler not supported: %s" +msgstr "E666: компајлер није подржан: %s" + +#, c-format +msgid "Searching for \"%s\" in \"%s\"" +msgstr "Тражи се \"%s\" у \"%s\"" + +#, c-format +msgid "Searching for \"%s\"" +msgstr "Тражи се\"%s\"" + +#, c-format +msgid "not found in '%s': \"%s\"" +msgstr "није пронађено у '%s': \"%s\"" + +#, c-format +msgid "W20: Required python version 2.x not supported, ignoring file: %s" +msgstr "W20: Захтевани python version 2.x није подржан, датотека: %s се игнорише" + +#, c-format +msgid "W21: Required python version 3.x not supported, ignoring file: %s" +msgstr "W21: Захтевани python version 3.x није подржан, датотека: %s се игнорише" + +msgid "Source Vim script" +msgstr "Изворна Vim скрипта" + +#, c-format +msgid "Cannot source a directory: \"%s\"" +msgstr "Директоријум не може да буде извор: \"%s\"" + +#, c-format +msgid "could not source \"%s\"" +msgstr "не може бити извор \"%s\"" + +#, c-format +msgid "line %ld: could not source \"%s\"" +msgstr "линија %ld: не може бити извор \"%s\"" + +#, c-format +msgid "sourcing \"%s\"" +msgstr "прибављање \"%s\"" + +#, c-format +msgid "line %ld: sourcing \"%s\"" +msgstr "линија %ld: прибављање \"%s\"" + +#, c-format +msgid "finished sourcing %s" +msgstr "завршено прибављање %s" + +#, c-format +msgid "continuing in %s" +msgstr "наставља се у %s" + +msgid "modeline" +msgstr "режимска лнија (modeline)" + +msgid "--cmd argument" +msgstr "--cmd аргумент" + +msgid "-c argument" +msgstr "-c аргумент" + +msgid "environment variable" +msgstr "променљива окружења" + +msgid "error handler" +msgstr "процедура за обраду грешке" + +msgid "W15: Warning: Wrong line separator, ^M may be missing" +msgstr "W15: Упозорење: Погрешан сепаратор линије, можда недостаје ^M" + +msgid "E167: :scriptencoding used outside of a sourced file" +msgstr "E167: :scriptencoding се користи ван изворишне датотеке" + +msgid "E168: :finish used outside of a sourced file" +msgstr "E168: :finish се користи ван изворишне датотеке" + +#, c-format +msgid "Current %slanguage: \"%s\"" +msgstr "Текући %sјезик: \"%s\"" + +#, c-format +msgid "E197: Cannot set language to \"%s\"" +msgstr "E197: Језик не може да се постави на \"%s\"" + +msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." +msgstr "Улазак у Ex режим. Откуцајте \"visual\" да бисте прешли у Нормални режим." + +msgid "E501: At end-of-file" +msgstr "E501: На крају-датотеке" + +msgid "E169: Command too recursive" +msgstr "E169: Команда је сувише рекурзивна" + +#, c-format +msgid "E605: Exception not caught: %s" +msgstr "E605: Изузетак није ухваћен: %s" + +msgid "End of sourced file" +msgstr "Крај изворишне датотеке" + +msgid "End of function" +msgstr "Крај функције" + +msgid "E464: Ambiguous use of user-defined command" +msgstr "E464: Двосмислена употреба кориснички дефинисане команде" + +msgid "E492: Not an editor command" +msgstr "E492: Није команда едитора" + +msgid "E493: Backwards range given" +msgstr "E493: Задат је опсег уназад" + +msgid "Backwards range given, OK to swap" +msgstr "Задат је опсег уназад, ОК да се замени" + +msgid "E494: Use w or w>>" +msgstr "E494: Користите w или w>>" + +msgid "E943: Command table needs to be updated, run 'make cmdidxs'" +msgstr "E943: Табела команди мора да се освежи, покрените 'make cmdidxs'" + +msgid "E319: Sorry, the command is not available in this version" +msgstr "E319: Жао нам је, та команда није доступна у овој верзији" + +msgid "1 more file to edit. Quit anyway?" +msgstr "Још 1 датотека за уређивање. Ипак желите да напустите програм?" + +#, c-format +msgid "%d more files to edit. Quit anyway?" +msgstr "Још %d датотека за уређивање. Ипак желите да напустите програм?" + +msgid "E173: 1 more file to edit" +msgstr "E173: Још 1 датотека за уређивање" + +#, c-format +msgid "E173: %ld more files to edit" +msgstr "E173: Још %ld датотека за уређивање" + +msgid "E174: Command already exists: add ! to replace it" +msgstr "E174: Команда већ постоји: додајте ! да је замените" + +msgid "" +"\n" +" Name Args Address Complete Definition" +msgstr "" +"\n" +" Име Аргум Адреса Довршење Дефиниција" + +msgid "No user-defined commands found" +msgstr "Нису пронађене кориснички дефинисане команде" + +msgid "E175: No attribute specified" +msgstr "E175: Није наведен ни један атрибут" + +msgid "E176: Invalid number of arguments" +msgstr "E176: Неисправан број аргумената" + +msgid "E177: Count cannot be specified twice" +msgstr "E177: Бројач не може да се наведе два пута" + +msgid "E178: Invalid default value for count" +msgstr "E178: Несправна подразумевана вредност за бројач" + +msgid "E179: argument required for -complete" +msgstr "E179: потребан је аргумент за -complete" + +msgid "E179: argument required for -addr" +msgstr "E179: потребан је аргумент за -addr" + +#, c-format +msgid "E181: Invalid attribute: %s" +msgstr "E181: Неисправан атрибут: %s" + +msgid "E182: Invalid command name" +msgstr "E182: Неисправно име команде" + +msgid "E183: User defined commands must start with an uppercase letter" +msgstr "E183: Кориснички дефинисане команде морају да почну великим словом" + +msgid "E841: Reserved name, cannot be used for user defined command" +msgstr "E841: Резервисано име, не може да се користи за кориснички дефинисану команду" + +#, c-format +msgid "E184: No such user-defined command: %s" +msgstr "E184: Не постоји таква кориснички дефинисана команда: %s" + +#, c-format +msgid "E180: Invalid address type value: %s" +msgstr "E180: Неисправна вредност адресног типа: %s" + +#, c-format +msgid "E180: Invalid complete value: %s" +msgstr "E180: Неисправна вредност довршавања: %s" + +msgid "E468: Completion argument only allowed for custom completion" +msgstr "E468: Аргумент довршавања је дозвољен само за прилагођена довршавања" + +msgid "E467: Custom completion requires a function argument" +msgstr "E467: Прилагођено довршавање захтева аргумент функције" + +msgid "unknown" +msgstr "непознато" + +#, c-format +msgid "E185: Cannot find color scheme '%s'" +msgstr "E185: Шема боја '%s' не може да се пронађе" + +msgid "Greetings, Vim user!" +msgstr "Поздрав, корисниче Vim-a" + +msgid "E784: Cannot close last tab page" +msgstr "E784: Последња картица не може да се затвори" + +msgid "Already only one tab page" +msgstr "Већ сте на само једној картици" + +msgid "Edit File in new window" +msgstr "Уређивање Датотеке у новом прозору" + +#, c-format +msgid "Tab page %d" +msgstr "Картица %d" + +msgid "No swap file" +msgstr "Нема swap датотеке" + +msgid "Append File" +msgstr "Додавање на крај Датотеке" + +msgid "E747: Cannot change directory, buffer is modified (add ! to override)" +msgstr "E747: Директоријум не може да се промени, бафер је измењен (додајте ! за премошћавање)" + +msgid "E186: No previous directory" +msgstr "E186: Нема претгодног директоријума" + +msgid "E187: Unknown" +msgstr "E187: Непознато" + +msgid "E465: :winsize requires two number arguments" +msgstr "E465: :winsize захтева два бројчана аргумента" + +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "Позиција прозора: X %d, Y %d" + +msgid "E188: Obtaining window position not implemented for this platform" +msgstr "E188: Добављање позиције прозора није имплементирано за ову платформу" + +msgid "E466: :winpos requires two number arguments" +msgstr "E466: :winpos захтева два бројчана аргумента" + +msgid "E930: Cannot use :redir inside execute()" +msgstr "E930: :redir не може да се користи унутар execute()" + +msgid "Save Redirection" +msgstr "Сачувај Редирекцију" + +msgid "Save View" +msgstr "Сачувај Поглед" + +msgid "Save Session" +msgstr "Сачувај Сесију" + +msgid "Save Setup" +msgstr "Сачувај Подешавање" + +#, c-format +msgid "E739: Cannot create directory: %s" +msgstr "E739: Директоријум не може да се креира: %s" + +#, c-format +msgid "E189: \"%s\" exists (add ! to override)" +msgstr "E189: \"%s\" постоји (додајте ! за премошћавање)" + +#, c-format +msgid "E190: Cannot open \"%s\" for writing" +msgstr "E190: \"%s\" не може да се отвори за упис" + +msgid "E191: Argument must be a letter or forward/backward quote" +msgstr "E191: Аргумент мора бити слово или апостроф/обрнути апостроф" + +msgid "E192: Recursive use of :normal too deep" +msgstr "E192: Рекурзивно коришћење :normal је сувише дубоко" + +msgid "E809: #< is not available without the +eval feature" +msgstr "E809: #< није доступно без +eval могућности" + +msgid "E194: No alternate file name to substitute for '#'" +msgstr "E194: Нема алтернативног имена које би заменило '#'" + +msgid "E495: no autocommand file name to substitute for \"<afile>\"" +msgstr "E495: нема имена датотеке за аутокоманде које би заменило \"<afile>\"" + +msgid "E496: no autocommand buffer number to substitute for \"<abuf>\"" +msgstr "E496: нема броја бафера за аутокоманду који би заменио \"<abuf>\"" + +msgid "E497: no autocommand match name to substitute for \"<amatch>\"" +msgstr "E497: нема имена подударања аутокоманде које би заменило \"<amatch>\"" + +msgid "E498: no :source file name to substitute for \"<sfile>\"" +msgstr "E498: нема имена :source датотеке које би заменило \"<sfile>\"" + +msgid "E842: no line number to use for \"<slnum>\"" +msgstr "E842: нема броја линије који би се користио за \"<slnum>\"" + +#, no-c-format +msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" +msgstr "E499: Празно име датотеке за'%' or '#', функционише само са \":p:h\"" + +msgid "E500: Evaluates to an empty string" +msgstr "E500: Резултат израчунавања је празан стринг" + +msgid "E195: Cannot open viminfo file for reading" +msgstr "E195: viminfo датотека не може да се отвори за читање" + +msgid "Untitled" +msgstr "Без наслова" + +msgid "E196: No digraphs in this version" +msgstr "E196: У овој верзији нема диграфа" + +msgid "E608: Cannot :throw exceptions with 'Vim' prefix" +msgstr "E608: :throw изузетка са 'Vim' префиксом није дозвољен" + +#, c-format +msgid "Exception thrown: %s" +msgstr "Бачен је изузетак: %s" + +#, c-format +msgid "Exception finished: %s" +msgstr "Изузетак је завршен: %s" + +#, c-format +msgid "Exception discarded: %s" +msgstr "Изузетак је одбачен: %s" + +#, c-format +msgid "%s, line %ld" +msgstr "%s, линија %ld" + +#, c-format +msgid "Exception caught: %s" +msgstr "Изузетак је ухваћен: %s" + +#, c-format +msgid "%s made pending" +msgstr "%s је стављен на чекање" + +#, c-format +msgid "%s resumed" +msgstr "%s је поново активан" + +#, c-format +msgid "%s discarded" +msgstr "%s је одбачен" + +msgid "Exception" +msgstr "Изузетак" + +msgid "Error and interrupt" +msgstr "Грешка и прекид" + +msgid "Error" +msgstr "Грешка" + +msgid "Interrupt" +msgstr "Прекид" + +msgid "E579: :if nesting too deep" +msgstr "E579: :if угњеждавање је сувише дубоко" + +msgid "E580: :endif without :if" +msgstr "E580: :endif без :if" + +msgid "E581: :else without :if" +msgstr "E581: :else без :if" + +msgid "E582: :elseif without :if" +msgstr "E582: :elseif без :if" + +msgid "E583: multiple :else" +msgstr "E583: вишеструко :else" + +msgid "E584: :elseif after :else" +msgstr "E584: :elseif након :else" + +msgid "E585: :while/:for nesting too deep" +msgstr "E585: :while/:for угњеждавање је сувише дубоко" + +msgid "E586: :continue without :while or :for" +msgstr "E586: :continue без :while или :for" + +msgid "E587: :break without :while or :for" +msgstr "E587: :break без :while или :for" + +msgid "E732: Using :endfor with :while" +msgstr "E732: Коришћење :endfor са :while" + +msgid "E733: Using :endwhile with :for" +msgstr "E733: Коришћење :endwhile са :for" + +msgid "E601: :try nesting too deep" +msgstr "E601: :try угњеждавање је сувише дубоко" + +msgid "E603: :catch without :try" +msgstr "E603: :catch без :try" + +msgid "E604: :catch after :finally" +msgstr "E604: :catch након :finally" + +msgid "E606: :finally without :try" +msgstr "E606: :finally без :try" + +msgid "E607: multiple :finally" +msgstr "E607: вишеструко :finally" + +msgid "E602: :endtry without :try" +msgstr "E602: :endtry без :try" + +msgid "E193: :endfunction not inside a function" +msgstr "E193: :endfunction није унутар функције" + +msgid "E788: Not allowed to edit another buffer now" +msgstr "E788: Уређивање другог бафера тренутно није дозвољено" + +msgid "E811: Not allowed to change buffer information now" +msgstr "E811: Мењање информација о баферу тренутно није дозвољено" + +msgid "tagname" +msgstr "ознака" + +msgid " kind file\n" +msgstr " врста датотеке\n" + +msgid "'history' option is zero" +msgstr "опција 'history' је нула" + +#, c-format +msgid "" +"\n" +"# %s History (newest to oldest):\n" +msgstr "" +"\n" +"# %s Историја (од најновијег ка најстаријем):\n" + +msgid "Command Line" +msgstr "Командна линија" + +msgid "Search String" +msgstr "Стринг за претрагу" + +msgid "Expression" +msgstr "Израз" + +msgid "Input Line" +msgstr "Линија за унос" + +msgid "Debug Line" +msgstr "Debug линија" + +msgid "E198: cmd_pchar beyond the command length" +msgstr "E198: cmd_pchar је иза дужине команде" + +msgid "E199: Active window or buffer deleted" +msgstr "E199: Active window or buffer deleted" + +msgid "E812: Autocommands changed buffer or buffer name" +msgstr "E812: Аутокоманде су промениле багер или име бафера" + +msgid "Illegal file name" +msgstr "Недозвољено име датотеке" + +msgid "is a directory" +msgstr "је директоријум" + +msgid "is not a file" +msgstr "није датотека" + +msgid "is a device (disabled with 'opendevice' option)" +msgstr "је уређај (онемогућен опцијом 'opendevice')" + +msgid "[New File]" +msgstr "[Нова датотека]" + +msgid "[New DIRECTORY]" +msgstr "[Нов ДИРЕКТОРИЈУМ]" + +msgid "[File too big]" +msgstr "[Датотека је сувише велика]" + +msgid "[Permission Denied]" +msgstr "[Дозвола одбијена]" + +msgid "E200: *ReadPre autocommands made the file unreadable" +msgstr "E200: *ReadPre аутокоманде су учиниле датотеку нечитљивом" + +msgid "E201: *ReadPre autocommands must not change current buffer" +msgstr "E201: *ReadPre аутокоманде не смеју да измене текући бафер" + +msgid "Vim: Reading from stdin...\n" +msgstr "Vim: Читање са stdin...\n" + +msgid "Reading from stdin..." +msgstr "Читање са stdin..." + +msgid "E202: Conversion made file unreadable!" +msgstr "E202: Конверзија је учинила датотеку нечитљивом!" + +msgid "[fifo/socket]" +msgstr "[fifo/утичница]" + +msgid "[fifo]" +msgstr "[fifo]" + +msgid "[socket]" +msgstr "[утичница]" + +msgid "[character special]" +msgstr "[специјални карактер]" + +msgid "[CR missing]" +msgstr "[недостаје CR]" + +msgid "[long lines split]" +msgstr "[дуге линије преломљене]" + +msgid "[NOT converted]" +msgstr "[НИЈЕ конвертовано]" + +msgid "[convered]" +msgstr "[конвертовано]" + +#, c-format +msgid "[CONVERSION ERROR in line %ld]" +msgstr "[ГРЕШКА КОНВЕРЗИЈЕ у линији %ld]" + +#, c-format +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[НЕДОЗВОЉЕН БАЈТ у линији %ld]" + +msgid "[READ ERRORS]" +msgstr "[ГРЕШКЕ ПРИ ЧИТАЊУ]" + +msgid "Can't find temp file for conversion" +msgstr "Привремена датотека за конверзију не може да се пронађе" + +msgid "Conversion with 'charconvert' failed" +msgstr "Конверзија са 'charconvert' није успела" + +msgid "can't read output of 'charconvert'" +msgstr "излаз 'charconvert' не може да се прочита" + +msgid "E676: No matching autocommands for acwrite buffer" +msgstr "E676: Нема одговарајућих аутокоманди за acwrite бафер" + +msgid "E203: Autocommands deleted or unloaded buffer to be written" +msgstr "E203: Аутокоманде су обрисале или уклониле из меморије бафер који требало да буде уписан" + +msgid "E204: Autocommand changed number of lines in unexpected way" +msgstr "E204: Аутокоманде су на неочекиван начин промениле број линија" + +msgid "NetBeans disallows writes of unmodified buffers" +msgstr "NetBeans не дозвољава упис неизмењених бафера" + +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "Парцијални уписи нису дозвољени за NetBeans бафере" + +msgid "is not a file or writable device" +msgstr "није датотека или уређај на који може да се уписује" + +msgid "writing to device disabled with 'opendevice' option" +msgstr "упис на уређај је онемогућен опцијом 'opendevice'" + +msgid "is read-only (add ! to override)" +msgstr "је само за читање (додајте ! за премошћавање)" + +msgid "E506: Can't write to backup file (add ! to override)" +msgstr "E506: Не може да се упише у резервну датотеку (додајте ! за премошћавање)" + +msgid "E507: Close error for backup file (add ! to override)" +msgstr "E507: Грешка код затварања за резервну датотеку (додајте ! за премошћавање)" + +msgid "E508: Can't read file for backup (add ! to override)" +msgstr "E508: Резервна датотека не може да се прочита (додајте ! за премошћавање)" + +msgid "E509: Cannot create backup file (add ! to override)" +msgstr "E509: Резервна датотека не може да се креира (додајте ! за премошћавање)" + +msgid "E510: Can't make backup file (add ! to override)" +msgstr "E510: Резервна датотека не може да се направи (додајте ! за премошћавање)" + +msgid "E214: Can't find temp file for writing" +msgstr "E214: Привремена датотека за упис не може да се пронађе" + +msgid "E213: Cannot convert (add ! to write without conversion)" +msgstr "E213: Конверзија није могућа (додајте ! за упис без конверзије)" + +msgid "E166: Can't open linked file for writing" +msgstr "E166: Повезана датотека не може да се отвори за упис" + +msgid "E212: Can't open file for writing" +msgstr "E212: Датотека не може да се отвори за упис" + +msgid "E949: File changed while writing" +msgstr "E949: Датотека је промењена током уписа" + +msgid "E512: Close failed" +msgstr "E512: Затварање није успело" + +msgid "E513: write error, conversion failed (make 'fenc' empty to override)" +msgstr "E513: грешка при упису, конверзија није успела (оставите 'fenc' празно да премостите)" + +#, c-format +msgid "" +"E513: write error, conversion failed in line %ld (make 'fenc' empty to " +"override)" +msgstr "" +"E513: грешка при упису, конверзија није успела у линији %ld (оставите 'fenc' празно " +"да премостите)" + +msgid "E514: write error (file system full?)" +msgstr "E514: грешка при упису (систем датотека је пун?)" + +msgid " CONVERSION ERROR" +msgstr " ГРЕШКА КОНВЕРЗИЈЕ" + +#, c-format +msgid " in line %ld;" +msgstr " у линији %ld;" + +msgid "[Device]" +msgstr "[Уређај]" + +msgid "[New]" +msgstr "[Ново]" + +msgid " [a]" +msgstr " [н]" + +msgid " appended" +msgstr " настављено" + +msgid " [w]" +msgstr " [у]" + +msgid " written" +msgstr " уписано" + +msgid "E205: Patchmode: can't save original file" +msgstr "E205: Patch режим: оригинална датотека не може да се сачува" + +msgid "E206: patchmode: can't touch empty original file" +msgstr "E206: Patch режим: не може да се креира празна оригинална датотека" + +msgid "E207: Can't delete backup file" +msgstr "E207: Резервна датотека не може да се обрише" + +msgid "" +"\n" +"WARNING: Original file may be lost or damaged\n" +msgstr "" +"\n" +"УПОЗОРЕЊЕ: Оригинална датотека је можда изгубљена или оштећена\n" + +msgid "don't quit the editor until the file is successfully written!" +msgstr "не напуштајте едитор док се датотека успешно не упише!" + +msgid "[dos]" +msgstr "[dos]" + +msgid "[dos format]" +msgstr "[dos формат]" + +msgid "[mac]" +msgstr "[mac]" + +msgid "[mac format]" +msgstr "[mac формат]" + +msgid "[unix]" +msgstr "[unix]" + +msgid "[unix format]" +msgstr "[unix формат]" + +msgid "1 line, " +msgstr "1 линија, " + +#, c-format +msgid "%ld lines, " +msgstr "%ld линија, " + +msgid "1 character" +msgstr "1 карактер" + +#, c-format +msgid "%lld characters" +msgstr "%lld карактера" + +msgid "[noeol]" +msgstr "[noeol]" + +msgid "[Incomplete last line]" +msgstr "[Последња линија није комплетна]" + +msgid "WARNING: The file has been changed since reading it!!!" +msgstr "УПОЗОРЕЊЕ: Ова датотека је промењена од кад је прочитана!!!" + +msgid "Do you really want to write to it" +msgstr "Да ли заиста желите да пишете у њу" + +#, c-format +msgid "E208: Error writing to \"%s\"" +msgstr "E208: Грешка при упису у \"%s\"" + +#, c-format +msgid "E209: Error closing \"%s\"" +msgstr "E209: Грешка при затварању \"%s\"" + +#, c-format +msgid "E210: Error reading \"%s\"" +msgstr "E210: Грешка при читању \"%s\"" + +msgid "E246: FileChangedShell autocommand deleted buffer" +msgstr "E246: FileChangedShell аутокоманда је обрисала бафер" + +#, c-format +msgid "E211: File \"%s\" no longer available" +msgstr "E211: Датотека \"%s\" више није доступна" + +#, c-format +msgid "" +"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as " +"well" +msgstr "" +"W12: Упозорење: Датотека \"%s\" је измењена и бафер у програму Vim је такође " +"измењен" + +msgid "See \":help W12\" for more info." +msgstr "Погледајте \":help W12\" за више информација." + +#, c-format +msgid "W11: Warning: File \"%s\" has changed since editing started" +msgstr "W11: Упозорење: Датотека \"%s\" је измењена откад је започето уређивање" + +msgid "See \":help W11\" for more info." +msgstr "Погледајте \":help W11\" за више информација." + +#, c-format +msgid "W16: Warning: Mode of file \"%s\" has changed since editing started" +msgstr "W16: Упозорење: Режим датотеке \"%s\" је измењен откад је започето уређивање" + +msgid "See \":help W16\" for more info." +msgstr "Погледајте \":help W16\" за више информација." + +#, c-format +msgid "W13: Warning: File \"%s\" has been created after editing started" +msgstr "W13: Упозорење: Датотека \"%s\" је креирана након почетка уређивања" + +msgid "Warning" +msgstr "Упозорење" + +msgid "" +"&OK\n" +"&Load File" +msgstr "" +"&OK\n" +"&Учитај датотеку" + +#, c-format +msgid "E462: Could not prepare for reloading \"%s\"" +msgstr "E462: Припрема за поновно учитавање \"%s\" није била могућа" + +#, c-format +msgid "E321: Could not reload \"%s\"" +msgstr "E321: \"%s\" не може поново да се учита" + +msgid "--Deleted--" +msgstr "--Обрисано--" + +#, c-format +msgid "auto-removing autocommand: %s <buffer=%d>" +msgstr "ауто-уклањајућа аутокоманда: %s <бафер=%d>" + +#, c-format +msgid "E367: No such group: \"%s\"" +msgstr "E367: Нема такве групе: \"%s\"" + +msgid "E936: Cannot delete the current group" +msgstr "E936: Текућа група не може да се обрише" + +msgid "W19: Deleting augroup that is still in use" +msgstr "W19: Брисање augroup која је још у употреби" + +#, c-format +msgid "E215: Illegal character after *: %s" +msgstr "E215: Недозвољени карактер након *: %s" + +#, c-format +msgid "E216: No such event: %s" +msgstr "E216: Нема таквог догађаја: %s" + +#, c-format +msgid "E216: No such group or event: %s" +msgstr "E216: Нема такве групе или догађаја: %s" + +msgid "" +"\n" +"--- Auto-Commands ---" +msgstr "" +"\n" +"--- Ауто-Команде ---" + +#, c-format +msgid "E680: <buffer=%d>: invalid buffer number " +msgstr "E680: <бафер=%d>: неисправан број бафера " + +msgid "E217: Can't execute autocommands for ALL events" +msgstr "E217: Аутокоманде за СВЕ догађаје не могу да се изврше" + +msgid "No matching autocommands" +msgstr "Нема подударајућих аутокоманди" + +msgid "E218: autocommand nesting too deep" +msgstr "E218: Угњшждавање аутокоманде је сувише дубоко" + +#, c-format +msgid "%s Auto commands for \"%s\"" +msgstr "%s Ауто команде за \"%s\"" + +#, c-format +msgid "Executing %s" +msgstr "Извршавање %s" + +#, c-format +msgid "autocommand %s" +msgstr "аутокоманда %s" + +msgid "E219: Missing {." +msgstr "E219: Недостаје {." + +msgid "E220: Missing }." +msgstr "E220: Недостаје }." + +msgid "E490: No fold found" +msgstr "E490: Није пронађено ниједно склапање" + +msgid "E350: Cannot create fold with current 'foldmethod'" +msgstr "E350: Склапање не може да се креира са текућим 'foldmethod'" + +msgid "E351: Cannot delete fold with current 'foldmethod'" +msgstr "E351: Склапање не може да се обрише са текћим 'foldmethod'" + +msgid "E222: Add to read buffer" +msgstr "E222: Додавање у бафер читања" + +msgid "E223: recursive mapping" +msgstr "E223: рекурзивно мапирање" + +#, c-format +msgid "E224: global abbreviation already exists for %s" +msgstr "E224: глобална скраћеница за %s већ постоји" + +#, c-format +msgid "E225: global mapping already exists for %s" +msgstr "E225: глобално мапирање за %s већ постоји" + +#, c-format +msgid "E226: abbreviation already exists for %s" +msgstr "E226: скраћеница за %s већ постоји" + +#, c-format +msgid "E227: mapping already exists for %s" +msgstr "E227: мапирање за %s већ постоји" + +msgid "No abbreviation found" +msgstr "Скраћеница није пронађена" + +msgid "No mapping found" +msgstr "Мапирање није пронађено" + +msgid "E228: makemap: Illegal mode" +msgstr "E228: makemap: Недозвољен режим" + +msgid "E851: Failed to create a new process for the GUI" +msgstr "E851: Креирање новог процеса за GUI није успело" + +msgid "E852: The child process failed to start the GUI" +msgstr "E852: Процес потомак није успео да покрене GUI" + +msgid "E229: Cannot start the GUI" +msgstr "E229: GUI не може да се покрене" + +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: Из \"%s\" не може да се чита" + +msgid "E665: Cannot start GUI, no valid font found" +msgstr "E665: GUI не може да се покрене, није пронађен валидан фонт" + +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' неисправан" + +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: Вредност 'imactivatekey' није исправна" + +#, c-format +msgid "E254: Cannot allocate color %s" +msgstr "E254: Боја %s не може да се алоцира" + +msgid "No match at cursor, finding next" +msgstr "Нема подударања на месту курсора, тражи се даље" + +msgid "<cannot open> " +msgstr "<не може да се отвори> " + +#, c-format +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile: не може да се добије фонт %s" + +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile: повратак у текући директоријум није могућ" + +msgid "Pathname:" +msgstr "Име путање:" + +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile: не може да се добије текући директоријум" + +msgid "OK" +msgstr "ОК" + +msgid "Cancel" +msgstr "Откажи" + +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." +msgstr "Scrollbar Widget: Не може да се добије геометрија thumb pixmap." + +msgid "Vim dialog" +msgstr "Vim дијалог" + +msgid "E232: Cannot create BalloonEval with both message and callback" +msgstr "E232: Не може да се креира BalloonEval и са поруком и са повратним позивом" + +msgid "_Cancel" +msgstr "_Откажи" + +msgid "_Save" +msgstr "_Сачувај" + +msgid "_Open" +msgstr "_Отвори" + +msgid "_OK" +msgstr "_OK" + +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" +msgstr "" +"&Да\n" +"&Не\n" +"&Откажи" + +msgid "Yes" +msgstr "Да" + +msgid "No" +msgstr "Не" + +msgid "Input _Methods" +msgstr "_Методе уноса" + +msgid "VIM - Search and Replace..." +msgstr "VIM - Претрага and Замена..." + +msgid "VIM - Search..." +msgstr "VIM - Претрага..." + +msgid "Find what:" +msgstr "Пронађи:" + +msgid "Replace with:" +msgstr "Замени са:" + +msgid "Match whole word only" +msgstr "Само целе речи подударају" + +msgid "Match case" +msgstr "Мала/велика слова" + +msgid "Direction" +msgstr "Смер" + +msgid "Up" +msgstr "Горе" + +msgid "Down" +msgstr "Доле" + +msgid "Find Next" +msgstr "Пронађи наредно" + +msgid "Replace" +msgstr "Замени" + +msgid "Replace All" +msgstr "Замени све" + +msgid "_Close" +msgstr "_Затвори" + +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim: Примљен је \"die\" захтев од менаџера сесије\n" + +msgid "Close tab" +msgstr "Затвори картицу" + +msgid "New tab" +msgstr "Нова картица" + +msgid "Open Tab..." +msgstr "Отвори картицу..." + +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim: Главни прозор је неочекивано уништен\n" + +msgid "&Filter" +msgstr "&Филтер" + +msgid "&Cancel" +msgstr "&Откажи" + +msgid "Directories" +msgstr "Директоријуми" + +msgid "Filter" +msgstr "Филтер" + +msgid "&Help" +msgstr "&Помоћ" + +msgid "Files" +msgstr "Датотеке" + +msgid "&OK" +msgstr "&ОК" + +msgid "Selection" +msgstr "Селекција" + +msgid "Find &Next" +msgstr "Пронађи &Следеће" + +msgid "&Replace" +msgstr "&Замени" + +msgid "Replace &All" +msgstr "Замени с&Ве" + +msgid "&Undo" +msgstr "О&позови" + +msgid "Open tab..." +msgstr "Отвори картицу" + +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "Пронађи стринг (користите '\\\\' да пронађете '\\')" + +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "Пронађи & Замени (користите '\\\\' да пронађете '\\')" + +msgid "Not Used" +msgstr "Не користи се" + +msgid "Directory\t*.nothing\n" +msgstr "Директоријум\t*.ништа\n" + +#, c-format +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: Наслов прозора \"%s\" не може да се пронађе" + +#, c-format +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: Аргумент није подржан: \"-%s\"; Користите OLE верзију." + +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: Није могуће отварање прозора унутар MDI апликације" + +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "Vim E458: colormap унос не може да се алоцира, неке боје су можда неисправне" + +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "E250: Фонтови за следеће сетове карактера недостају у фонтсету %s:" + +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: Име фонтсета: %s" + +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "Фонт %s' није фиксне ширине" + +#, c-format +msgid "E253: Fontset name: %s" +msgstr "E253: Име фонтсета: %s" + +#, c-format +msgid "Font0: %s" +msgstr "Фонт0: %s" + +#, c-format +msgid "Font1: %s" +msgstr "Фонт1: %s" + +#, c-format +msgid "Font%ld width is not twice that of font0" +msgstr "Ширина фонт%ld није двострука од ширине фонт0" + +#, c-format +msgid "Font0 width: %ld" +msgstr "Фонт0 ширина: %ld" + +#, c-format +msgid "Font1 width: %ld" +msgstr "Фонт1 ширина: %ld" + +msgid "Invalid font specification" +msgstr "Неисправна спецификација фонта" + +msgid "&Dismiss" +msgstr "О&дбаци" + +msgid "no specific match" +msgstr "нема посебног подударања" + +msgid "Vim - Font Selector" +msgstr "Vim - Фонт селектор" + +msgid "Name:" +msgstr "Име:" + +msgid "Show size in Points" +msgstr "Прикажи величину у Тачкама" + +msgid "Encoding:" +msgstr "Кодирање:" + +msgid "Font:" +msgstr "Фонт:" + +msgid "Style:" +msgstr "Стил:" + +msgid "Size:" +msgstr "Величина:" + +msgid "E256: Hangul automata ERROR" +msgstr "E256: ГРЕШКА Hangul аутомата" + +msgid "E550: Missing colon" +msgstr "E550: Недостаје двотачка" + +msgid "E551: Illegal component" +msgstr "E551: Неисправна компонента" + +msgid "E552: digit expected" +msgstr "E552: очекује се цифра" + +#, c-format +msgid "Page %d" +msgstr "Страна %d" + +msgid "No text to be printed" +msgstr "Нема текста за штампу" + +#, c-format +msgid "Printing page %d (%d%%)" +msgstr "Штампање стране %d (%d%%)" + +#, c-format +msgid " Copy %d of %d" +msgstr " Копија %d од %d" + +#, c-format +msgid "Printed: %s" +msgstr "Одштампано: %s" + +msgid "Printing aborted" +msgstr "Штампање прекинуто" + +msgid "E455: Error writing to PostScript output file" +msgstr "E455: Грешка приликом уписа у PostScript излазну датотеку" + +#, c-format +msgid "E624: Can't open file \"%s\"" +msgstr "E624: Датотека \"%s\" не може да се отвори" + +#, c-format +msgid "E457: Can't read PostScript resource file \"%s\"" +msgstr "E457: PostScript resource датотека \"%s\" не може да се чита" + +#, c-format +msgid "E618: file \"%s\" is not a PostScript resource file" +msgstr "E618: датотека \"%s\" није PostScript resource датотека" + +#, c-format +msgid "E619: file \"%s\" is not a supported PostScript resource file" +msgstr "E619: датотека \"%s\" није подржана PostScript resource датотека" + +#, c-format +msgid "E621: \"%s\" resource file has wrong version" +msgstr "E621: \"%s\" resource датотека је погрешне верзије" + +msgid "E673: Incompatible multi-byte encoding and character set." +msgstr "E673: Вишебајтно кодирање и скуп карактера нису компатибилни." + +msgid "E674: printmbcharset cannot be empty with multi-byte encoding." +msgstr "E674: printmbcharset не може бити празно са вишебајтним кодирањем." + +msgid "E675: No default font specified for multi-byte printing." +msgstr "E675: Није наведен подразумевани фонт за вишебајтно штампање." + +msgid "E324: Can't open PostScript output file" +msgstr "E324: PostScript излазна датотека не може да се отвори" + +#, c-format +msgid "E456: Can't open file \"%s\"" +msgstr "E456: Датотека \"%s\" не може да се отвори" + +msgid "E456: Can't find PostScript resource file \"prolog.ps\"" +msgstr "E456: PostScript resource датотека \"prolog.ps\" не може да се пронађе" + +msgid "E456: Can't find PostScript resource file \"cidfont.ps\"" +msgstr "E456: PostScript resource датотека \"cidfont.ps\" не може да се пронађе" + +#, c-format +msgid "E456: Can't find PostScript resource file \"%s.ps\"" +msgstr "E456: PostScript resource датотека \"%s.ps\" не може да се пронађе" + +#, c-format +msgid "E620: Unable to convert to print encoding \"%s\"" +msgstr "E620: Није могућа конверзија у кодирање за штампу \"%s\"" + +msgid "Sending to printer..." +msgstr "Слање штампачу..." + +msgid "E365: Failed to print PostScript file" +msgstr "E365: PostScript датотека није успела да се одштампа" + +msgid "Print job sent." +msgstr "Задатак штампе је послат" + +msgid "Add a new database" +msgstr "Додај нову базу" + +msgid "Query for a pattern" +msgstr "Упит за шаблон" + +msgid "Show this message" +msgstr "Прикажи ову поруку" + +msgid "Kill a connection" +msgstr "Затвори везу" + +msgid "Reinit all connections" +msgstr "Поново иницијализуј све везе" + +msgid "Show connections" +msgstr "Прикажи везе" + +#, c-format +msgid "E560: Usage: cs[cope] %s" +msgstr "E560: Употреба: cs[cope] %s" + +msgid "This cscope command does not support splitting the window.\n" +msgstr "Ова cscope команда не подржава поделу прозора.\n" + +msgid "E562: Usage: cstag <ident>" +msgstr "E562: Употреба: cstag <ident>" + +msgid "E257: cstag: tag not found" +msgstr "E257: cstag: ознака није пронађена" + +#, c-format +msgid "E563: stat(%s) error: %d" +msgstr "E563: stat(%s) грешка: %d" + +msgid "E563: stat error" +msgstr "E563: stat грешка" + +#, c-format +msgid "E564: %s is not a directory or a valid cscope database" +msgstr "E564: %s није директоријум или валидна cscope база података" + +#, c-format +msgid "Added cscope database %s" +msgstr "cscope база података %s је додата" + +#, c-format +msgid "E262: error reading cscope connection %ld" +msgstr "E262: грешка код читања cscope везе %ld" + +msgid "E561: unknown cscope search type" +msgstr "E561: непознат cscope тип претраге" + +msgid "E566: Could not create cscope pipes" +msgstr "E566: cscope процесни токови нису могли да се креирају" + +msgid "E622: Could not fork for cscope" +msgstr "E622: Рачвање за cscope није успело" + +msgid "cs_create_connection setpgid failed" +msgstr "cs_create_connection setpgid није успео" + +msgid "cs_create_connection exec failed" +msgstr "cs_create_connection exec није успео" + +msgid "cs_create_connection: fdopen for to_fp failed" +msgstr "cs_create_connection: fdopen за to_fp није успео" + +msgid "cs_create_connection: fdopen for fr_fp failed" +msgstr "cs_create_connection: fdopen за fr_fp није успео" + +msgid "E623: Could not spawn cscope process" +msgstr "E623: Мрешћење cscope процеса није успело" + +msgid "E567: no cscope connections" +msgstr "E567: нема cscope веза" + +#, c-format +msgid "E469: invalid cscopequickfix flag %c for %c" +msgstr "E469: неисправан cscopequickfix индикатор %c за %c" + +#, c-format +msgid "E259: no matches found for cscope query %s of %s" +msgstr "E259: нису пронађена подударања за cscope упит %s на %s" + +msgid "cscope commands:\n" +msgstr "cscope команде:\n" + +#, c-format +msgid "%-5s: %s%*s (Usage: %s)" +msgstr "%-5s: %s%*s (Употреба: %s)" + +msgid "" +"\n" +" a: Find assignments to this symbol\n" +" c: Find functions calling this function\n" +" d: Find functions called by this function\n" +" e: Find this egrep pattern\n" +" f: Find this file\n" +" g: Find this definition\n" +" i: Find files #including this file\n" +" s: Find this C symbol\n" +" t: Find this text string\n" +msgstr "" +"\n" +" a: Пронађи доделе овом симболу\n" +" c: Пронађи функције које позивају ову функцију\n" +" d: Пронађи функције које зове ова функција\n" +" e: Пронађи овај egrep шаблон\n" +" f: Пронађи ову датотеку\n" +" g: Пронађи ову дефиницију\n" +" i: Пронађи датотеке које #includе ову датотеку\n" +" s: Пронађи овај C симбол\n" +" t: Пронађи овај текст стринг\n" + +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: cscope database: %s не може да се отвори" + +msgid "E626: cannot get cscope database information" +msgstr "E626: Инфорамције о cscope бази података не могу да се добију" + +msgid "E568: duplicate cscope database not added" +msgstr "E568: Дупликат cscope база података није додата" + +#, c-format +msgid "E261: cscope connection %s not found" +msgstr "E261: cscope веза %s није пронађена" + +#, c-format +msgid "cscope connection %s closed" +msgstr "cscope веза %s је затворена" + +msgid "E570: fatal error in cs_manage_matches" +msgstr "E570: фатална грешка у cs_manage_matches" + +#, c-format +msgid "Cscope tag: %s" +msgstr "Cscope ознака: %s" + +msgid "" +"\n" +" # line" +msgstr "" +"\n" +" # линија" + +msgid "filename / context / line\n" +msgstr "датотека / контекст / линија\n" + +#, c-format +msgid "E609: Cscope error: %s" +msgstr "E609: Cscope грешка: %s" + +msgid "All cscope databases reset" +msgstr "Све cscope базе података ресетоване" + +msgid "no cscope connections\n" +msgstr "нема cscope веза\n" + +msgid " # pid database name prepend path\n" +msgstr " # pid име базе података додај путању испред\n" + +msgid "Lua library cannot be loaded." +msgstr "Lua библиотека не може да се учита" + +msgid "cannot save undo information" +msgstr "инфорамције за опозив не могу да се сачувају" + +msgid "" +"E815: Sorry, this command is disabled, the MzScheme libraries could not be " +"loaded." +msgstr "" +"E815: Жао нам је, ова команда је онемогућена, MzScheme библиотеке нису могле да " +"се учитају." + +msgid "" +"E895: Sorry, this command is disabled, the MzScheme's racket/base module " +"could not be loaded." +msgstr "" +"E895: Жао нам је, ова команда је онемогућена, MzScheme-ов racket/base модул " +"није могао да се учита." + +msgid "invalid expression" +msgstr "неисправан израз" + +msgid "expressions disabled at compile time" +msgstr "изрази су онемогућени у време компилације" + +msgid "hidden option" +msgstr "скривена опција" + +msgid "unknown option" +msgstr "непозната опција" + +msgid "window index is out of range" +msgstr "индекс прозора је ван опсега" + +msgid "couldn't open buffer" +msgstr "бафер не може да се отвори" + +msgid "cannot delete line" +msgstr "линија не може да се обрише" + +msgid "cannot replace line" +msgstr "линија не може да се замени" + +msgid "cannot insert line" +msgstr "линија не може да се уметне" + +msgid "string cannot contain newlines" +msgstr "стринг не може да садржи нове редове" + +msgid "error converting Scheme values to Vim" +msgstr "грешка при конверзији Scheme вредности у Vim" + +msgid "Vim error: ~a" +msgstr "Vim грешка: ~a" + +msgid "Vim error" +msgstr "Vim грешка" + +msgid "buffer is invalid" +msgstr "бафер је неважећи" + +msgid "window is invalid" +msgstr "прозор је неважећи" + +msgid "linenr out of range" +msgstr "linenr је ван опсега" + +msgid "not allowed in the Vim sandbox" +msgstr "није дозвољено у Vim sandbox-у" + +msgid "E836: This Vim cannot execute :python after using :py3" +msgstr "E836: Овај Vim не може да изврши :python након коришћења :py3" + +msgid "" +"E263: Sorry, this command is disabled, the Python library could not be " +"loaded." +msgstr "" +"E263: Жао нам је, ова команда је онемогућена, Python библиотека није " +"могла да се учита." + +msgid "" +"E887: Sorry, this command is disabled, the Python's site module could not be " +"loaded." +msgstr "" +"E887: Жао нам је, ова команда је онемогућена, Python-ов site модул " +"није могао да се учита." + +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: Python не може да се позива рекурзивно" + +msgid "E837: This Vim cannot execute :py3 after using :python" +msgstr "E837: Овај Vim не може да изврши :py3 након коришћења :python" + +msgid "E265: $_ must be an instance of String" +msgstr "E265: $_ мора да буде инстанца String-а" + +msgid "" +"E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "" +"E266: Жао нам је, ова команда је онемогућена, Ruby библиотека није могла да се учита." + +msgid "E267: unexpected return" +msgstr "E267: неочекиван return" + +msgid "E268: unexpected next" +msgstr "E268: неочекивано next" + +msgid "E269: unexpected break" +msgstr "E269: неочекивано break" + +msgid "E270: unexpected redo" +msgstr "E270: неочекивано redo" + +msgid "E271: retry outside of rescue clause" +msgstr "E271: retry ван rescue клаузуле" + +msgid "E272: unhandled exception" +msgstr "E272: необрађени изузетак" + +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: непознат longjmp статус %d" + +msgid "invalid buffer number" +msgstr "неисправан број бафера" + +msgid "not implemented yet" +msgstr "још није имплементирано" + +msgid "cannot set line(s)" +msgstr "линија(е) не може да се постави" + +msgid "invalid mark name" +msgstr "неисправно име маркера" + +msgid "mark not set" +msgstr "маркер није постављен" + +#, c-format +msgid "row %d column %d" +msgstr "ред %d колона %d" + +msgid "cannot insert/append line" +msgstr "линија не може да се уметне/дода на крај" + +msgid "line number out of range" +msgstr "број линије је ван опсега" + +msgid "unknown flag: " +msgstr "непознат индикатор" + +msgid "unknown vimOption" +msgstr "непозната vimОпција" + +msgid "keyboard interrupt" +msgstr "прекид тастатуре" + +msgid "vim error" +msgstr "vim грешка" + +msgid "cannot create buffer/window command: object is being deleted" +msgstr "бафер/прозор команда не може да се креира: објекат се брише" + +msgid "" +"cannot register callback command: buffer/window is already being deleted" +msgstr "" +"команда повратног позива не може да се региструје: бафер/прозор је већ обрисан" + +msgid "" +"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." +"org" +msgstr "" +"E280: TCL ФАТАЛНА ГРЕШКА: reflist је оштећена!? Молимо пријавите ово на vim-dev@vim." +"org" + +msgid "cannot register callback command: buffer/window reference not found" +msgstr "команда повратног позива не може да се региструје: референца бафера/прозора није пронађена" + +msgid "" +"E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "" +"E571: Жао нам је, ова команда је онемогућена: Tcl библиотека није могла да се учита." + +#, c-format +msgid "E572: exit code %d" +msgstr "E572: излазни код %d" + +msgid "cannot get line" +msgstr "линија не може да се добије" + +msgid "Unable to register a command server name" +msgstr "Име сервера команди није могло да се региструје" + +msgid "E248: Failed to send command to the destination program" +msgstr "E248: Слање команде циљном програму није успело" + +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: Користи се несправан ид сервера: %s" + +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "E251: registry својство VIM инстанце је лоше формирано. Обрисано!" + +#, c-format +msgid "E938: Duplicate key in JSON: \"%s\"" +msgstr "E938: Дупли кључ у JSON: \"%s\"" + +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: У Листи недостаје зарез: %s" + +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: Недостаје крај Листе ']': %s" + +msgid "Unknown option argument" +msgstr "Непознат аргумент опције" + +msgid "Too many edit arguments" +msgstr "Сувише аргумента уређивања" + +msgid "Argument missing after" +msgstr "Аргумент недостаје након" + +msgid "Garbage after option argument" +msgstr "Смеће након аргумента опције" + +msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" +msgstr "Сувише \"+command\", \"-c command\" или \"--cmd command\" аргумената" + +msgid "Invalid argument for" +msgstr "Неисправан аргумент for" + +#, c-format +msgid "%d files to edit\n" +msgstr "%d датотека за уређивање\n" + +msgid "netbeans is not supported with this GUI\n" +msgstr "NetBeans није подржан са овим GUI\n" + +msgid "'-nb' cannot be used: not enabled at compile time\n" +msgstr "'-nb' не може да се користи: није омогућено у време компилације\n" + +msgid "This Vim was not compiled with the diff feature." +msgstr "Овај Vim није компајлиран са diff могућношћу." + +msgid "Attempt to open script file again: \"" +msgstr "Покушај да се поново отвори скрипт датотека: \"" + +msgid "Cannot open for reading: \"" +msgstr "Не може да се отвори за читање: \"" + +msgid "Cannot open for script output: \"" +msgstr "Не може да се отвори за излаз скрипте: \"" + +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim: Грешка: Покретање gvim из NetBeans није успело\n" + +msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n" +msgstr "Vim: Грешка: Ова верзија Vim не може да се покрене из Cygwin терминала\n" + +msgid "Vim: Warning: Output is not to a terminal\n" +msgstr "Vim: Упозорење: Излаз није у терминал\n" + +msgid "Vim: Warning: Input is not from a terminal\n" +msgstr "Vim: Упозорење: Улаз није из терминала\n" + +msgid "pre-vimrc command line" +msgstr "pre-vimrc командна линија" + +#, c-format +msgid "E282: Cannot read from \"%s\"" +msgstr "E282: Не може да се чита из \"%s\"" + +msgid "" +"\n" +"More info with: \"vim -h\"\n" +msgstr "" +"\n" +"Више инфо са: \"vim -h\"\n" + +msgid "[file ..] edit specified file(s)" +msgstr "[датотека ..] уређуј наведену(е) датотеку(е)" + +msgid "- read text from stdin" +msgstr "- читај текст са stdin" + +msgid "-t tag edit file where tag is defined" +msgstr "-t tag уређуј датотеку где је дефинисана ознака" + +msgid "-q [errorfile] edit file with first error" +msgstr "-q [дат.грешке] уређуј датотеку са првом грешком" + +msgid "" +"\n" +"\n" +"usage:" +msgstr "" +"\n" +"\n" +"употреба:" + +msgid " vim [arguments] " +msgstr " vim [аргументи] " + +msgid "" +"\n" +" or:" +msgstr "" +"\n" +" или:" + +msgid "" +"\n" +"Where case is ignored prepend / to make flag upper case" +msgstr "" +"\n" +"Где се мала/велика слова игноришу ставите испред / како би претворили индикатор у велика слова" + +msgid "" +"\n" +"\n" +"Arguments:\n" +msgstr "" +"\n" +"\n" +"Аргументи:\n" + +msgid "--\t\t\tOnly file names after this" +msgstr "--\t\t\tСамо имена датотека након овога" + +msgid "--literal\t\tDon't expand wildcards" +msgstr "--literal\t\tНе развијај џокере" + +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\t\tРегиструј овај gvim за OLE" + +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\t\tУклони регистрацију gvim за OLE" + +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\t\tПокрени користећи GUI (као \"gvim\")" + +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "-f или --nofork\tУ предњем плану: немој да рачваш кад се покреће GUI" + +msgid "-v\t\t\tVi mode (like \"vi\")" +msgstr "-v\t\t\tVi режим (као \"vi\")" + +msgid "-e\t\t\tEx mode (like \"ex\")" +msgstr "-e\t\t\tEx режим (као \"ex\")" + +msgid "-E\t\t\tImproved Ex mode" +msgstr "-E\t\t\tУнапређен Ex режим" + +msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" +msgstr "-s\t\t\tНечујни (batch) режим (само за \"ex\")" + +msgid "-d\t\t\tDiff mode (like \"vimdiff\")" +msgstr "-d\t\t\tDiff режим (као \"vimdiff\")" + +msgid "-y\t\t\tEasy mode (like \"evim\", modeless)" +msgstr "-y\t\t\tEasy режим (као \"evim\", безрежимни)" + +msgid "-R\t\t\tReadonly mode (like \"view\")" +msgstr "-R\t\t\tReadonly режим (као \"view\")" + +msgid "-Z\t\t\tRestricted mode (like \"rvim\")" +msgstr "-Z\t\t\tRestricted режим (као \"rvim\")" + +msgid "-m\t\t\tModifications (writing files) not allowed" +msgstr "-m\t\t\tИзмене (уписивање датотека) нису дозвољене" + +msgid "-M\t\t\tModifications in text not allowed" +msgstr "-M\t\t\tИзмене у тексту нису дозвољене" + +msgid "-b\t\t\tBinary mode" +msgstr "-b\t\t\tБинарни режим" + +msgid "-l\t\t\tLisp mode" +msgstr "-l\t\t\tLisp режим" + +msgid "-C\t\t\tCompatible with Vi: 'compatible'" +msgstr "-C\t\t\tКомпатибилан са Vi: 'compatible'" + +msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" +msgstr "-N\t\t\tНе потпуно Vi компатибилан: 'nocompatible'" + +msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]" +msgstr "-V[N][fname]\t\tБуди опширан [ниво N] [бележи поруке у fname]" + +msgid "-D\t\t\tDebugging mode" +msgstr "-D\t\t\tDebugging режим" + +msgid "-n\t\t\tNo swap file, use memory only" +msgstr "-n\t\t\tБез swap датотеке, користи само меморију" + +msgid "-r\t\t\tList swap files and exit" +msgstr "-r\t\t\tИзлистај swap датотеке и изађи" + +msgid "-r (with file name)\tRecover crashed session" +msgstr "-r (са именом датотеке)\tОбнови срушену сесију" + +msgid "-L\t\t\tSame as -r" +msgstr "-L\t\t\tИсто као -r" + +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\t\tНемој да користиш нов cli да отвориш прозор" + +msgid "-dev <device>\t\tUse <device> for I/O" +msgstr "-dev <уређај>\t\tКористи <уређај> за У/И" + +msgid "-A\t\t\tstart in Arabic mode" +msgstr "-A\t\t\tПокрени у Арапском режиму" + +msgid "-H\t\t\tStart in Hebrew mode" +msgstr "-H\t\t\tПокрени у Хебрејском режиму" + +msgid "-F\t\t\tStart in Farsi mode" +msgstr "-F\t\t\tПокрени у Фарси режиму" + +msgid "-T <terminal>\tSet terminal type to <terminal>" +msgstr "-T <терминал>\tПостави тип терминала на <терминал>" + +msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" +msgstr "--not-a-term\t\tПрескочи упозорење да улаз/излаз није терминал" + +msgid "--ttyfail\t\tExit if input or output is not a terminal" +msgstr "--ttyfail\t\tИзађи ако улаз или излаз нису терминал" + +msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc" +msgstr "-u <vimrc>\t\tКористи <vimrc> уместо било ког .vimrc" + +msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc" +msgstr "-U <gvimrc>\t\tКористи <gvimrc> уместо било ког .gvimrc" + +msgid "--noplugin\t\tDon't load plugin scripts" +msgstr "--noplugin\t\tНе учитавај скрипте додатака" + +msgid "-p[N]\t\tOpen N tab pages (default: one for each file)" +msgstr "-p[N]\t\tОтвори N картица (подразумевано: по једну за сваку датотеку)" + +msgid "-o[N]\t\tOpen N windows (default: one for each file)" +msgstr "-o[N]\t\tОтвори N прозора (подразумевано: по један за сваку датотеку)" + +msgid "-O[N]\t\tLike -o but split vertically" +msgstr "-O[N]\t\tКао -o али подели по вертикали" + +msgid "+\t\t\tStart at end of file" +msgstr "+\t\t\tПочни на крају датотеке" + +msgid "+<lnum>\t\tStart at line <lnum>" +msgstr "+<бројл>\t\tПочни на линији <бројл>" + +msgid "--cmd <command>\tExecute <command> before loading any vimrc file" +msgstr "--cmd <команда>\tИзврши <команда> пре учитавања било које vimrc датотеке" + +msgid "-c <command>\t\tExecute <command> after loading the first file" +msgstr "-c <команда>\t\tИзврши <команда> након учитавања прве датотеке" + +msgid "-S <session>\t\tSource file <session> after loading the first file" +msgstr "-S <сесија>\t\tУчитај као извор датотеку <сесија> након учитавања прве датотеке" + +msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>" +msgstr "-s <скриптулаз>\tЧитај команде Нормалног режима из датотеке <скриптулаз>" + +msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>" +msgstr "-w <скриптизлаз>\tНадовежи све откуцане команде на крај датотеке <скриптизлаз>" + +msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>" +msgstr "-W <скриптизлаз>\tУписуј све откуцане команде у датотеку <скриптизлаз>" + +msgid "-x\t\t\tEdit encrypted files" +msgstr "-x\t\t\tУређуј шифроване датотеке" + +msgid "-display <display>\tConnect vim to this particular X-server" +msgstr "-display <дисплеј>\tПовежи vim на овај X-сервер" + +msgid "-X\t\t\tDo not connect to X server" +msgstr "-X\t\t\tНе повезуј се на X сервер" + +msgid "--remote <files>\tEdit <files> in a Vim server if possible" +msgstr "--remote <датотеке>\tУређуј <датотеке> у Vim серверу ако је могуће" + +msgid "--remote-silent <files> Same, don't complain if there is no server" +msgstr "--remote-silent <датотеке> Исто, не буни се ако нема сервера" + +msgid "" +"--remote-wait <files> As --remote but wait for files to have been edited" +msgstr "" +"--remote-wait <датотеке> Као --remote али чекај да датотеке буду уређене" + +msgid "" +"--remote-wait-silent <files> Same, don't complain if there is no server" +msgstr "" +"--remote-wait-silent <датотеке> Исто, не буни се ако нема сервера" + +msgid "" +"--remote-tab[-wait][-silent] <files> As --remote but use tab page per file" +msgstr "" +"--remote-tab[-wait][-silent] <датотеке> Као --remote али користи једну картицу по датотеци" + +msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit" +msgstr "--remote-send <тастери>\tПошаљи <тастери> Vim серверу и изађи" + +msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result" +msgstr "--remote-expr <израз>\tИзрачунај <израз> у Vim серверу и одштампај резултат" + +msgid "--serverlist\t\tList available Vim server names and exit" +msgstr "--serverlist\t\tИзлистај имена доступних Vim сервера и изађи" + +msgid "--servername <name>\tSend to/become the Vim server <name>" +msgstr "--servername <име>\tПошаљи/постани Vim сервер <име>" + +msgid "--startuptime <file>\tWrite startup timing messages to <file>" +msgstr "--startuptime <датотека>\tУпиши поруке о дужини покретања у <датотеку>" + +msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo" +msgstr "-i <viminfo>\t\tКористи <viminfo> уместо .viminfo" + +msgid "--clean\t\t'nocompatible', Vim defaults, no plugins, no viminfo" +msgstr "--clean\t\t'nocompatible', Vim подразумеване вредности, без додатака, без viminfo" + +msgid "-h or --help\tPrint Help (this message) and exit" +msgstr "-h or --help\tИспиши Помоћ (ову поруку) и изађи" + +msgid "--version\t\tPrint version information and exit" +msgstr "--version\t\tИспиши информације о верзији и изађи" + +msgid "" +"\n" +"Arguments recognised by gvim (Motif version):\n" +msgstr "" +"\n" +"Аргументи које препознаје gvim (Motif верзија):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (neXtaw version):\n" +msgstr "" +"\n" +"Аргументи које препознаје gvim (neXtaw верзија):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (Athena version):\n" +msgstr "" +"\n" +"Аргументи које препознаје gvim (Athena верзија):\n" + +msgid "-display <display>\tRun vim on <display>" +msgstr "-display <дисплеј>\tПокрени vim на <дисплеј>" + +msgid "-iconic\t\tStart vim iconified" +msgstr "-iconic\t\tПокрени vim као икону" + +msgid "-background <color>\tUse <color> for the background (also: -bg)" +msgstr "-background <боја>\tКористи <боја> за позадину (такође: -bg)" + +msgid "-foreground <color>\tUse <color> for normal text (also: -fg)" +msgstr "-foreground <боја>\tКористи <боја> за нормални текст (такође: -fg)" + +msgid "-font <font>\t\tUse <font> for normal text (also: -fn)" +msgstr "-font <фонт>\t\tКористи <фонт> за нормални текст (такође: -fn)" + +msgid "-boldfont <font>\tUse <font> for bold text" +msgstr "-boldfont <фонт>\tКористи <фонт> за подебљани текст" + +msgid "-italicfont <font>\tUse <font> for italic text" +msgstr "-italicfont <фонт>\tКористи <фонт> за курзивни текст" + +msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)" +msgstr "-geometry <геом>\tКористи <геом> за почетну геометрију (такође: -geom)" + +msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)" +msgstr "-borderwidth <ширина>\tКористи оквир ширине <ширина> (такође: -bw)" + +msgid "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)" +msgstr "-scrollbarwidth <ширина> Користи Линију за скроловање ширине <ширина> (такође: -sw)" + +msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)" +msgstr "-menuheight <ширина>\tКористи линију менија висине <висина> (такође: -mh)" + +msgid "-reverse\t\tUse reverse video (also: -rv)" +msgstr "-reverse\t\tКористи обрнути видео (такође: -rv)" + +msgid "+reverse\t\tDon't use reverse video (also: +rv)" +msgstr "+reverse\t\tНемој да користиш обрнути видео (такође: +rv)" + +msgid "-xrm <resource>\tSet the specified resource" +msgstr "-xrm <ресурс>\tПостави наведени ресурс" + +msgid "" +"\n" +"Arguments recognised by gvim (GTK+ version):\n" +msgstr "" +"\n" +"Аргументи које препознаје gvim (GTK+ верзија):\n" + +msgid "-display <display>\tRun vim on <display> (also: --display)" +msgstr "-display <дисплеј>\tПокрени vim на <дисплеј> (такође: --display)" + +msgid "--role <role>\tSet a unique role to identify the main window" +msgstr "--role <улога>\tПостави јединствену улогу да би се идентификовао главни прозор" + +msgid "--socketid <xid>\tOpen Vim inside another GTK widget" +msgstr "--socketid <xid>\tОтвори Vim унутар другог GTK виџета" + +msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" +msgstr "--echo-wid\t\tНека gvim испише Window ID на stdout" + +msgid "-P <parent title>\tOpen Vim inside parent application" +msgstr "-P <назив родитеља>\tОтвори Vim унутар родитељске апликације" + +msgid "--windowid <HWND>\tOpen Vim inside another win32 widget" +msgstr "--windowid <HWND>\tОтвори Vim унутар другог win32 виџета" + +msgid "No display" +msgstr "Нема приказа" + +msgid ": Send failed.\n" +msgstr ": Слање није успело.\n" + +msgid ": Send failed. Trying to execute locally\n" +msgstr ": Слање није успело. Покушава се локално извршавање\n" + +#, c-format +msgid "%d of %d edited" +msgstr "%d од %d уређено" + +msgid "No display: Send expression failed.\n" +msgstr "Нема приказа: Израз слања није успео.\n" + +msgid ": Send expression failed.\n" +msgstr ": Израз слања није успео.\n" + +msgid "No marks set" +msgstr "Нема постављених маркера" + +#, c-format +msgid "E283: No marks matching \"%s\"" +msgstr "E283: Нема маркера који се подударају са \"%s\"" + +msgid "" +"\n" +"mark line col file/text" +msgstr "" +"\n" +"линија маркера кол датотека/текст" + +msgid "" +"\n" +" jump line col file/text" +msgstr "" +"\n" +" линија скока кол датотека/текст" + +msgid "" +"\n" +"change line col text" +msgstr "" +"\n" +"линија промене кол текст" + +msgid "" +"\n" +"# File marks:\n" +msgstr "" +"\n" +"# Маркери датотеке:\n" + +msgid "" +"\n" +"# Jumplist (newest first):\n" +msgstr "" +"\n" +"# Скок-листа (прво најновији):\n" + +msgid "" +"\n" +"# History of marks within files (newest to oldest):\n" +msgstr "" +"\n" +"# Историја маркера унутар датотека (ок најновијег до најстаријег):\n" + +msgid "Missing '>'" +msgstr "Недостаје '>'" + +msgid "E543: Not a valid codepage" +msgstr "E543: Неважећа кодна страна" + +msgid "E284: Cannot set IC values" +msgstr "E284: IC вредности не могу да се поставе" + +msgid "E285: Failed to create input context" +msgstr "E285: Креирање контекста уноса није успело" + +msgid "E286: Failed to open input method" +msgstr "E286: Отварање методе уноса није успело" + +msgid "E287: Warning: Could not set destroy callback to IM" +msgstr "E287: Упозорење: Постављање повратне функције за уништење IM није успело" + +msgid "E288: input method doesn't support any style" +msgstr "E288: метод уноса не подржава ниједан стил" + +msgid "E289: input method doesn't support my preedit type" +msgstr "E289: метод уноса не подржава мој preedit тип" + +msgid "E293: block was not locked" +msgstr "E293: блок није закључан" + +msgid "E294: Seek error in swap file read" +msgstr "E294: Грешка код постављања показивача за читање swap датотеке" + +msgid "E295: Read error in swap file" +msgstr "E295: Грешка при читању swap датотеке" + +msgid "E296: Seek error in swap file write" +msgstr "E296: Грешка код постављања показивача за упис swap датотеке" + +msgid "E297: Write error in swap file" +msgstr "E297: Грешка при упису swap датотеке" + +msgid "E300: Swap file already exists (symlink attack?)" +msgstr "E300: Swap датотека већ постоји (symlink напад?)" + +msgid "E298: Didn't get block nr 0?" +msgstr "E298: Блок бр 0 није добављен?" + +msgid "E298: Didn't get block nr 1?" +msgstr "E298: Блок бр 1 није добављен?" + +msgid "E298: Didn't get block nr 2?" +msgstr "E298: Блок бр 2 није добављен?" + +msgid "E843: Error while updating swap file crypt" +msgstr "E843: Грешка приликом осважавања криптовања swap датотеке" + +msgid "E301: Oops, lost the swap file!!!" +msgstr "E301: Уупс, swap датотека је изгубљена!!!" + +msgid "E302: Could not rename swap file" +msgstr "E302: Промена имена swap датотеке није успела" + +#, c-format +msgid "E303: Unable to open swap file for \"%s\", recovery impossible" +msgstr "E303: Отварање swap датотеке за \"%s\" није успело, опоравак је немогућ" + +msgid "E304: ml_upd_block0(): Didn't get block 0??" +msgstr "E304: ml_upd_block0(): Блок бр 0 није добављен??" + +#, c-format +msgid "E305: No swap file found for %s" +msgstr "E305: За %s није пронађена swap датотека" + +msgid "Enter number of swap file to use (0 to quit): " +msgstr "Унесите број swap датотеке која ће да се користи (0 за отказивање): " + +#, c-format +msgid "E306: Cannot open %s" +msgstr "E306: %s не може да се отвори" + +msgid "Unable to read block 0 from " +msgstr "Није могуће литање блока 0 из " + +msgid "" +"\n" +"Maybe no changes were made or Vim did not update the swap file." +msgstr "" +"\n" +"Можда нису направљене никакве измене или Vim није освежио swap датотеку." + +msgid " cannot be used with this version of Vim.\n" +msgstr " не може да се користи са овом верзијом Vim-а.\n" + +msgid "Use Vim version 3.0.\n" +msgstr "Користите Vim верзијe 3.0.\n" + +#, c-format +msgid "E307: %s does not look like a Vim swap file" +msgstr "E307: %s не изгледа као Vim swap датотека" + +msgid " cannot be used on this computer.\n" +msgstr " не може да се користи на овом компјутеру.\n" + +msgid "The file was created on " +msgstr "Ова датотека је креирана са " + +msgid "" +",\n" +"or the file has been damaged." +msgstr "" +",\n" +"или је датотека оштећена." + +#, c-format +msgid "" +"E833: %s is encrypted and this version of Vim does not support encryption" +msgstr "" +"E833: %s је шифрована и ова верзија Vim-а не подржава шифровање" + +msgid " has been damaged (page size is smaller than minimum value).\n" +msgstr " је оштећена (величина странице је маља од минималне вредности).\n" + +#, c-format +msgid "Using swap file \"%s\"" +msgstr "Користи се swap датотека \"%s\"" + +#, c-format +msgid "Original file \"%s\"" +msgstr "Оригинална датотека \"%s\"" + +msgid "E308: Warning: Original file may have been changed" +msgstr "E308: Упозорење: Можда је промењена оригинална датотека" + +#, c-format +msgid "Swap file is encrypted: \"%s\"" +msgstr "Swap датотека је шифрована: \"%s\"" + +msgid "" +"\n" +"If you entered a new crypt key but did not write the text file," +msgstr "" +"\n" +"Ако сте унели нов кључ за шифрирање али нисте уписали текст датотеку," + +msgid "" +"\n" +"enter the new crypt key." +msgstr "" +"\n" +"унесите нови кључ за шифрирање." + +msgid "" +"\n" +"If you wrote the text file after changing the crypt key press enter" +msgstr "" +"\n" +"Ако сте уписали текст датотеку на диск након промене кључа за шифрирање притисните ентер" + +msgid "" +"\n" +"to use the same key for text file and swap file" +msgstr "" +"\n" +"да бисте користили исти кључ за текст датотеку и swap датотеку" + +#, c-format +msgid "E309: Unable to read block 1 from %s" +msgstr "E309: Блок 1 из %s не може да се прочита" + +msgid "???MANY LINES MISSING" +msgstr "??НЕДОСТАЈЕ МНОГО ЛИНИЈА" + +msgid "???LINE COUNT WRONG" +msgstr "???БРОЈ ЛИНИЈА ЈЕ ПОГРЕШАН" + +msgid "???EMPTY BLOCK" +msgstr "???ПРАЗАН БЛОК" + +msgid "???LINES MISSING" +msgstr "???НЕДОСТАЈУ ЛИНИЈЕ" + +#, c-format +msgid "E310: Block 1 ID wrong (%s not a .swp file?)" +msgstr "E310: ID блока 1 је погрешан (%s није .swp датотека?)" + +msgid "???BLOCK MISSING" +msgstr "???НЕДОСТАЈЕ БЛОК" + +msgid "??? from here until ???END lines may be messed up" +msgstr "??? одавде па до ???КРАЈ линије су можда забрљане" + +msgid "??? from here until ???END lines may have been inserted/deleted" +msgstr "??? одавде па до ???КРАЈ линије су можда уметане/брисане" + +msgid "???END" +msgstr "???КРАЈ" + +msgid "E311: Recovery Interrupted" +msgstr "E311: Опоравак је прекинут" + +msgid "" +"E312: Errors detected while recovering; look for lines starting with ???" +msgstr "" +"E312: Откривене су грешке приликом опоравка; потражите линије које почињу са ???" + +msgid "See \":help E312\" for more information." +msgstr "Погледајте \":help E312\" за више информација." + +msgid "Recovery completed. You should check if everything is OK." +msgstr "Опоравак је завршен. Требало би да проверите да ли је све OK." + +msgid "" +"\n" +"(You might want to write out this file under another name\n" +msgstr "" +"\n" +"(Можда бисте хтели да запишете ову датотеку под другим именом\n" + +msgid "and run diff with the original file to check for changes)" +msgstr "и покренете diff са оригиналном датотеком да провелите има ли измена)" + +msgid "Recovery completed. Buffer contents equals file contents." +msgstr "Опоравак је завршен. Садржај бафера је истоветан садржају датотеке." + +msgid "" +"\n" +"You may want to delete the .swp file now.\n" +"\n" +msgstr "" +"\n" +"Сада можда желите да обришете .swp датотеку.\n" +"\n" + +msgid "Using crypt key from swap file for the text file.\n" +msgstr "За текст датотеку се користи кључ за шифрирање из swap датотеке.\n" + +msgid "Swap files found:" +msgstr "Пронађене су swap датотеке:" + +msgid " In current directory:\n" +msgstr " У текућем директоријуму:\n" + +msgid " Using specified name:\n" +msgstr " Користећи наведено име:\n" + +msgid " In directory " +msgstr " У директоријуму " + +msgid " -- none --\n" +msgstr " -- ниједна --\n" + +msgid " owned by: " +msgstr " које поседује: " + +msgid " dated: " +msgstr " датиране: " + +msgid " dated: " +msgstr " датиране: " + +msgid " [from Vim version 3.0]" +msgstr " [од Vim верзије 3.0]" + +msgid " [does not look like a Vim swap file]" +msgstr " [не изгледа као Vim swap датотека]" + +msgid " file name: " +msgstr " име датотеке: " + +msgid "" +"\n" +" modified: " +msgstr "" +"\n" +" измењено: " + +msgid "YES" +msgstr "ДА" + +msgid "no" +msgstr "не" + +msgid "" +"\n" +" user name: " +msgstr "" +"\n" +" корисничко име: " + +msgid " host name: " +msgstr " име хоста: " + +msgid "" +"\n" +" host name: " +msgstr "" +"\n" +" име хоста: " + +msgid "" +"\n" +" process ID: " +msgstr "" +"\n" +" ИД процеса: " + +msgid " (still running)" +msgstr " (још се извршава)" + +msgid "" +"\n" +" [not usable with this version of Vim]" +msgstr "" +"\n" +" [није употребљива са овом верзијом Vim-а]" + +msgid "" +"\n" +" [not usable on this computer]" +msgstr "" +"\n" +" [није употребљива на овом компјутеру]" + +msgid " [cannot be read]" +msgstr " [не може да се прочита]" + +msgid " [cannot be opened]" +msgstr " [не може да се отвори]" + +msgid "E313: Cannot preserve, there is no swap file" +msgstr "E313: Не може да се презервира, нема swap датотеке" + +msgid "File preserved" +msgstr "Датотека је презервирана" + +msgid "E314: Preserve failed" +msgstr "E314: Презервација није успела" + +#, c-format +msgid "E315: ml_get: invalid lnum: %ld" +msgstr "E315: ml_get: неисправан lnum: %ld" + +#, c-format +msgid "E316: ml_get: cannot find line %ld" +msgstr "E316: ml_get: линија %ld не може да се пронађе" + +msgid "E317: pointer block id wrong 3" +msgstr "E317: ид показивача блока је погрешан 3" + +msgid "stack_idx should be 0" +msgstr "stack_idx би требало да је 0" + +msgid "E318: Updated too many blocks?" +msgstr "E318: Освежено превише блокова?" + +msgid "E317: pointer block id wrong 4" +msgstr "E317: ид показивача блока је погрешан 4" + +msgid "deleted block 1?" +msgstr "блок 1 обрисан?" + +#, c-format +msgid "E320: Cannot find line %ld" +msgstr "E320: Линија %ld не може да се пронађе" + +msgid "E317: pointer block id wrong" +msgstr "E317: ид показивача блока је погрешан" + +msgid "pe_line_count is zero" +msgstr "pe_line_count је нула" + +#, c-format +msgid "E322: line number out of range: %ld past the end" +msgstr "E322: број линије је ван опсега: %ld иза краја" + +#, c-format +msgid "E323: line count wrong in block %ld" +msgstr "E323: број линија је погрешан у блоку %ld" + +msgid "Stack size increases" +msgstr "Величина стека се повећава" + +msgid "E317: pointer block id wrong 2" +msgstr "E317: ид показивача блока је погрешан 2" + +#, c-format +msgid "E773: Symlink loop for \"%s\"" +msgstr "E773: Symlink петља за \"%s\"" + +msgid "E325: ATTENTION" +msgstr "E325: ПАЖЊА" + +msgid "" +"\n" +"Found a swap file by the name \"" +msgstr "" +"\n" +"Пронађена је swap датотека под именом \"" + +msgid "While opening file \"" +msgstr "Док се отварала датотекa \"" + +msgid " NEWER than swap file!\n" +msgstr " НОВИЈА од swap датотеке!\n" + +msgid "" +"\n" +"(1) Another program may be editing the same file. If this is the case,\n" +" be careful not to end up with two different instances of the same\n" +" file when making changes. Quit, or continue with caution.\n" +msgstr "" +"\n" +"(1) Можда други програм уређује исту датотеку. Ако је ово случај,\n" +" кад правите измене, пазите да не завршите са две различите\n" +" инстанце исте датотеке. Изађите, или опрезно наставите.\n" + +msgid "(2) An edit session for this file crashed.\n" +msgstr "(2) Сесија уређивања ове датотеке се срушила.\n" + +msgid " If this is the case, use \":recover\" or \"vim -r " +msgstr " Ако је ово случај, користите \":recover\" или \"vim -r " + +msgid "" +"\"\n" +" to recover the changes (see \":help recovery\").\n" +msgstr "" +"\"\n" +" да опоравите измене (погледајте \":help recovery\").\n" + +msgid " If you did this already, delete the swap file \"" +msgstr " Ако сте ово већ учинили, обришите swap датотеку \"" + +msgid "" +"\"\n" +" to avoid this message.\n" +msgstr "" +"\"\n" +" како би избегли ову поруку.\n" + +msgid "Swap file \"" +msgstr "Swap датотека \"" + +msgid "\" already exists!" +msgstr "\" већ постоји!" + +msgid "VIM - ATTENTION" +msgstr "VIM - ПАЖЊА" + +msgid "Swap file already exists!" +msgstr "Swap датотека већ постоји!" + +msgid "" +"&Open Read-Only\n" +"&Edit anyway\n" +"&Recover\n" +"&Quit\n" +"&Abort" +msgstr "" +"Отвори &Само за читање\n" +"Ипак &Уређуј\n" +"&Опорави\n" +"&Изађи\n" +"&Прекини" + +msgid "" +"&Open Read-Only\n" +"&Edit anyway\n" +"&Recover\n" +"&Delete it\n" +"&Quit\n" +"&Abort" +msgstr "" +"Отвори &Само за читање\n" +"Ипак &Уређуј\n" +"&Опорави\n" +"&Изађи\n" +"&Прекини" + +msgid "E326: Too many swap files found" +msgstr "E326: Пронађено је превише swap датотека" + +msgid "E327: Part of menu-item path is not sub-menu" +msgstr "E327: Део путање ставке менија није подмени" + +msgid "E328: Menu only exists in another mode" +msgstr "E328: Мени постоји само у другом режиму" + +#, c-format +msgid "E329: No menu \"%s\"" +msgstr "E329: Нема менија \"%s\"" + +msgid "E792: Empty menu name" +msgstr "E792: Празно име менија" + +msgid "E330: Menu path must not lead to a sub-menu" +msgstr "E330: Путања менија не сме да води у подмени" + +msgid "E331: Must not add menu items directly to menu bar" +msgstr "E331: Ставке менија не смеју да се додају директно у линију менија" + +msgid "E332: Separator cannot be part of a menu path" +msgstr "E332: Сепаратор не може да буде део путање менија" + +msgid "" +"\n" +"--- Menus ---" +msgstr "" +"\n" +"--- Менији ---" + +msgid "Tear off this menu" +msgstr "Отцепи овај мени" + +#, c-format +msgid "E335: Menu not defined for %s mode" +msgstr "E335: Мени није дефинисан за %s рeжим" + +msgid "E333: Menu path must lead to a menu item" +msgstr "E333: Путања менија мора да води у ставку менија" + +#, c-format +msgid "E334: Menu not found: %s" +msgstr "E334: Мени није пронађен: %s" + +msgid "E336: Menu path must lead to a sub-menu" +msgstr "E336: Путања менија мора да води у подмени" + +msgid "E337: Menu not found - check menu names" +msgstr "E337: Мени није пронађен - проверите имена менија" + +#, c-format +msgid "Error detected while processing %s:" +msgstr "Откривена је грешка током обраде %s:" + +#, c-format +msgid "line %4ld:" +msgstr "линија %4ld:" + +#, c-format +msgid "E354: Invalid register name: '%s'" +msgstr "E354: Неисправно име регистра: '%s'" + +msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>" +msgstr "Поруке одржава: Иван Пешић <ivan.pesic@gmail.com>" + +msgid "Interrupt: " +msgstr "Прекид: " + +msgid "Press ENTER or type command to continue" +msgstr "Да бисте наставили, притисните ЕНТЕР или откуцајте команду" + +#, c-format +msgid "%s line %ld" +msgstr "%s линија %ld" + +msgid "-- More --" +msgstr "-- Још --" + +msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit " +msgstr " РАЗМАКНИЦА/d/j: екран/страна/линија наниже, b/u/k: навише, q: излаз " + +msgid "Question" +msgstr "Питање" + +msgid "" +"&Yes\n" +"&No" +msgstr "" +"&Да\n" +"&Не" + +msgid "" +"&Yes\n" +"&No\n" +"Save &All\n" +"&Discard All\n" +"&Cancel" +msgstr "" +"&Да\n" +"&Не\n" +"Сачувај &Све\n" +"о&Дбаци све\n" +"&Откажи" + +msgid "Select Directory dialog" +msgstr "Дијалог избора директоријума" + +msgid "Save File dialog" +msgstr "Дијалог чувања датотеке" + +msgid "Open File dialog" +msgstr "Дијалог отварања датотеке" + +msgid "E338: Sorry, no file browser in console mode" +msgstr "E338: Жао нам је, нема претраживача датотека у конзолном режиму" + +msgid "E766: Insufficient arguments for printf()" +msgstr "E766: Недовољно аргумената за printf()" + +msgid "E807: Expected Float argument for printf()" +msgstr "E807: Очекује се Float аргумент за printf()" + +msgid "E767: Too many arguments to printf()" +msgstr "E767: Сувише аргумената за printf()" + +msgid "W10: Warning: Changing a readonly file" +msgstr "W10: Упозорење: Мења се датотека која може само да се чита" + +msgid "Type number and <Enter> or click with mouse (empty cancels): " +msgstr "Унесите број и <Enter> или кликните мишем (ништа за отказ): " + +msgid "Type number and <Enter> (empty cancels): " +msgstr "Унесите број и <Enter> (ништа за отказ): " + +msgid "1 more line" +msgstr "1 линија више" + +msgid "1 line less" +msgstr "1 линија мање" + +#, c-format +msgid "%ld more lines" +msgstr "%ld линија више" + +#, c-format +msgid "%ld fewer lines" +msgstr "%ld линија мање" + +msgid " (Interrupted)" +msgstr " (Прекинуто)" + +msgid "Beep!" +msgstr "Биип!" + +msgid "ERROR: " +msgstr "ГРЕШКА: " + +#, c-format +msgid "" +"\n" +"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n" +msgstr "" +"\n" +"[бајтова] укупно алоц-ослоб %lu-%lu, у употр %lu, вршна употр %lu\n" + +#, c-format +msgid "" +"[calls] total re/malloc()'s %lu, total free()'s %lu\n" +"\n" +msgstr "" +"[позива] укупно re/malloc()-а %lu, укупно free()-ова %lu\n" +"\n" + +msgid "E340: Line is becoming too long" +msgstr "E340: Линија постаје предугачка" + +#, c-format +msgid "E341: Internal error: lalloc(%ld, )" +msgstr "E341: Интерна грешка: lalloc(%ld, )" + +#, c-format +msgid "E342: Out of memory! (allocating %lu bytes)" +msgstr "E342: Нема више меморије! (код алокације %lu бајтова)" + +#, c-format +msgid "Calling shell to execute: \"%s\"" +msgstr "Позива се командно окружење да изврши: \"%s\"" + +msgid "E545: Missing colon" +msgstr "E545: Недостаје двотачка" + +msgid "E546: Illegal mode" +msgstr "E546: Недозвољени режим" + +msgid "E547: Illegal mouseshape" +msgstr "E547: Недозвољени mouseshape" + +msgid "E548: digit expected" +msgstr "E548: очекује се цифра" + +msgid "E549: Illegal percentage" +msgstr "E549: Недозвољени проценат" + +msgid "E854: path too long for completion" +msgstr "E854: путања је сувише дугачка да би се довршила" + +#, c-format +msgid "" +"E343: Invalid path: '**[number]' must be at the end of the path or be " +"followed by '%s'." +msgstr "" +"E343: Неисправна путања: '**[број]' мора бити на крају путање или да " +"иза њега следи '%s'." + +#, c-format +msgid "E344: Can't find directory \"%s\" in cdpath" +msgstr "E344: Директоријум \"%s\" не може да се пронађе у cdpath" + +#, c-format +msgid "E345: Can't find file \"%s\" in path" +msgstr "E345: Датотека \"%s\" не може да се пронађе у path" + +#, c-format +msgid "E346: No more directory \"%s\" found in cdpath" +msgstr "E346: Директоријум \"%s\" више не може да се пронађе у cdpath" + +#, c-format +msgid "E347: No more file \"%s\" found in path" +msgstr "E347: Датотека \"%s\" више не може да се пронађе у path" + +#, c-format +msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" +msgstr "E668: Погрешан режим приступа за инфо датотеку NetBeans везе: \"%s\"" + +#, c-format +msgid "E658: NetBeans connection lost for buffer %ld" +msgstr "E658: NetBeans веза је изгубљена за бафер %ld" + +msgid "E838: netbeans is not supported with this GUI" +msgstr "E838: netbeans није подржан са овим GUI" + +msgid "E511: netbeans already connected" +msgstr "E511: netbeans је већ повезан" + +#, c-format +msgid "E505: %s is read-only (add ! to override)" +msgstr "E505: %s је само за читање (додајте ! за премошћавање)" + +msgid "E349: No identifier under cursor" +msgstr "E349: Под курсором није идентификатор" + +msgid "E774: 'operatorfunc' is empty" +msgstr "E774: 'operatorfunc' је празна" + +msgid "E775: Eval feature not available" +msgstr "E775: Eval могућност није доступна" + +msgid "Warning: terminal cannot highlight" +msgstr "Упозорење: терминал не може да истакне текст" + +msgid "E348: No string under cursor" +msgstr "E348: Под курсором нема стринга" + +msgid "E352: Cannot erase folds with current 'foldmethod'" +msgstr "E352: Са текућим 'foldmethod' не могу да се обришу склапања" + +msgid "E664: changelist is empty" +msgstr "E664: листа промена је празна" + +msgid "E662: At start of changelist" +msgstr "E662: На почетку листе промена" + +msgid "E663: At end of changelist" +msgstr "E663: На крају листе промена" + +msgid "Type :qa! and press <Enter> to abandon all changes and exit Vim" +msgstr "Откуцајте :qa! и притисните <Ентер> да одбаците све измене и напустите Vim" + +#, c-format +msgid "1 line %sed 1 time" +msgstr "1 линија %sрана 1 пут" + +#, c-format +msgid "1 line %sed %d times" +msgstr "1 линија %sрана %d пута" + +#, c-format +msgid "%ld lines %sed 1 time" +msgstr "%ld линија %sрано 1 пут" + +#, c-format +msgid "%ld lines %sed %d times" +msgstr "%ld линија %sрано %d пута" + +#, c-format +msgid "%ld lines to indent... " +msgstr "%ld за увлачење... " + +msgid "1 line indented " +msgstr "1 линија увучена " + +#, c-format +msgid "%ld lines indented " +msgstr "%ld инија увучено " + +msgid "E748: No previously used register" +msgstr "E748: Нема претходно коришћеног регистра" + +msgid "cannot yank; delete anyway" +msgstr "не може да се тргне; ипак обрисати" + +msgid "1 line changed" +msgstr "1 линија је промењена" + +#, c-format +msgid "%ld lines changed" +msgstr "%ld линија је промењено" + +#, c-format +msgid "freeing %ld lines" +msgstr "ослобађа се %ld линија" + +#, c-format +msgid " into \"%c" +msgstr " у \"%c" + +#, c-format +msgid "block of 1 line yanked%s" +msgstr "блок од 1 линије је тргнут%s" + +#, c-format +msgid "1 line yanked%s" +msgstr "1 линија је тргнута%s" + +#, c-format +msgid "block of %ld lines yanked%s" +msgstr "блок од %ld линија је тргнут%s" + +#, c-format +msgid "%ld lines yanked%s" +msgstr "%ld линија је тргнуто%s" + +#, c-format +msgid "E353: Nothing in register %s" +msgstr "E353: Регистар %s је празан" + +msgid "" +"\n" +"--- Registers ---" +msgstr "" +"\n" +"--- Регистри ---" + +msgid "Illegal register name" +msgstr "Неважеће име регистра" + +msgid "" +"\n" +"# Registers:\n" +msgstr "" +"\n" +"# Регистри:\n" + +#, c-format +msgid "E574: Unknown register type %d" +msgstr "E574: Непознат тип регистра %d" + +msgid "" +"E883: search pattern and expression register may not contain two or more " +"lines" +msgstr "" +"E883: регистар за шаблон претраге и израз не може да садржи две или више " +"линија" + +#, c-format +msgid "%ld Cols; " +msgstr "%ld Кол; " + +#, c-format +msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes" +msgstr "Изабрано %s%ld од %ld Линија; %lld од %lld Речи; %lld од %lld Бајтова" + +#, c-format +msgid "" +"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of " +"%lld Bytes" +msgstr "" +"Изабрано %s%ld од %ld Линија; %lld од %lld Речи; %lld од %lld Знака; %lld од " +"%lld Бајтова" + +#, c-format +msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld" +msgstr "Кол %s од %s; Линија %ld од %ld; Реч %lld од %lld; Бајт %lld од %lld" + +#, c-format +msgid "" +"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %" +"lld of %lld" +msgstr "" +"Кол %s од %s; Линија %ld од %ld; Реч %lld од %lld; Знак %lld од %lld; Бајт %" +"lld од %lld" + +#, c-format +msgid "(+%ld for BOM)" +msgstr "(+%ld за BOM)" + +msgid "Thanks for flying Vim" +msgstr "Хвала што летите са Vim" + +msgid "E518: Unknown option" +msgstr "E518: Непозната опција" + +msgid "E519: Option not supported" +msgstr "E519: Опција није подржана" + +msgid "E520: Not allowed in a modeline" +msgstr "E520: Није довољено у режимској линији" + +msgid "E846: Key code not set" +msgstr "E846: Није постављрн код тастера" + +msgid "E521: Number required after =" +msgstr "E521: Потребан је број након =" + +msgid "E522: Not found in termcap" +msgstr "E522: Није пронађено у termcap" + +#, c-format +msgid "E539: Illegal character <%s>" +msgstr "E539: Недозвољен карактер <%s>" + +#, c-format +msgid "For option %s" +msgstr "За опцију %s" + +msgid "E529: Cannot set 'term' to empty string" +msgstr "E529: 'term' не може да се постави на празан стринг" + +msgid "E530: Cannot change term in GUI" +msgstr "E530: term не може да се промени из GUI" + +msgid "E531: Use \":gui\" to start the GUI" +msgstr "E531: Користите \":gui\" да покренете GUI" + +msgid "E589: 'backupext' and 'patchmode' are equal" +msgstr "E589: 'backupext' и 'patchmode' су истоветни" + +msgid "E834: Conflicts with value of 'listchars'" +msgstr "E834: У конфликту са вредношћу 'listchars'" + +msgid "E835: Conflicts with value of 'fillchars'" +msgstr "E835: У конфликту са вредношћу 'fillchars'" + +msgid "E617: Cannot be changed in the GTK+ 2 GUI" +msgstr "E617: Не може да се промени у GTK+ 2 GUI" + +#, c-format +msgid "E950: Cannot convert between %s and %s" +msgstr "E950: Не може да се конвертује између %s и %s" + +msgid "E524: Missing colon" +msgstr "E524: Недостаје двотачка" + +msgid "E525: Zero length string" +msgstr "E525: Стринг дужине нула" + +#, c-format +msgid "E526: Missing number after <%s>" +msgstr "E526: Недостаје број након <%s>" + +msgid "E527: Missing comma" +msgstr "E527: Недостаје зарез" + +msgid "E528: Must specify a ' value" +msgstr "E528: Мора да се наведе ' вредност" + +msgid "E595: contains unprintable or wide character" +msgstr "E595: садржи карактер који не може да се одштампа, или широки карактер" + +msgid "E596: Invalid font(s)" +msgstr "E596: Неисправни фонт(ови)" + +msgid "E597: can't select fontset" +msgstr "E597: fontset не може да се изабере" + +msgid "E598: Invalid fontset" +msgstr "E598: Неисправан fontset" + +msgid "E533: can't select wide font" +msgstr "E533: широки фонт не може да се изабере" + +msgid "E534: Invalid wide font" +msgstr "E534: Неисправан широки фонт" + +#, c-format +msgid "E535: Illegal character after <%c>" +msgstr "E535: Неважећи карактер након <%c>" + +msgid "E536: comma required" +msgstr "E536: потребан зарез" + +#, c-format +msgid "E537: 'commentstring' must be empty or contain %s" +msgstr "E537: 'commentstring' мора бити празно или да садржи %s" + +msgid "E538: No mouse support" +msgstr "E538: Нема подршке за миша" + +msgid "E540: Unclosed expression sequence" +msgstr "E540: Низ израза није затворен" + +msgid "E541: too many items" +msgstr "E541: превише ставки" + +msgid "E542: unbalanced groups" +msgstr "E542: неуравнотежене групе" + +msgid "E946: Cannot make a terminal with running job modifiable" +msgstr "E946: Терминал са задатком који се извршава не може да се учини измењивим" + +msgid "E590: A preview window already exists" +msgstr "E590: Прозор за преглед већ постоји" + +msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'" +msgstr "W17: Арапски захтева UTF-8, извршите ':set encoding=utf-8'" + +#, c-format +msgid "E593: Need at least %d lines" +msgstr "E593: Потребно је најмање %d линија" + +#, c-format +msgid "E594: Need at least %d columns" +msgstr "E594: Потребно је најмање %d колона" + +#, c-format +msgid "E355: Unknown option: %s" +msgstr "E355: Непозната опција: %s" + +#, c-format +msgid "E521: Number required: &%s = '%s'" +msgstr "E521: Захтева се број: &%s = '%s'" + +msgid "" +"\n" +"--- Terminal codes ---" +msgstr "" +"\n" +"--- Кодови терминала ---" + +msgid "" +"\n" +"--- Global option values ---" +msgstr "" +"\n" +"--- Вредности глобалних опција ---" + +msgid "" +"\n" +"--- Local option values ---" +msgstr "" +"\n" +"--- Вредности локалних опција ---" + +msgid "" +"\n" +"--- Options ---" +msgstr "" +"\n" +"--- Опције ---" + +msgid "E356: get_varp ERROR" +msgstr "E356: get_varp ГРЕШКА" + +#, c-format +msgid "E357: 'langmap': Matching character missing for %s" +msgstr "E357: 'langmap': Недостаје одговарајући карактер за %s" + +#, c-format +msgid "E358: 'langmap': Extra characters after semicolon: %s" +msgstr "E358: 'langmap': Има још карактера након тачказареза: %s" + +msgid "cannot open " +msgstr "не може да се отвори " + +msgid "VIM: Can't open window!\n" +msgstr "VIM: Прозор не може да се отвори!\n" + +msgid "Need Amigados version 2.04 or later\n" +msgstr "Потребан је Amigados верзија 2.04 или каснији\n" + +#, c-format +msgid "Need %s version %ld\n" +msgstr "Потребан је %s верзија %ld\n" + +msgid "Cannot open NIL:\n" +msgstr "Не може да се отвори NIL:\n" + +msgid "Cannot create " +msgstr "Не може да се креира " + +#, c-format +msgid "Vim exiting with %d\n" +msgstr "Vim излази са %d\n" + +msgid "cannot change console mode ?!\n" +msgstr "конзолни режим не може да се промени ?!\n" + +msgid "mch_get_shellsize: not a console??\n" +msgstr "mch_get_shellsize: није конзола??\n" + +msgid "E360: Cannot execute shell with -f option" +msgstr "E360: Командно окружење не може да се изврши са -f опцијом" + +msgid "Cannot execute " +msgstr "Не може да се изврши " + +msgid "shell " +msgstr "командно окружење " + +msgid " returned\n" +msgstr " вратило\n" + +msgid "ANCHOR_BUF_SIZE too small." +msgstr "ANCHOR_BUF_SIZE сувише мали." + +msgid "I/O ERROR" +msgstr "У/И ГРЕШКА" + +msgid "Message" +msgstr "Порука" + +msgid "E237: Printer selection failed" +msgstr "E237: Избор штампача није успео" + +#, c-format +msgid "to %s on %s" +msgstr "у %s на %s" + +#, c-format +msgid "E613: Unknown printer font: %s" +msgstr "E613: Непознат фонт штампача: %s" + +#, c-format +msgid "E238: Print error: %s" +msgstr "E238: Грешка код штампања: %s" + +#, c-format +msgid "Printing '%s'" +msgstr "Штампа се '%s'" + +#, c-format +msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" +msgstr "E244: Недозвољено име сета карактера \"%s\" у имену фонту \"%s\"" + +#, c-format +msgid "E244: Illegal quality name \"%s\" in font name \"%s\"" +msgstr "E244: Недозвољено име варијанте \"%s\" у имену фонту \"%s\"" + +#, c-format +msgid "E245: Illegal char '%c' in font name \"%s\"" +msgstr "E245: Неисправан карактер '%c' у имену фонта \"%s\"" + +#, c-format +msgid "Opening the X display took %ld msec" +msgstr "Отварање X приказа је трајало %ld мсек" + +msgid "" +"\n" +"Vim: Got X error\n" +msgstr "" +"\n" +"Vim: Дошло је до X грешке\n" + +msgid "Testing the X display failed" +msgstr "Тестирање X приказа није успело" + +msgid "Opening the X display timed out" +msgstr "Истекло је максимално време за отварање X приказа" + +msgid "" +"\n" +"Could not get security context for " +msgstr "" +"\n" +"Није могао да се очита безбедносни контекст за " + +msgid "" +"\n" +"Could not set security context for " +msgstr "" +"\n" +"Није могао да се постави безбедносни контекст за " + +#, c-format +msgid "Could not set security context %s for %s" +msgstr "Безбедносни контекст %s за %s није могао да се постави" + +#, c-format +msgid "Could not get security context %s for %s. Removing it!" +msgstr "Безбедносни контекст %s за %s није могао да се очита. Уклања се!" + +msgid "" +"\n" +"Cannot execute shell sh\n" +msgstr "" +"\n" +"Командно окружење sh не може да се изврши\n" + +msgid "" +"\n" +"shell returned " +msgstr "" +"\n" +"командно окружење је вратило " + +msgid "" +"\n" +"Cannot create pipes\n" +msgstr "" +"\n" +"Токови података не могу да се креирају\n" + +msgid "" +"\n" +"Cannot fork\n" +msgstr "" +"\n" +"Рачвање није могуће\n" + +msgid "" +"\n" +"Cannot execute shell " +msgstr "" +"\n" +"Командно окружење не може да се изврши " + +msgid "" +"\n" +"Command terminated\n" +msgstr "" +"\n" +"Команда је прекинута\n" + +msgid "XSMP lost ICE connection" +msgstr "XSMP је изгубио ICE везу" + +#, c-format +msgid "dlerror = \"%s\"" +msgstr "dlerror = \"%s\"" + +msgid "Opening the X display failed" +msgstr "Отварање X приказа није успело" + +msgid "XSMP handling save-yourself request" +msgstr "XSMP опслужује сачувај-се захтев" + +msgid "XSMP opening connection" +msgstr "XSMP отвара везу" + +msgid "XSMP ICE connection watch failed" +msgstr "XSMP ICE надгледање везе није успело" + +#, c-format +msgid "XSMP SmcOpenConnection failed: %s" +msgstr "XSMP SmcOpenConnection није успело: %s" + +msgid "At line" +msgstr "Код линије" + +msgid "Could not load vim32.dll!" +msgstr "vim32.dll није могла да се учита!" + +msgid "VIM Error" +msgstr "VIM Грешка" + +msgid "Could not fix up function pointers to the DLL!" +msgstr "Показивачи на функције у DLL-у нису могли да се поправе!" + +#, c-format +msgid "Vim: Caught %s event\n" +msgstr "Vim: Ухваћен је %s догађај\n" + +msgid "close" +msgstr "затварање" + +msgid "logoff" +msgstr "одјављивање" + +msgid "shutdown" +msgstr "искључивање" + +msgid "E371: Command not found" +msgstr "E371: Команда није пронађена" + +msgid "" +"VIMRUN.EXE not found in your $PATH.\n" +"External commands will not pause after completion.\n" +"See :help win32-vimrun for more information." +msgstr "" +"VIMRUN.EXE није пронађен у вашем $PATH.\n" +"Екстерне команде неће моћи да се паузирају након завршетка.\n" +"Погледајте :help win32-vimrun за више информација." + +msgid "Vim Warning" +msgstr "Vim Упозорење" + +#, c-format +msgid "shell returned %d" +msgstr "командно окружење је вратило %d" + +#, c-format +msgid "E372: Too many %%%c in format string" +msgstr "E372: Превише %%%c стрингу формата" + +#, c-format +msgid "E373: Unexpected %%%c in format string" +msgstr "E373: Неочекивано %%%c стрингу формата" + +msgid "E374: Missing ] in format string" +msgstr "E374: Недостаје ] у стрингу формата" + +#, c-format +msgid "E375: Unsupported %%%c in format string" +msgstr "E375: Неподржано %%%c у стрингу формата" + +#, c-format +msgid "E376: Invalid %%%c in format string prefix" +msgstr "E376: Неважеће %%%c у префиксу стринга формата" + +#, c-format +msgid "E377: Invalid %%%c in format string" +msgstr "E377: Неважеће %%%c у стрингу формата" + +msgid "E378: 'errorformat' contains no pattern" +msgstr "E378: 'errorformat' не садржи шаблон" + +msgid "E379: Missing or empty directory name" +msgstr "E379: Име директоријума недостаје или је празно" + +msgid "E553: No more items" +msgstr "E553: Нема више ставки" + +msgid "E924: Current window was closed" +msgstr "E924: Текући прозор је затворен" + +msgid "E925: Current quickfix was changed" +msgstr "E925: Текући quickfix је промењен" + +msgid "E926: Current location list was changed" +msgstr "E926: Текућа листа локација је промењена" + +#, c-format +msgid "(%d of %d)%s%s: " +msgstr "(%d од %d)%s%s: " + +msgid " (line deleted)" +msgstr " (линија обрисана)" + +#, c-format +msgid "%serror list %d of %d; %d errors " +msgstr "%sлиста грешака %d од %d; %d грешака " + +msgid "E380: At bottom of quickfix stack" +msgstr "E380: На дну quickfix стека" + +msgid "E381: At top of quickfix stack" +msgstr "E381: На врху quickfix стека" + +msgid "No entries" +msgstr "Нема уноса" + +msgid "Error file" +msgstr "Датотека грешака" + +msgid "E683: File name missing or invalid pattern" +msgstr "E683: Недостаје име датотеке или неважећи шаблон" + +#, c-format +msgid "Cannot open file \"%s\"" +msgstr "Датотека \"%s\" не може да се отвори" + +msgid "E681: Buffer is not loaded" +msgstr "E681: Бафер није учитан" + +msgid "E777: String or List expected" +msgstr "E777: Очекује се String или List" + +#, c-format +msgid "E369: invalid item in %s%%[]" +msgstr "E369: неважећа ставка у %s%%[]" + +#, c-format +msgid "E769: Missing ] after %s[" +msgstr "E769: Недостаје ] након %s[" + +msgid "E944: Reverse range in character class" +msgstr "E944: Обрнути опсег у карактер класи" + +msgid "E945: Range too large in character class" +msgstr "E945: Превелики опсег у карактер класи" + +#, c-format +msgid "E53: Unmatched %s%%(" +msgstr "E53: Неупарена %s%%(" + +#, c-format +msgid "E54: Unmatched %s(" +msgstr "E54: Неупарена %s(" + +#, c-format +msgid "E55: Unmatched %s)" +msgstr "E55: Неупарена %s)" + +msgid "E66: \\z( not allowed here" +msgstr "E66: \\z( овде није дозвољено" + +msgid "E67: \\z1 et al. not allowed here" +msgstr "E67: \\z1 и остали онвде нису дозвољени" + +#, c-format +msgid "E69: Missing ] after %s%%[" +msgstr "E69: Недостаје ] након %s%%[" + +#, c-format +msgid "E70: Empty %s%%[]" +msgstr "E70: Празан %s%%[]" + +msgid "E65: Illegal back reference" +msgstr "E65: Неважећа повратна референца" + +msgid "E339: Pattern too long" +msgstr "E339: Шаблон је предугачак" + +msgid "E50: Too many \\z(" +msgstr "E50: Превише \\z(" + +#, c-format +msgid "E51: Too many %s(" +msgstr "E51: Превише %s(" + +msgid "E52: Unmatched \\z(" +msgstr "E52: Неупарено \\z(" + +#, c-format +msgid "E59: invalid character after %s@" +msgstr "E59: неважећи карактер након %s@" + +#, c-format +msgid "E60: Too many complex %s{...}s" +msgstr "E60: Превише комплексних %s{...}s" + +#, c-format +msgid "E61: Nested %s*" +msgstr "E61: Угњеждено %s*" + +#, c-format +msgid "E62: Nested %s%c" +msgstr "E62: Угњеждено %s%c" + +msgid "E63: invalid use of \\_" +msgstr "E63: неисправна употреба \\_" + +#, c-format +msgid "E64: %s%c follows nothing" +msgstr "E64: %s%c je иза ничега" + +msgid "E68: Invalid character after \\z" +msgstr "E68: Неважећи карактер након \\z" + +#, c-format +msgid "E678: Invalid character after %s%%[dxouU]" +msgstr "E678: Неважећи карактер након %s%%[dxouU]" + +#, c-format +msgid "E71: Invalid character after %s%%" +msgstr "E71: Неважећи карактер након %s%%" + +#, c-format +msgid "E554: Syntax error in %s{...}" +msgstr "E554: Синтаксна грешка у %s{...}" + +msgid "External submatches:\n" +msgstr "Спољна подпоклапања:\n" + +#, c-format +msgid "E888: (NFA regexp) cannot repeat %s" +msgstr "E888: (NFA regexp) не може да се понови %s" + +msgid "" +"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be " +"used " +msgstr "" +"E864: Иза \\%#= може да следи једино 0, 1, или 2. Користиће се аутоматски " +"енџин " + +msgid "Switching to backtracking RE engine for pattern: " +msgstr "Пребацивање на backtracking RE енџин за шаблон: " + +msgid "E865: (NFA) Regexp end encountered prematurely" +msgstr "E865: Крај (NFA) Regexp израза је достигнут прерано" + +#, c-format +msgid "E866: (NFA regexp) Misplaced %c" +msgstr "E866: (NFA regexp) %c је на погрешном месту" + +#, c-format +msgid "E877: (NFA regexp) Invalid character class: %ld" +msgstr "E877: (NFA regexp) Неважећа карактер класа: %ld" + +#, c-format +msgid "E867: (NFA) Unknown operator '\\z%c'" +msgstr "E867: (NFA) Непознати оператор '\\z%c'" + +#, c-format +msgid "E867: (NFA) Unknown operator '\\%%%c'" +msgstr "E867: (NFA) Непознати оператор '\\%%%c'" + +msgid "E868: Error building NFA with equivalence class!" +msgstr "E868: Грешка при грађењу NFA са класом еквиваленције!" + +#, c-format +msgid "E869: (NFA) Unknown operator '\\@%c'" +msgstr "E869: (NFA) Непознати оператор '\\@%c'" + +msgid "E870: (NFA regexp) Error reading repetition limits" +msgstr "E870: (NFA regexp) Грешка при читању граница понављања" + +msgid "E871: (NFA regexp) Can't have a multi follow a multi !" +msgstr "E871: (NFA regexp) Мулти не може следи иза мулти !" + +msgid "E872: (NFA regexp) Too many '('" +msgstr "E872: (NFA regexp) Превише '('" + +msgid "E879: (NFA regexp) Too many \\z(" +msgstr "E879: (NFA regexp) Превише \\z(" + +msgid "E873: (NFA regexp) proper termination error" +msgstr "E873: (NFA regexp) грешка правилне терминације" + +msgid "E874: (NFA) Could not pop the stack !" +msgstr "E874: (NFA) Скидање са стека није успело !" + +msgid "" +"E875: (NFA regexp) (While converting from postfix to NFA), too many states " +"left on stack" +msgstr "" +"E875: (NFA regexp) (Док је вршена конверзија из postfix у NFA), превише стања " +"је остало на стеку" + +msgid "E876: (NFA regexp) Not enough space to store the whole NFA " +msgstr "E876: (NFA regexp) Нема довољно простора да се ускладишти комплетан NFA " + +msgid "E878: (NFA) Could not allocate memory for branch traversal!" +msgstr "E878: (NFA) Није могла да се алоцира меморија за обилазак грана!" + +msgid "" +"Could not open temporary log file for writing, displaying on stderr ... " +msgstr "" +"Привремена лог датотека није могла да се отвори за упис, приказује се на stderr ... " + +#, c-format +msgid "(NFA) COULD NOT OPEN %s !" +msgstr "(NFA) %s НЕ МОЖЕ ДА СЕ ОТВОРИ !" + +msgid "Could not open temporary log file for writing " +msgstr "Привремена лог датотека није могла да се отвори за упис " + +msgid " VREPLACE" +msgstr "ВЗАМЕНА" + +msgid " REPLACE" +msgstr " ЗАМЕНА" + +msgid " REVERSE" +msgstr " ОБРНУТО" + +msgid " INSERT" +msgstr " УМЕТАЊЕ" + +msgid " (insert)" +msgstr " (уметање)" + +msgid " (replace)" +msgstr " (замена)" + +msgid " (vreplace)" +msgstr " (взамена)" + +msgid " Hebrew" +msgstr " хебрејски" + +msgid " Arabic" +msgstr " арапски" + +msgid " (paste)" +msgstr " (налепи)" + +msgid " VISUAL" +msgstr " ВИЗУЕЛНО" + +msgid " VISUAL LINE" +msgstr " ВИЗУЕЛНА ЛИНИЈА" + +msgid " VISUAL BLOCK" +msgstr " ВИЗУЕЛНИ БЛОК" + +msgid " SELECT" +msgstr " ИЗБОР" + +msgid " SELECT LINE" +msgstr " ИЗБОР ЛИНИЈА" + +msgid " SELECT BLOCK" +msgstr " ИЗБОР БЛОКА" + +msgid "recording" +msgstr "снимање" + +#, c-format +msgid "E383: Invalid search string: %s" +msgstr "E383: Неисправан стринг за претрагу: %s" + +#, c-format +msgid "E384: search hit TOP without match for: %s" +msgstr "E384: претрага је достигла ВРХ без подударања за: %s" + +#, c-format +msgid "E385: search hit BOTTOM without match for: %s" +msgstr "E385: претрага је достигла ДНО без подударања за: %s" + +msgid "E386: Expected '?' or '/' after ';'" +msgstr "E386: Након ';' се очекује '?' или '/'" + +msgid " (includes previously listed match)" +msgstr " (укључује претходно наведена подударања)" + +msgid "--- Included files " +msgstr "--- Прикључене датотеке " + +msgid "not found " +msgstr "нису пронађене " + +msgid "in path ---\n" +msgstr "у путањи ---\n" + +msgid " (Already listed)" +msgstr " (Већ наведено)" + +msgid " NOT FOUND" +msgstr " НИЈЕ ПРОНАЂЕНО" + +#, c-format +msgid "Scanning included file: %s" +msgstr "Прегледање уметнуте датотеке: %s" + +#, c-format +msgid "Searching included file %s" +msgstr "Претраживање уметнуте датотеке %s" + +msgid "E387: Match is on current line" +msgstr "E387: Подударање је у текућој линији" + +msgid "All included files were found" +msgstr "Све уметнуте датотеке су пронађене" + +msgid "No included files" +msgstr "Нема уметнутих датотека" + +msgid "E388: Couldn't find definition" +msgstr "E388: Дефиниција не може да се пронађе" + +msgid "E389: Couldn't find pattern" +msgstr "E389: Шаблон за претрагу није пронађен" + +msgid "Substitute " +msgstr "Замена " + +#, c-format +msgid "" +"\n" +"# Last %sSearch Pattern:\n" +"~" +msgstr "" +"\n" +"# Последњи %sШаблон Претраге:\n" +"~" + +msgid "E756: Spell checking is not enabled" +msgstr "E756: Провера правописа није омогућена" + +#, c-format +msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" +msgstr "Упозорење: Листа речи \"%s_%s.spl\" или \"%s_ascii.spl\" не може да се пронађе" + +#, c-format +msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" +msgstr "Упозорење: Лста речи \"%s.%s.spl\" или \"%s.ascii.spl\" не може да се пронађе" + +msgid "E797: SpellFileMissing autocommand deleted buffer" +msgstr "E797: SpellFileMissing аутокоманда је обрисала бафер" + +#, c-format +msgid "Warning: region %s not supported" +msgstr "Упозорење: регион %s није подржан" + +msgid "Sorry, no suggestions" +msgstr "Жао нам је, нема сугестија" + +#, c-format +msgid "Sorry, only %ld suggestions" +msgstr "Жао нам је, само %ld сугестија" + +#, c-format +msgid "Change \"%.*s\" to:" +msgstr "Променити \"%.*s\" у:" + +#, c-format +msgid " < \"%.*s\"" +msgstr " < \"%.*s\"" + +msgid "E752: No previous spell replacement" +msgstr "E752: Нема претходне правописне замене" + +#, c-format +msgid "E753: Not found: %s" +msgstr "E753: Није пронађено: %s" + +msgid "E758: Truncated spell file" +msgstr "E758: Правописна датотека је прекраћена" + +#, c-format +msgid "Trailing text in %s line %d: %s" +msgstr "Текст вишак у %s линија %d: %s" + +#, c-format +msgid "Affix name too long in %s line %d: %s" +msgstr "Име наставка је предугачко у %s линија %d: %s" + +msgid "E761: Format error in affix file FOL, LOW or UPP" +msgstr "E761: Грешка формата у датотеци наставака FOL, LOW или UPP" + +msgid "E762: Character in FOL, LOW or UPP is out of range" +msgstr "E762: Карактер у FOL, LOW или UPP је ван опсега" + +msgid "Compressing word tree..." +msgstr "Стабло речи се компресује..." + +#, c-format +msgid "Reading spell file \"%s\"" +msgstr "Читање правописне датотеке \"%s\"" + +msgid "E757: This does not look like a spell file" +msgstr "E757: Ово не изгледа као правописна датотека" + +msgid "E771: Old spell file, needs to be updated" +msgstr "E771: Стара правописна датотека, потребно је да се освежи" + +msgid "E772: Spell file is for newer version of Vim" +msgstr "E772: Правописна датотека је за новију верзију Vim-а" + +msgid "E770: Unsupported section in spell file" +msgstr "E770: Неподржана секција у правописној датотеци" + +#, c-format +msgid "E778: This does not look like a .sug file: %s" +msgstr "E778: Ово не изгледа као .sug датотека: %s" + +#, c-format +msgid "E779: Old .sug file, needs to be updated: %s" +msgstr "E779: Стара .sug датотека, потребно је да се освежи: %s" + +#, c-format +msgid "E780: .sug file is for newer version of Vim: %s" +msgstr "E780: .sug датотека је за новију верзију Vim-а: %s" + +#, c-format +msgid "E781: .sug file doesn't match .spl file: %s" +msgstr "E781: .sug датотека не одговара .spl датотеци: %s" + +#, c-format +msgid "E782: error while reading .sug file: %s" +msgstr "E782: грешка приликом читања .sug датотеке: %s" + +#, c-format +msgid "Reading affix file %s ..." +msgstr "Читање датотеке наставака %s ..." + +#, c-format +msgid "Conversion failure for word in %s line %d: %s" +msgstr "Неуспешна конверзија за реч у %s линија %d: %s" + +#, c-format +msgid "Conversion in %s not supported: from %s to %s" +msgstr "Конверзија у %s није подржана: из %s у %s" + +#, c-format +msgid "Conversion in %s not supported" +msgstr "Конверзија у %s није подржана" + +#, c-format +msgid "Invalid value for FLAG in %s line %d: %s" +msgstr "Неважећа вредност за FLAG у %s линија %d: %s" + +#, c-format +msgid "FLAG after using flags in %s line %d: %s" +msgstr "FLAG након коришћења индикатора у %s линија %d: %s" + +#, c-format +msgid "" +"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line " +"%d" +msgstr "" +"Дефинисање COMPOUNDFORBIDFLAG након PFX ставке може да дâ погрешне резултате " +"у %s line %d" + +#, c-format +msgid "" +"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line " +"%d" +msgstr "" +"Дефинисање COMPOUNDPERMITFLAG након PFX ставке може да дâ погрешне резултате " +"у %s line %d" + +#, c-format +msgid "Wrong COMPOUNDRULES value in %s line %d: %s" +msgstr "Погрешна COMPOUNDRULES вредност у %s линија %d: %s" + +#, c-format +msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s" +msgstr "Погрешна COMPOUNDWORDMAX вредност у %s линија %d: %s" + +#, c-format +msgid "Wrong COMPOUNDMIN value in %s line %d: %s" +msgstr "Погрешна COMPOUNDMIN вредност у %s линија %d: %s" + +#, c-format +msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s" +msgstr "Погрешна COMPOUNDSYLMAX вредност у %s линија %d: %s" + +#, c-format +msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s" +msgstr "Погрешна CHECKCOMPOUNDPATTERN вредност у %s линија %d: %s" + +#, c-format +msgid "Different combining flag in continued affix block in %s line %d: %s" +msgstr "Различит индикатор комбиновања у настављеном блоку наставака у %s линија %d: %s" + +#, c-format +msgid "Duplicate affix in %s line %d: %s" +msgstr "Дупликат наставка у %s линија %d: %s" + +#, c-format +msgid "" +"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s " +"line %d: %s" +msgstr "" +"Наставак се такође користиBAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST " +"у %s линија %d: %s" + +#, c-format +msgid "Expected Y or N in %s line %d: %s" +msgstr "Очекује се Y или N у %s линија %d: %s" + +#, c-format +msgid "Broken condition in %s line %d: %s" +msgstr "Неправилан услов у %s линија %d: %s" + +#, c-format +msgid "Expected REP(SAL) count in %s line %d" +msgstr "Очекује се број REP(SAL) у %s линија %d" + +#, c-format +msgid "Expected MAP count in %s line %d" +msgstr "Очекује се број MAP у %s линија %d" + +#, c-format +msgid "Duplicate character in MAP in %s line %d" +msgstr "Дупликат карактера у MAP у %s линија %d" + +#, c-format +msgid "Unrecognized or duplicate item in %s line %d: %s" +msgstr "Непрепосната или дупла ставка у %s линија %d: %s" + +#, c-format +msgid "Missing FOL/LOW/UPP line in %s" +msgstr "Недостаје FOL/LOW/UPP линија у %s" + +msgid "COMPOUNDSYLMAX used without SYLLABLE" +msgstr "COMPOUNDSYLMAX се користи без SYLLABLE" + +msgid "Too many postponed prefixes" +msgstr "Превише закашњених префикса" + +msgid "Too many compound flags" +msgstr "Превише индикатора сложеница" + +msgid "Too many postponed prefixes and/or compound flags" +msgstr "Превише закашњених префикса и/или индикатора сложеница" + +#, c-format +msgid "Missing SOFO%s line in %s" +msgstr "Недостаје SOFO%s линија у %s" + +#, c-format +msgid "Both SAL and SOFO lines in %s" +msgstr "И SAL и SOFO линије у %s" + +#, c-format +msgid "Flag is not a number in %s line %d: %s" +msgstr "Индикатор није број у %s линија %d: %s" + +#, c-format +msgid "Illegal flag in %s line %d: %s" +msgstr "Неважећи индикатор у %s линија %d: %s" + +#, c-format +msgid "%s value differs from what is used in another .aff file" +msgstr "%s вредност се разликује од онога што је коришћено у другој .aff датотеци" + +#, c-format +msgid "Reading dictionary file %s ..." +msgstr "Читање датотеке речника %s ..." + +#, c-format +msgid "E760: No word count in %s" +msgstr "E760: Нема броја речи у %s" + +#, c-format +msgid "line %6d, word %6d - %s" +msgstr "линија %6d, реч %6d - %s" + +#, c-format +msgid "Duplicate word in %s line %d: %s" +msgstr "Дупликат речи у %s линија %d: %s" + +#, c-format +msgid "First duplicate word in %s line %d: %s" +msgstr "Прва реч дупликат у %s линија %d: %s" + +#, c-format +msgid "%d duplicate word(s) in %s" +msgstr "%d реч(и) дупликат(а) у %s" + +#, c-format +msgid "Ignored %d word(s) with non-ASCII characters in %s" +msgstr "Игнорисана/о %d реч(и) са не-ASCII карактерима у %s" + +#, c-format +msgid "Reading word file %s ..." +msgstr "Читање датотеке речи %s ..." + +#, c-format +msgid "Duplicate /encoding= line ignored in %s line %d: %s" +msgstr "Дупликат /encoding= линија је игнорисана у %s линија %d: %s" + +#, c-format +msgid "/encoding= line after word ignored in %s line %d: %s" +msgstr "/encoding= линија након речи је игнорисана у %s линија %d: %s" + +#, c-format +msgid "Duplicate /regions= line ignored in %s line %d: %s" +msgstr "Дупликат /regions= линија је игнорисана у %s линија %d: %s" + +#, c-format +msgid "Too many regions in %s line %d: %s" +msgstr "Превише региона у %s линија %d: %s" + +#, c-format +msgid "/ line ignored in %s line %d: %s" +msgstr "/ линија игнорисана у %s линија %d: %s" + +#, c-format +msgid "Invalid region nr in %s line %d: %s" +msgstr "Неважећи број региона у %s линија %d: %s" + +#, c-format +msgid "Unrecognized flags in %s line %d: %s" +msgstr "Непрепознати индикатори у %s линија %d: %s" + +#, c-format +msgid "Ignored %d words with non-ASCII characters" +msgstr "Игнорисано је %d рћи са не-ASCII карактерима" + +msgid "E845: Insufficient memory, word list will be incomplete" +msgstr "E845: Недовољно меморије, листа речи неће бити комплетна" + +#, c-format +msgid "Compressed %d of %d nodes; %d (%d%%) remaining" +msgstr "Компресовано је %d од %d чворова; преостало је још %d (%d%%)" + +msgid "Reading back spell file..." +msgstr "Читање правописне датотеке..." + +msgid "Performing soundfolding..." +msgstr "Извођење склапања по звучности..." + +#, c-format +msgid "Number of words after soundfolding: %ld" +msgstr "Број речи након склапања по звучности: %ld" + +#, c-format +msgid "Total number of words: %d" +msgstr "Укупан број речи: %d" + +#, c-format +msgid "Writing suggestion file %s ..." +msgstr "Уписивање датотеке предлога %s ..." + +#, c-format +msgid "Estimated runtime memory use: %d bytes" +msgstr "Процењена потребна величина меморије у време извршавања: %d бајтова" + +msgid "E751: Output file name must not have region name" +msgstr "E751: Име излазне датотеке не сме да има име региона" + +msgid "E754: Only up to 8 regions supported" +msgstr "E754: Подржано је само до 8 региона" + +#, c-format +msgid "E755: Invalid region in %s" +msgstr "E755: Неважећи регион у %s" + +msgid "Warning: both compounding and NOBREAK specified" +msgstr "Упозорење: наведени су и слагање и NOBREAK" + +#, c-format +msgid "Writing spell file %s ..." +msgstr "Уписивање правописне датотеке %s ..." + +msgid "Done!" +msgstr "Завршено!" + +#, c-format +msgid "E765: 'spellfile' does not have %ld entries" +msgstr "E765: 'spellfile' не садржи %ld ставке" + +#, c-format +msgid "Word '%.*s' removed from %s" +msgstr "Реч '%.*s' је уклоњена из %s" + +#, c-format +msgid "Word '%.*s' added to %s" +msgstr "Реч '%.*s' је додата у %s" + +msgid "E763: Word characters differ between spell files" +msgstr "E763: Карактери у речи се разликују између правописних датотека" + +msgid "E783: duplicate char in MAP entry" +msgstr "E783: карактер дупликат у MAP ставци" + +msgid "No Syntax items defined for this buffer" +msgstr "За оба јбафер нису дефинисане синтаксне ставке" + +msgid "syntax conceal on" +msgstr "скривање синтаксе укључено" + +msgid "syntax conceal off" +msgstr "скривање синтаксе искључено" + +#, c-format +msgid "E390: Illegal argument: %s" +msgstr "E390: Неважећи аргумент: %s" + +msgid "syntax case ignore" +msgstr "мала/велика слова се не разликују у синтакси" + +msgid "syntax case match" +msgstr "мала/велика слова се разликују у синтакси" + +msgid "syntax spell toplevel" +msgstr "синтакса правописа toplevel" + +msgid "syntax spell notoplevel" +msgstr "синтакса правописа notoplevel" + +msgid "syntax spell default" +msgstr "синтакса правописа подразумевано" + +msgid "syntax iskeyword " +msgstr "синтакса iskeyword " + +#, c-format +msgid "E391: No such syntax cluster: %s" +msgstr "E391: Не постоји такав синтаксни кластер: %s" + +msgid "syncing on C-style comments" +msgstr "синхронизација на коментарима C-стила" + +msgid "no syncing" +msgstr "без синхронизације" + +msgid "syncing starts " +msgstr "синхронизација почиње " + +msgid " lines before top line" +msgstr " линија пре линије на врху" + +msgid "" +"\n" +"--- Syntax sync items ---" +msgstr "" +"\n" +"--- Ставке синхро синтаксе ---" + +msgid "" +"\n" +"syncing on items" +msgstr "" +"\n" +"синхро на ставкама" + +msgid "" +"\n" +"--- Syntax items ---" +msgstr "" +"\n" +"--- Ставке синтаксе ---" + +#, c-format +msgid "E392: No such syntax cluster: %s" +msgstr "E392: не постоји такав синтаксни кластер: %s" + +msgid "minimal " +msgstr "минимално " + +msgid "maximal " +msgstr "максимално " + +msgid "; match " +msgstr "; подударања " + +msgid " line breaks" +msgstr " прелома линије" + +msgid "E395: contains argument not accepted here" +msgstr "E395: садржи аргумент који се овде не прихвата" + +msgid "E844: invalid cchar value" +msgstr "E844: неважећа cchar вредност" + +msgid "E393: group[t]here not accepted here" +msgstr "E393: group[t]here се овде не прихвата" + +#, c-format +msgid "E394: Didn't find region item for %s" +msgstr "E394: Ставка региона није пронађена за %s" + +msgid "E397: Filename required" +msgstr "E397: Потребно име датотеке" + +msgid "E847: Too many syntax includes" +msgstr "E847: Превише синтаксних уметања" + +#, c-format +msgid "E789: Missing ']': %s" +msgstr "E789: Недостаје ']': %s" + +#, c-format +msgid "E890: trailing char after ']': %s]%s" +msgstr "E890: карактер вишка након ']': %s]%s" + +#, c-format +msgid "E398: Missing '=': %s" +msgstr "E398: Недостаје '=': %s" + +#, c-format +msgid "E399: Not enough arguments: syntax region %s" +msgstr "E399: Нема довољно аргумената: синтаксни регион %s" + +msgid "E848: Too many syntax clusters" +msgstr "E848: Превише синтаксних кластера" + +msgid "E400: No cluster specified" +msgstr "E400: Није наведен ниједан кластер" + +#, c-format +msgid "E401: Pattern delimiter not found: %s" +msgstr "E401: Није пронађен граничник шаблона: %s" + +#, c-format +msgid "E402: Garbage after pattern: %s" +msgstr "E402: Смеће након шаблона: %s" + +msgid "E403: syntax sync: line continuations pattern specified twice" +msgstr "E403: синтаксна синхро: шаблон настављања линије је наведен двапут" + +#, c-format +msgid "E404: Illegal arguments: %s" +msgstr "E404: Неважећи аргументи: %s" + +#, c-format +msgid "E405: Missing equal sign: %s" +msgstr "E405: недостаје знак једнакости: %s" + +#, c-format +msgid "E406: Empty argument: %s" +msgstr "E406: Празан аргумент: %s" + +#, c-format +msgid "E407: %s not allowed here" +msgstr "E407: %s овде није дозвољено" + +#, c-format +msgid "E408: %s must be first in contains list" +msgstr "E408: %s мора да буде прво у contains листи" + +#, c-format +msgid "E409: Unknown group name: %s" +msgstr "E409: Непознато име групе: %s" + +#, c-format +msgid "E410: Invalid :syntax subcommand: %s" +msgstr "E410: Неважећа :syntax подкоманда: %s" + +msgid "" +" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" +msgstr "" +" УКУПНО БРОЈ ПОДУД НАЈСПОРИЈЕ ПРОСЕК ИМЕ ШАБЛОН" + +msgid "E679: recursive loop loading syncolor.vim" +msgstr "E679: Рекурзивна петља код учитавања syncolor.vim" + +#, c-format +msgid "E411: highlight group not found: %s" +msgstr "E411: група истицања није пронађена: %s" + +#, c-format +msgid "E412: Not enough arguments: \":highlight link %s\"" +msgstr "E412: Нема довољно аргумената: \":highlight link %s\"" + +#, c-format +msgid "E413: Too many arguments: \":highlight link %s\"" +msgstr "E413: Сувише аргумената: \":highlight link %s\"" + +msgid "E414: group has settings, highlight link ignored" +msgstr "E414: група има поставке, highlight link се игнорише" + +#, c-format +msgid "E415: unexpected equal sign: %s" +msgstr "E415: неочкиван знак једнакости: %s" + +#, c-format +msgid "E416: missing equal sign: %s" +msgstr "E416: недостаје знак једнакости: %s" + +#, c-format +msgid "E417: missing argument: %s" +msgstr "E417: недостаје аргумент: %s" + +#, c-format +msgid "E418: Illegal value: %s" +msgstr "E418: Неважећа вредност: %s" + +msgid "E419: FG color unknown" +msgstr "E419: Непозната FG боја" + +msgid "E420: BG color unknown" +msgstr "E420: Непозната BG боја" + +#, c-format +msgid "E421: Color name or number not recognized: %s" +msgstr "E421: Име боје или број нису препознати: %s" + +#, c-format +msgid "E422: terminal code too long: %s" +msgstr "E422: код терминала је предугачак: %s" + +#, c-format +msgid "E423: Illegal argument: %s" +msgstr "E423: Неважећи аргумент: %s" + +msgid "E424: Too many different highlighting attributes in use" +msgstr "E424: У употреби је превише различитих атрибута истицања" + +msgid "E669: Unprintable character in group name" +msgstr "E669: У имену групе је карактер који не може да се штампа" + +msgid "W18: Invalid character in group name" +msgstr "W18: Неважећи карактер у имену групе" + +msgid "E849: Too many highlight and syntax groups" +msgstr "E849: Превише синтаксних и група истицања" + +msgid "E555: at bottom of tag stack" +msgstr "E555: на дну стека ознака" + +msgid "E556: at top of tag stack" +msgstr "E556: на врху стека ознака" + +msgid "E425: Cannot go before first matching tag" +msgstr "E425: Не може да се иде испред прве подударајуће ознаке" + +#, c-format +msgid "E426: tag not found: %s" +msgstr "E426: ознака није пронађена: %s" + +msgid " # pri kind tag" +msgstr " # ознака pri врсте" + +msgid "file\n" +msgstr "датотека\n" + +msgid "E427: There is only one matching tag" +msgstr "E427: Постоји само једна подударајућа ознака" + +msgid "E428: Cannot go beyond last matching tag" +msgstr "E428: Не може да се иде иза последње подударајуће ознаке" + +#, c-format +msgid "File \"%s\" does not exist" +msgstr "Датотека \"%s\" не постоји" + +#, c-format +msgid "tag %d of %d%s" +msgstr "ознака %d од %d%s" + +msgid " or more" +msgstr " или више" + +msgid " Using tag with different case!" +msgstr " Користи се ознака за другом врстом слова (мала/велика)!" + +#, c-format +msgid "E429: File \"%s\" does not exist" +msgstr "E429: Датотека \"%s\" не постоји" + +msgid "" +"\n" +" # TO tag FROM line in file/text" +msgstr "" +"\n" +" # НА ознака ОД линије у датот/текст" + +#, c-format +msgid "Searching tags file %s" +msgstr "Претраживање датотеке ознака %s" + +#, c-format +msgid "E430: Tag file path truncated for %s\n" +msgstr "E430: Путања датотеке ознака је прекинута за %s\n" + +msgid "Ignoring long line in tags file" +msgstr "Дугачка линија у датотеци ознака се игнорише" + +#, c-format +msgid "E431: Format error in tags file \"%s\"" +msgstr "E431: Грешка формата у датотеци ознака \"%s\"" + +#, c-format +msgid "Before byte %ld" +msgstr "Пре бајта %ld" + +#, c-format +msgid "E432: Tags file not sorted: %s" +msgstr "E432: Датотека ознака није сортирана: %s" + +msgid "E433: No tags file" +msgstr "E433: Нема датотеке ознака" + +msgid "E434: Can't find tag pattern" +msgstr "E434: Не може да се пронађе шаблон ознаке" + +msgid "E435: Couldn't find tag, just guessing!" +msgstr "E435: Ознака није могла да се пронађе, само нагађам!" + +#, c-format +msgid "Duplicate field name: %s" +msgstr "Дупло име поља: %s" + +msgid "' not known. Available builtin terminals are:" +msgstr "' није познат. Доступни уграђени терминали су:" + +msgid "defaulting to '" +msgstr "подразумева се '" + +msgid "E557: Cannot open termcap file" +msgstr "E557: termcap датотека не може да се отвори" + +msgid "E558: Terminal entry not found in terminfo" +msgstr "E558: У terminfo није пронађена ставка за терминал" + +msgid "E559: Terminal entry not found in termcap" +msgstr "E559: У termcap није пронађена ставка терминала" + +#, c-format +msgid "E436: No \"%s\" entry in termcap" +msgstr "E436: Нема \"%s\" ставке у termcap" + +msgid "E437: terminal capability \"cm\" required" +msgstr "E437: потребна је могућност терминала \"cm\"" + +msgid "" +"\n" +"--- Terminal keys ---" +msgstr "" +"\n" +"--- Тастери терминала ---" + +msgid "Cannot open $VIMRUNTIME/rgb.txt" +msgstr "Не може да се отвори $VIMRUNTIME/rgb.txt" + +msgid "Terminal" +msgstr "Терминал" + +msgid "Terminal-finished" +msgstr "Терминал-завршен" + +msgid "active" +msgstr "aktivan" + +msgid "running" +msgstr "ради" + +msgid "finished" +msgstr "завршен" + +msgid "new shell started\n" +msgstr "покренуто ново командно окружење\n" + +msgid "Vim: Error reading input, exiting...\n" +msgstr "Vim: Грешка при читању улаза, излазак...\n" + +msgid "Used CUT_BUFFER0 instead of empty selection" +msgstr "Уместо празне селекције корићен је CUT_BUFFER0" + +msgid "E881: Line count changed unexpectedly" +msgstr "E881: Број линија се неочекивано променио" + +msgid "No undo possible; continue anyway" +msgstr "Није могућ опозив; ипак настави" + +#, c-format +msgid "E828: Cannot open undo file for writing: %s" +msgstr "E828: Датотека опозива не може да се отвори за упис: %s" + +#, c-format +msgid "E825: Corrupted undo file (%s): %s" +msgstr "E825: Искварена датотека за опозив (%s): %s" + +msgid "Cannot write undo file in any directory in 'undodir'" +msgstr "Датотека за опозив не може да се упише ни у један директоријум из 'undodir'" + +#, c-format +msgid "Will not overwrite with undo file, cannot read: %s" +msgstr "Неће се вршити преписивање са датотеком опозива, читање није могуће: %s" + +#, c-format +msgid "Will not overwrite, this is not an undo file: %s" +msgstr "Неће се цршити преписивање, ово није датотека за опозив: %s" + +msgid "Skipping undo file write, nothing to undo" +msgstr "Прескакање уписа у датотеку за опозив, нема шта да се опозове" + +#, c-format +msgid "Writing undo file: %s" +msgstr "Упис датотеке за опозив: %s" + +#, c-format +msgid "E829: write error in undo file: %s" +msgstr "E829: грешка код уписа у датотеку за опозив: %s" + +#, c-format +msgid "Not reading undo file, owner differs: %s" +msgstr "Датотека за опозив се не чита, власник се разликује: %s" + +#, c-format +msgid "Reading undo file: %s" +msgstr "Читање датотеке за опозив: %s" + +#, c-format +msgid "E822: Cannot open undo file for reading: %s" +msgstr "E822: Датотека за опозив не може да се отвори за читање: %s" + +#, c-format +msgid "E823: Not an undo file: %s" +msgstr "E823: Није датотека за опозив: %s" + +#, c-format +msgid "E832: Non-encrypted file has encrypted undo file: %s" +msgstr "E832: Датотека која није шифрована има шифровану датотеку за опозив: %s" + +#, c-format +msgid "E826: Undo file decryption failed: %s" +msgstr "E826: Дешифровање датотеке за опозив није успело: %s" + +#, c-format +msgid "E827: Undo file is encrypted: %s" +msgstr "E827: Датотека за опозив је шифрована: %s" + +#, c-format +msgid "E824: Incompatible undo file: %s" +msgstr "E824: Некомпатибилна датотека за опозив: %s" + +msgid "File contents changed, cannot use undo info" +msgstr "Садржај датотеке је промењен, информације за опозив не могу да се користе" + +#, c-format +msgid "Finished reading undo file %s" +msgstr "Тавршено је читање датотеке за опозив %s" + +msgid "Already at oldest change" +msgstr "Већ сте на најстаријој измени" + +msgid "Already at newest change" +msgstr "Већ сте на најновијој измени" + +#, c-format +msgid "E830: Undo number %ld not found" +msgstr "E830: Број опозива %ld није пронађен" + +msgid "E438: u_undo: line numbers wrong" +msgstr "E438: u_undo: погрешни бројеви линије" + +msgid "more line" +msgstr "линија више" + +msgid "more lines" +msgstr "линија више" + +msgid "line less" +msgstr "линија мање" + +msgid "fewer lines" +msgstr "линија мање" + +msgid "change" +msgstr "измена" + +msgid "changes" +msgstr "измена" + +#, c-format +msgid "%ld %s; %s #%ld %s" +msgstr "%ld %s; %s #%ld %s" + +msgid "before" +msgstr "пре" + +msgid "after" +msgstr "након" + +msgid "Nothing to undo" +msgstr "Ништа за опозив" + +msgid "number changes when saved" +msgstr "број измене када сачувано" + +#, c-format +msgid "%ld seconds ago" +msgstr "пре %ld секунди" + +msgid "E790: undojoin is not allowed after undo" +msgstr "E790: undojoin ије дозвољен након undo" + +msgid "E439: undo list corrupt" +msgstr "E439: листа опозива је искварена" + +msgid "E440: undo line missing" +msgstr "E440: недостаје линија опозива" + +#, c-format +msgid "E122: Function %s already exists, add ! to replace it" +msgstr "E122: Функција %s већ постоји, додајте ! да је замените" + +msgid "E717: Dictionary entry already exists" +msgstr "E717: Унос већ постоји у речнику" + +msgid "E718: Funcref required" +msgstr "E718: Потребна funcref" + +#, c-format +msgid "E130: Unknown function: %s" +msgstr "E130: Непозната функција: %s" + +#, c-format +msgid "E125: Illegal argument: %s" +msgstr "E125: Неважећи аргумент: %s" + +#, c-format +msgid "E853: Duplicate argument name: %s" +msgstr "E853: Име аргумента је дуплирано: %s" + +#, c-format +msgid "E740: Too many arguments for function %s" +msgstr "E740: Превише аргумената за функцију %s" + +#, c-format +msgid "E116: Invalid arguments for function %s" +msgstr "E116: Неважећи аргументи за функцију %s" + +msgid "E132: Function call depth is higher than 'maxfuncdepth'" +msgstr "E132: Дубина позива функције је већа од 'maxfuncdepth'" + +#, c-format +msgid "calling %s" +msgstr "позива се %s" + +#, c-format +msgid "%s aborted" +msgstr "%s је прекинута" + +#, c-format +msgid "%s returning #%ld" +msgstr "%s враћа #%ld" + +#, c-format +msgid "%s returning %s" +msgstr "%s враћа %s" + +msgid "E699: Too many arguments" +msgstr "E699: Сувише аргумената" + +#, c-format +msgid "E117: Unknown function: %s" +msgstr "E117: Непозната функција: %s" + +#, c-format +msgid "E933: Function was deleted: %s" +msgstr "E933: Функција је обрисана: %s" + +#, c-format +msgid "E119: Not enough arguments for function: %s" +msgstr "E119: Нема довољно аргумената за функцију: %s" + +#, c-format +msgid "E120: Using <SID> not in a script context: %s" +msgstr "E120: Коришћење <SID> ван скрипт контекста: %s" + +#, c-format +msgid "E725: Calling dict function without Dictionary: %s" +msgstr "E725: Позивање dict функције без Речника: %s" + +msgid "E129: Function name required" +msgstr "E129: Потребно је име функције" + +#, c-format +msgid "E128: Function name must start with a capital or \"s:\": %s" +msgstr "E128: Име функције мора да почне великим словом или \"s:\": %s" + +#, c-format +msgid "E884: Function name cannot contain a colon: %s" +msgstr "E884: Име функције не може да садржи двотачку: %s" + +#, c-format +msgid "E123: Undefined function: %s" +msgstr "E123: Недефинисана функција: %s" + +#, c-format +msgid "E124: Missing '(': %s" +msgstr "E124: Недостаје '(': %s" + +msgid "E862: Cannot use g: here" +msgstr "E862: g: не може овде да се користи" + +#, c-format +msgid "E932: Closure function should not be at top level: %s" +msgstr "E932: Затварајућа функција не би требало да буде на највишем нивоу: %s" + +msgid "E126: Missing :endfunction" +msgstr "E126: Недостаје :endfunction" + +#, c-format +msgid "W22: Text found after :endfunction: %s" +msgstr "W22: Пронађен текст након :endfunction: %s" + +#, c-format +msgid "E707: Function name conflicts with variable: %s" +msgstr "E707: Име функције је у конфликту са променљивом: %s" + +#, c-format +msgid "E127: Cannot redefine function %s: It is in use" +msgstr "E127: Функција %s не може да се редефинише: Тренутно се користи" + +#, c-format +msgid "E746: Function name does not match script file name: %s" +msgstr "E746: Име функције се не поклапа са именом скрипт датотеке: %s" + +#, c-format +msgid "E131: Cannot delete function %s: It is in use" +msgstr "E131: Функција %s не може да се обрише: Тренутно се користи" + +msgid "E133: :return not inside a function" +msgstr "E133: :return није унутар функције" + +#, c-format +msgid "E107: Missing parentheses: %s" +msgstr "E107: Недостају заграде: %s" + +msgid "" +"\n" +"MS-Windows 64-bit GUI version" +msgstr "" +"\n" +"MS-Windows 64-битна GUI верзија" + +msgid "" +"\n" +"MS-Windows 32-bit GUI version" +msgstr "" +"\n" +"MS-Windows 32-битна GUI верзија" + +msgid " with OLE support" +msgstr " са OLE подршком" + +msgid "" +"\n" +"MS-Windows 64-bit console version" +msgstr "" +"\n" +"MS-Windows 64-битна конзолна верзија" + +msgid "" +"\n" +"MS-Windows 32-bit console version" +msgstr "" +"\n" +"MS-Windows 32-битна конзолна верзија" + +msgid "" +"\n" +"macOS version" +msgstr "" +"\n" +"macOS верзија" + +msgid "" +"\n" +"macOS version w/o darwin feat." +msgstr "" +"\n" +"macOS верзија без darwin могућ." + +msgid "" +"\n" +"OpenVMS version" +msgstr "" +"\n" +"OpenVMS верзија" + +msgid "" +"\n" +"Included patches: " +msgstr "" +"\n" +"Укључене исправке: " + +msgid "" +"\n" +"Extra patches: " +msgstr "" +"\n" +"Екстра исправке: " + +msgid "Modified by " +msgstr "Модификовао " + +msgid "" +"\n" +"Compiled " +msgstr "" +"\n" +"Компајлирао" + +msgid "by " +msgstr " " + +msgid "" +"\n" +"Huge version " +msgstr "" +"\n" +"Огромна верзија " + +msgid "" +"\n" +"Big version " +msgstr "" +"\n" +"Велика верзија " + +msgid "" +"\n" +"Normal version " +msgstr "" +"\n" +"Нормална верзија " + +msgid "" +"\n" +"Small version " +msgstr "" +"\n" +"Мала верзија " + +msgid "" +"\n" +"Tiny version " +msgstr "" +"\n" +"Сићушна верзија " + +msgid "without GUI." +msgstr "без GUI." + +msgid "with GTK3 GUI." +msgstr "са GTK3 GUI." + +msgid "with GTK2-GNOME GUI." +msgstr "са GTK2-GNOME GUI." + +msgid "with GTK2 GUI." +msgstr "са GTK2 GUI." + +msgid "with X11-Motif GUI." +msgstr "са X11-Motif GUI." + +msgid "with X11-neXtaw GUI." +msgstr "са X11-neXtaw GUI." + +msgid "with X11-Athena GUI." +msgstr "са X11-Athena GUI." + +msgid "with Photon GUI." +msgstr "са Photon GUI." + +msgid "with GUI." +msgstr "са GUI." + +msgid "with Carbon GUI." +msgstr "са Carbon GUI." + +msgid "with Cocoa GUI." +msgstr "са Cocoa GUI." + +msgid " Features included (+) or not (-):\n" +msgstr " Могућности укључене (+) или не (-):\n" + +msgid " system vimrc file: \"" +msgstr " системскa vimrc датотека: \"" + +msgid " user vimrc file: \"" +msgstr " корисничка vimrc датотека: \"" + +msgid " 2nd user vimrc file: \"" +msgstr " 2га корисничка vimrc датотека: \"" + +msgid " 3rd user vimrc file: \"" +msgstr " 3ћа корисничка vimrc датотека: \"" + +msgid " user exrc file: \"" +msgstr " корисничка exrc датотека: \"" + +msgid " 2nd user exrc file: \"" +msgstr " 2га корисничка exrc датотека: \"" + +msgid " system gvimrc file: \"" +msgstr " системска gvimrc датотека: \"" + +msgid " user gvimrc file: \"" +msgstr " корисничка gvimrc датотека: \"" + +msgid "2nd user gvimrc file: \"" +msgstr "2га корисничка gvimrc датотека: \"" + +msgid "3rd user gvimrc file: \"" +msgstr "3ћа корисничка gvimrc датотека: \"" + +msgid " defaults file: \"" +msgstr " датотека са подраз. опцијама: \"" + +msgid " system menu file: \"" +msgstr " системска датотека менија: \"" + +msgid " fall-back for $VIM: \"" +msgstr " резервна вредност за $VIM: \"" + +msgid " f-b for $VIMRUNTIME: \"" +msgstr "резервна вредн. за $VIMRUNTIME: \"" + +msgid "Compilation: " +msgstr "Компилација: " + +msgid "Compiler: " +msgstr "Компајлер: " + +msgid "Linking: " +msgstr "Повезивање: " + +msgid " DEBUG BUILD" +msgstr " DEBUG ИЗДАЊЕ" + +msgid "VIM - Vi IMproved" +msgstr "VIM - Vi IMproved" + +msgid "version " +msgstr "верзија " + +msgid "by Bram Moolenaar et al." +msgstr "написали Bram Moolenaar et al." + +msgid "Vim is open source and freely distributable" +msgstr "Vim је отвореног кода и може слободно да се дистрибуира" + +msgid "Help poor children in Uganda!" +msgstr "Помозите сиромашној деци у Уганди!" + +msgid "type :help iccf<Enter> for information " +msgstr "откуцајте :help iccf<Enter> за информације " + +msgid "type :q<Enter> to exit " +msgstr "откуцајте :q<Enter> за излаз " + +msgid "type :help<Enter> or <F1> for on-line help" +msgstr "откуцајте :help<Enter> или <F1> за on-line помоћ " + +msgid "type :help version8<Enter> for version info" +msgstr "откуцајте :help version8<Enter> за инфо о верзији" + +msgid "Running in Vi compatible mode" +msgstr "Рад у Vi компатибилном режиму" + +msgid "type :set nocp<Enter> for Vim defaults" +msgstr "откуцајте :set nocp<Enter> за Vim подразумевано" + +msgid "type :help cp-default<Enter> for info on this" +msgstr "откуцајте :help cp-default<Enter> за инфо о овоме" + +msgid "menu Help->Orphans for information " +msgstr "мени Помоћ->Сирочићи за информације " + +msgid "Running modeless, typed text is inserted" +msgstr "Безрежимски рад, умеће се откуцани текст" + +msgid "menu Edit->Global Settings->Toggle Insert Mode " +msgstr "мени Уређивање->Глобална подешавања->Преклапај режим Уметање " + +msgid " for two modes " +msgstr " за два режима " + +msgid "menu Edit->Global Settings->Toggle Vi Compatible" +msgstr "мени Уређивање->Глобална подешавања->Преклапај Vi Компатибилно" + +msgid " for Vim defaults " +msgstr " за Vim подразумевано " + +msgid "Sponsor Vim development!" +msgstr "Спонзоришите Vim развој!" + +msgid "Become a registered Vim user!" +msgstr "Постаните регистровани Vim корисник!" + +msgid "type :help sponsor<Enter> for information " +msgstr "откуцајте :help sponsor<Enter> за информације " + +msgid "type :help register<Enter> for information " +msgstr "откуцајте :help register<Enter> за информације " + +msgid "menu Help->Sponsor/Register for information " +msgstr "мени Помоћ->Спонзор/Региструј се за информације " + +msgid "Already only one window" +msgstr "Већ постоји само један прозор" + +msgid "E441: There is no preview window" +msgstr "E441: Нема прозора за преглед" + +msgid "E442: Can't split topleft and botright at the same time" +msgstr "E442: topleft и botright не могу да се поделе у исто време" + +msgid "E443: Cannot rotate when another window is split" +msgstr "E443: Не може да се ротира када је подељен други прозор" + +msgid "E444: Cannot close last window" +msgstr "E444: Последњи прозор не може да се затвори" + +msgid "E813: Cannot close autocmd window" +msgstr "E813: autocmd прозор не може да се затвори" + +msgid "E814: Cannot close window, only autocmd window would remain" +msgstr "E814: Прозор не може да се затвори, преостао би једино autocmd прозор" + +msgid "E445: Other window contains changes" +msgstr "E445: Други прозори садрже измене" + +msgid "E446: No file name under cursor" +msgstr "E446: Под курсором се не налази име датотеке" + +#, c-format +msgid "E447: Can't find file \"%s\" in path" +msgstr "E447: Датотека \"%s\" не може да се пронађе у путањи" + +#, c-format +msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E799: Неважећи ИД: %ld (мора бити већи од или једнак 1)" + +#, c-format +msgid "E801: ID already taken: %ld" +msgstr "E801: ИД је већ заузет: %ld" + +msgid "List or number required" +msgstr "Захтева се листа или број" + +#, c-format +msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E802: Неважећи ИД: %ld (мора бити већи од или једнак 1)" + +#, c-format +msgid "E803: ID not found: %ld" +msgstr "E803: ИД није пронађен: %ld" + +msgid "Edit with &multiple Vims" +msgstr "Уређуј са &више Vim-ова" + +msgid "Edit with single &Vim" +msgstr "Уређуј са једним &Vim-ом" + +msgid "Diff with Vim" +msgstr "Diff са Vim" + +msgid "Edit with &Vim" +msgstr "Уређуј са &Vim-ом" + +msgid "Edit with existing Vim - " +msgstr "Уређуј са постојећим Vim - " + +msgid "Edits the selected file(s) with Vim" +msgstr "Уређује селектовауе датотеку(е) са Vim-ом" + +msgid "Error creating process: Check if gvim is in your path!" +msgstr "Грешка приликом креирања процеса: Проверите да ли је gvim у вашој путањи!" + +msgid "gvimext.dll error" +msgstr "gvimext.dll грешка" + +msgid "Path length too long!" +msgstr "Путања је предугачка!" + +msgid "--No lines in buffer--" +msgstr "--У баферу нема линија--" + +msgid "E470: Command aborted" +msgstr "E470: Команда прекинута" + +msgid "E471: Argument required" +msgstr "E471: Потребан је аргумент" + +msgid "E10: \\ should be followed by /, ? or &" +msgstr "E10: Иза \\ треба да је /, ? или &" + +msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits" +msgstr "E11: Неважеће у прозору командне линије; <CR> извршава, CTRL-C отказује" + +msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" +msgstr "E12: Постији забрана за команду у exrc/vimrc у текућој претрази директоријума или ознаке" + +msgid "E171: Missing :endif" +msgstr "E171: Недостаје :endif" + +msgid "E600: Missing :endtry" +msgstr "E600: Недостаје :endtry" + +msgid "E170: Missing :endwhile" +msgstr "E170: Недостаје :endwhile" + +msgid "E170: Missing :endfor" +msgstr "E170: Недостаје :endfor" + +msgid "E588: :endwhile without :while" +msgstr "E588: :endwhile без :while" + +msgid "E588: :endfor without :for" +msgstr "E588: :endfor без :for" + +msgid "E13: File exists (add ! to override)" +msgstr "E13: Датотека постоји (додајте ! за премошћавање)" + +msgid "E472: Command failed" +msgstr "E472: Команда није успела" + +#, c-format +msgid "E234: Unknown fontset: %s" +msgstr "E234: Непознат fontset: %s" + +#, c-format +msgid "E235: Unknown font: %s" +msgstr "E235: Непознат фонт: %s" + +#, c-format +msgid "E236: Font \"%s\" is not fixed-width" +msgstr "E236: Фонт \"%s\" није фиксне ширине" + +msgid "E473: Internal error" +msgstr "E473: Интерна грешка" + +#, c-format +msgid "E685: Internal error: %s" +msgstr "E685: Интерна грешка: %s" + +msgid "Interrupted" +msgstr "Прекинуто" + +msgid "E14: Invalid address" +msgstr "E14: Неважећа адреса" + +msgid "E474: Invalid argument" +msgstr "E474: Неважећи аргумент" + +#, c-format +msgid "E475: Invalid argument: %s" +msgstr "E475: Неважећи аргумент: %s" + +#, c-format +msgid "E15: Invalid expression: %s" +msgstr "E15: Неважећи израз: %s" + +msgid "E16: Invalid range" +msgstr "E16: Неважећи опсег" + +msgid "E476: Invalid command" +msgstr "E476: Неважећа команда" + +#, c-format +msgid "E17: \"%s\" is a directory" +msgstr "E17: \"%s\" је директоријум" + +#, c-format +msgid "E364: Library call failed for \"%s()\"" +msgstr "E364: Позив библиотеке није успео за \"%s()\"" + +msgid "E667: Fsync failed" +msgstr "E667: Fsync није успео" + +#, c-format +msgid "E370: Could not load library %s" +msgstr "E370: Библиотека %s није могла да се учита" + +#, c-format +msgid "E448: Could not load library function %s" +msgstr "E448: Библиотечка функција %s није могла да се учита" + +msgid "E19: Mark has invalid line number" +msgstr "E19: Маркер садржи неисправан број линије" + +msgid "E20: Mark not set" +msgstr "E20: Маркер није постављен" + +msgid "E21: Cannot make changes, 'modifiable' is off" +msgstr "E21: Измене не могу да се учине, опција 'modifiable' је искључена" + +msgid "E22: Scripts nested too deep" +msgstr "E22: Скрипте су предубоко угњеждене" + +msgid "E23: No alternate file" +msgstr "E23: Нема алтернативне датотеке" + +msgid "E24: No such abbreviation" +msgstr "E24: Таква скраћеница не постоји" + +msgid "E477: No ! allowed" +msgstr "E477: ! није дозвољен" + +msgid "E25: GUI cannot be used: Not enabled at compile time" +msgstr "E25: GUI не може да се користи: Није омогућен у време компилације" + +msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" +msgstr "E26: хебрејски не може да се користи: Није омогућен у време компилације\n" + +msgid "E27: Farsi cannot be used: Not enabled at compile time\n" +msgstr "E27: фарси не може да се користи: Није омогућен у време компилације\n" + +msgid "E800: Arabic cannot be used: Not enabled at compile time\n" +msgstr "E800: арапски не може да се користи: Није омогућен у време компилације\n" + +#, c-format +msgid "E28: No such highlight group name: %s" +msgstr "E28: Нема групе истицања са таквим именом: %s" + +msgid "E29: No inserted text yet" +msgstr "E29: Текст још није унет" + +msgid "E30: No previous command line" +msgstr "E30: Нема претходне командне линије" + +msgid "E31: No such mapping" +msgstr "E31: Такво мапирање не постоји" + +msgid "E479: No match" +msgstr "E479: Нема подударања" + +#, c-format +msgid "E480: No match: %s" +msgstr "E480: Нема подударања: %s" + +msgid "E32: No file name" +msgstr "E32: Нема имена датотеке" + +msgid "E33: No previous substitute regular expression" +msgstr "E33: Нема претходног регуларног израза за замену" + +msgid "E34: No previous command" +msgstr "E34: Нема претходне команде" + +msgid "E35: No previous regular expression" +msgstr "E35: Нема претходног регуларног израза" + +msgid "E481: No range allowed" +msgstr "E481: Опсег није дозвољен" + +msgid "E36: Not enough room" +msgstr "E36: Нема довољно простора" + +#, c-format +msgid "E247: no registered server named \"%s\"" +msgstr "E247: нема регистованог сервера под именом \"%s\"" + +#, c-format +msgid "E482: Can't create file %s" +msgstr "E482: Датотека %s не може да се креира" + +msgid "E483: Can't get temp file name" +msgstr "E483: Име привремене датотке не може да се добије" + +#, c-format +msgid "E484: Can't open file %s" +msgstr "E484: Датотека %s не може да се отвори" + +#, c-format +msgid "E485: Can't read file %s" +msgstr "E485: Датотека %s не може да се прочита" + +msgid "E38: Null argument" +msgstr "E38: Празан аргумент" + +msgid "E39: Number expected" +msgstr "E39: Очекује се број" + +#, c-format +msgid "E40: Can't open errorfile %s" +msgstr "E40: Датотека грешке %s не може да се отвори" + +msgid "E233: cannot open display" +msgstr "E233: проказ не може да се отвори" + +msgid "E41: Out of memory!" +msgstr "E41: Нема више меморије!" + +msgid "Pattern not found" +msgstr "Шаблон није пронађен" + +#, c-format +msgid "E486: Pattern not found: %s" +msgstr "E486: Шаблон није пронађен: %s" + +msgid "E487: Argument must be positive" +msgstr "E487: Аргумент мора бити позитиван" + +msgid "E459: Cannot go back to previous directory" +msgstr "E459: Не може да се оде назад на претходни директоријум" + +msgid "E42: No Errors" +msgstr "E42: Нема грешака" + +msgid "E776: No location list" +msgstr "E776: Нема листе локација" + +msgid "E43: Damaged match string" +msgstr "E43: Оштећен стринг за подударање" + +msgid "E44: Corrupted regexp program" +msgstr "E44: regexp програм је покварен" + +msgid "E45: 'readonly' option is set (add ! to override)" +msgstr "E45: Постављена је 'readonly' опција (додајте ! за премошћавање)" + +#, c-format +msgid "E46: Cannot change read-only variable \"%s\"" +msgstr "E46: Променљива само за читање \"%s\" не може да се измени" + +#, c-format +msgid "E794: Cannot set variable in the sandbox: \"%s\"" +msgstr "E794: Не може да се постави променљива у sandbox-у: \"%s\"" + +msgid "E713: Cannot use empty key for Dictionary" +msgstr "E713: Не може да се користи празан кључ за Речник" + +msgid "E715: Dictionary required" +msgstr "E715: Потребан Речник" + +#, c-format +msgid "E684: list index out of range: %ld" +msgstr "E684: индекс листе је ван опсега: %ld" + +#, c-format +msgid "E118: Too many arguments for function: %s" +msgstr "E118: Превише аргумената за функцију: %s" + +#, c-format +msgid "E716: Key not present in Dictionary: %s" +msgstr "E716: У Речнику нема кључа: %s" + +msgid "E714: List required" +msgstr "E714: Потребна Листа" + +#, c-format +msgid "E712: Argument of %s must be a List or Dictionary" +msgstr "E712: Аргумент за %s мора бити Листа или Речник" + +msgid "E47: Error while reading errorfile" +msgstr "E47: Грешка приликом читаља датотеке грешке" + +msgid "E48: Not allowed in sandbox" +msgstr "E48: Није дозвољено у sandbox-у" + +msgid "E523: Not allowed here" +msgstr "E523: Није дозвољено овде" + +msgid "E359: Screen mode setting not supported" +msgstr "E359: Подешавање режима екрана није подржано" + +msgid "E49: Invalid scroll size" +msgstr "E49: Неважећа величина линије за скроловање" + +msgid "E91: 'shell' option is empty" +msgstr "E91: Опција 'shell' је празна" + +msgid "E255: Couldn't read in sign data!" +msgstr "E255: Подаци за знак нису могли да се прочитају!" + +msgid "E72: Close error on swap file" +msgstr "E72: Грешка код затвањара swap датотеке" + +msgid "E73: tag stack empty" +msgstr "E73: стек ознака је празан" + +msgid "E74: Command too complex" +msgstr "E74: Команда је сувише комплексна" + +msgid "E75: Name too long" +msgstr "E75: Име је предугачко" + +msgid "E76: Too many [" +msgstr "E76: Превише [" + +msgid "E77: Too many file names" +msgstr "E77: Превише имена датотека" + +msgid "E488: Trailing characters" +msgstr "E488: Карактери вишка на крају" + +msgid "E78: Unknown mark" +msgstr "E78: Непознат маркер" + +msgid "E79: Cannot expand wildcards" +msgstr "E79: Џокери не могу да се развију" + +msgid "E591: 'winheight' cannot be smaller than 'winminheight'" +msgstr "E591: 'winheight' не може да буде мање од 'winminheight'" + +msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" +msgstr "E592: 'winwidth' не може да буде мање од 'winminwidth'" + +msgid "E80: Error while writing" +msgstr "E80: Грешка приликом уписа" + +msgid "E939: Positive count required" +msgstr "E939: Потребан је позитиван број" + +msgid "E81: Using <SID> not in a script context" +msgstr "E81: <SID> се користи ван скрипт контекста" + +msgid "E449: Invalid expression received" +msgstr "E449: Примљен је неважећи израз" + +msgid "E463: Region is guarded, cannot modify" +msgstr "E463: Регион је чуван, измена није могућа" + +msgid "E744: NetBeans does not allow changes in read-only files" +msgstr "E744: NetBeans не дозвољава измене датотека које смеју само да се читају" + +msgid "E363: pattern uses more memory than 'maxmempattern'" +msgstr "E363: шаблон користи више меморије од 'maxmempattern'" + +msgid "E749: empty buffer" +msgstr "E749: празан бафер" + +#, c-format +msgid "E86: Buffer %ld does not exist" +msgstr "E86: Бафер %ld не постоји" + +msgid "E682: Invalid search pattern or delimiter" +msgstr "E682: Неважећи шаблон претраге или раздвојни карактер" + +msgid "E139: File is loaded in another buffer" +msgstr "E139: Датотека је учитана у други бафер" + +#, c-format +msgid "E764: Option '%s' is not set" +msgstr "E764: Опција '%s' није постављена" + +msgid "E850: Invalid register name" +msgstr "E850: Неважеће име регистра" + +#, c-format +msgid "E919: Directory not found in '%s': \"%s\"" +msgstr "E919: Није пронађен директоријум у '%s': \"%s\"" + +msgid "search hit TOP, continuing at BOTTOM" +msgstr "претрага је достигла ВРХ, наставља се на ДНУ" + +msgid "search hit BOTTOM, continuing at TOP" +msgstr "претрага је достигла ДНО, наставља се на ВРХУ" + +#, c-format +msgid "Need encryption key for \"%s\"" +msgstr "Потребан је кључ за шифровање \"%s\"" + +msgid "empty keys are not allowed" +msgstr "празни кључеви нису дозвољени" + +msgid "dictionary is locked" +msgstr "речник је закључан" + +msgid "list is locked" +msgstr "листа је закључана" + +#, c-format +msgid "failed to add key '%s' to dictionary" +msgstr "кључ '%s' није могао да се дода у речник" + +#, c-format +msgid "index must be int or slice, not %s" +msgstr "index мора бити типа int или slice, не %s" + +#, c-format +msgid "expected str() or unicode() instance, but got %s" +msgstr "очекивала се инстанца str() или unicode(), али је добијена %s" + +#, c-format +msgid "expected bytes() or str() instance, but got %s" +msgstr "очекивала се инстанца bytes() или str(), али је добијена %s" + +#, c-format +msgid "" +"expected int(), long() or something supporting coercing to long(), but got %s" +msgstr "" +"очекивало се int(), long() или нешто што подржава спајање са long(), али је добијено %s" + +#, c-format +msgid "expected int() or something supporting coercing to int(), but got %s" +msgstr "очекивало се int() или нешто што подржава спајање са int(), али је добијено %s" + +msgid "value is too large to fit into C int type" +msgstr "вредност је сувише велика да се смести у C int тип" + +msgid "value is too small to fit into C int type" +msgstr "вредност је сувише мала да се смести у C int тип" + +msgid "number must be greater than zero" +msgstr "број мора бити већи од нуле" + +msgid "number must be greater or equal to zero" +msgstr "број мора бити већи од или једнак нули" + +msgid "can't delete OutputObject attributes" +msgstr "атрибути OutputObject не могу да се обришу" + +#, c-format +msgid "invalid attribute: %s" +msgstr "неважећи атрибут: %s" + +msgid "E264: Python: Error initialising I/O objects" +msgstr "E264: Python: Грешка код иницијализације У/И објеката" + +msgid "failed to change directory" +msgstr "не може да се промени директоријум" + +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got %s" +msgstr "Као резултат imp.find_module() очекује се триплет, али је добијено %s" + +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d" +msgstr "Као резултат imp.find_module() очекује се триплет, али је добијена н-торка величине %d" + +msgid "internal error: imp.find_module returned tuple with NULL" +msgstr "интерна грешка: imp.find_module је вратио н-торку са NULL" + +msgid "cannot delete vim.Dictionary attributes" +msgstr "vim.Dictionary атрибути не могу да се обришу" + +msgid "cannot modify fixed dictionary" +msgstr "фиксни речник не може да се измени" + +#, c-format +msgid "cannot set attribute %s" +msgstr "атрибут %s не може да се постави" + +msgid "hashtab changed during iteration" +msgstr "hashtab је промењен током итерације" + +#, c-format +msgid "expected sequence element of size 2, but got sequence of size %d" +msgstr "очекивао се елемент секвенце величине 2, алил је добијена секвенца величине %d" + +msgid "list constructor does not accept keyword arguments" +msgstr "конструктор листе не прихвата кључне речи за аргументе" + +msgid "list index out of range" +msgstr "индекс листе је ван опсега" + +#, c-format +msgid "internal error: failed to get vim list item %d" +msgstr "интерна грешка: ставка %d vim листе није могла да се добије" + +msgid "slice step cannot be zero" +msgstr "slice корак не може да буде нула" + +#, c-format +msgid "attempt to assign sequence of size greater than %d to extended slice" +msgstr "покушај доделе секвенце величине веће од %d како би се продужио slice" + +#, c-format +msgid "internal error: no vim list item %d" +msgstr "интерна грешка: нема ставке %d у vim листи" + +msgid "internal error: not enough list items" +msgstr "интерна грешка: нема довољно ставки листе" + +msgid "internal error: failed to add item to list" +msgstr "интерна грешка: ставка није могла да се дода листи" + +#, c-format +msgid "attempt to assign sequence of size %d to extended slice of size %d" +msgstr "покушај доделе секвенце величине %d како би се продужио slice величине %d" + +msgid "failed to add item to list" +msgstr "ставка није могла да се дода листи" + +msgid "cannot delete vim.List attributes" +msgstr "vim.List атрибути не могу да се обришу" + +msgid "cannot modify fixed list" +msgstr "фиксна листа не може да се измени" + +#, c-format +msgid "unnamed function %s does not exist" +msgstr "неименована функција %s не постоји" + +#, c-format +msgid "function %s does not exist" +msgstr "функција %s не постоји" + +#, c-format +msgid "failed to run function %s" +msgstr "функција %s није могла да се покрене" + +msgid "unable to get option value" +msgstr "вредност опције није могла да се добије" + +msgid "internal error: unknown option type" +msgstr "интерна грешка: непознат тип опције" + +msgid "problem while switching windows" +msgstr "проблем код пребацивања прозора" + +#, c-format +msgid "unable to unset global option %s" +msgstr "глобална опција %s није могла да се искључи" + +#, c-format +msgid "unable to unset option %s which does not have global value" +msgstr "опција %s која нема глобалну вредност није могла да се искључи" + +msgid "attempt to refer to deleted tab page" +msgstr "покушај реферисања на обрисану картицу" + +msgid "no such tab page" +msgstr "не постоји таква картица" + +msgid "attempt to refer to deleted window" +msgstr "покушај реферисања на обрисан прозор" + +msgid "readonly attribute: buffer" +msgstr "атрибут само за читање: бафер" + +msgid "cursor position outside buffer" +msgstr "позиција курсора је ван бафера" + +msgid "no such window" +msgstr "нема таквог прозора" + +msgid "attempt to refer to deleted buffer" +msgstr "покушај реферисања на обрисан бафер" + +msgid "failed to rename buffer" +msgstr "име бафера није могло да се промени" + +msgid "mark name must be a single character" +msgstr "име маркера мора бити само један карактер" + +#, c-format +msgid "expected vim.Buffer object, but got %s" +msgstr "очекивао се vim.Buffer објекат, али је добијен %s" + +#, c-format +msgid "failed to switch to buffer %d" +msgstr "прелазак на бафер %d није био могућ" + +#, c-format +msgid "expected vim.Window object, but got %s" +msgstr "очекивао се vim.Window објекат, али је добијен %s" + +msgid "failed to find window in the current tab page" +msgstr "прозор није пронађен у текућој картици" + +msgid "did not switch to the specified window" +msgstr "није се прешло у наведени прозор" + +#, c-format +msgid "expected vim.TabPage object, but got %s" +msgstr "очекивао се vim.TabPage објекат, али је добијен %s" + +msgid "did not switch to the specified tab page" +msgstr "није се прешло у наведену картицу" + +msgid "failed to run the code" +msgstr "кôд није могао да се покрене" + +msgid "E858: Eval did not return a valid python object" +msgstr "E858: Eval није вратио важећи python објекат" + +msgid "E859: Failed to convert returned python object to vim value" +msgstr "E859: Конверзија враћеног python објекта у vim вредност није успела" + +#, c-format +msgid "unable to convert %s to vim dictionary" +msgstr "%s не може да се конвертује у vim речник" + +#, c-format +msgid "unable to convert %s to vim list" +msgstr "%s не може да се конвертује у vim листу" + +#, c-format +msgid "unable to convert %s to vim structure" +msgstr "%s не може да се конвертује у vim структуру" + +msgid "internal error: NULL reference passed" +msgstr "интерна грешка: прослеђена је NULL референца" + +msgid "internal error: invalid value type" +msgstr "интерна грешка: вредност неважећег типа" + +msgid "" +"Failed to set path hook: sys.path_hooks is not a list\n" +"You should now do the following:\n" +"- append vim.path_hook to sys.path_hooks\n" +"- append vim.VIM_SPECIAL_PATH to sys.path\n" +msgstr "" +"Кука за путању није могла да се постави: sys.path_hooks није у листи\n" +"Сада би требало да урадите следеће:\n" +"- додајте vim.path_hook на крај sys.path_hooks\n" +"- додајте vim.VIM_SPECIAL_PATH на крај sys.path\n" + +msgid "" +"Failed to set path: sys.path is not a list\n" +"You should now append vim.VIM_SPECIAL_PATH to sys.path" +msgstr "" +"Путања није могла да се постави: sys.path није у листи\n" +"Сада би требало да додате vim.VIM_SPECIAL_PATH на крај sys.path" diff --git a/src/nvim/version.c b/src/nvim/version.c index 203b53472c..beb65a8bfd 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -78,38 +78,324 @@ NULL // clang-format off static const int included_patches[] = { + 1847, + // 1846, + // 1845, + // 1844, + 1843, + // 1842, + // 1841, + 1840, + 1839, + // 1838, + 1837, + 1836, + // 1835, + 1834, + 1833, + 1832, + // 1831, + // 1830, + // 1829, + 1828, + // 1827, + 1826, + 1825, + // 1824, + // 1823, + 1822, + // 1821, + // 1820, + 1819, + // 1818, + // 1817, + 1816, + // 1815, + // 1814, + 1813, + // 1812, + 1811, + // 1810, + 1809, + 1808, + 1807, + // 1806, + // 1805, + // 1804, + // 1803, + // 1802, + // 1801, + 1800, + 1799, + // 1798, + // 1797, + // 1796, + // 1795, + // 1794, + // 1793, + 1792, + 1791, + 1790, + // 1789, + 1788, + 1787, + // 1786, + 1785, + // 1784, + // 1783, + // 1782, + 1781, + // 1780, + 1779, + 1778, + 1777, + // 1776, + // 1775, + // 1774, + // 1773, + // 1772, + // 1771, + // 1770, + // 1769, + // 1768, + // 1767, + // 1766, + 1765, + 1764, + // 1763, + // 1762, + // 1761, + 1760, + // 1759, + // 1758, + 1757, + // 1756, + 1755, + // 1754, + // 1753, + // 1752, + 1751, + // 1750, + 1749, + // 1748, + // 1747, + // 1746, + // 1745, + // 1744, + // 1743, + // 1742, + 1741, + // 1740, + 1739, + // 1738, + 1737, + 1736, + // 1735, + // 1734, + // 1733, + // 1732, + // 1731, + 1730, + // 1729, + // 1728, + // 1727, + // 1726, + // 1725, + // 1724, + // 1723, + // 1722, + // 1721, + // 1720, + 1719, + // 1718, + 1717, + // 1716, + // 1715, + // 1714, + // 1713, + // 1712, + // 1711, + 1710, + // 1709, + // 1708, + 1707, + // 1706, + 1705, + // 1704, + // 1703, + // 1702, + 1701, + 1700, + 1699, + 1698, + // 1697, + 1696, + // 1695, + // 1694, + // 1693, + 1692, + // 1691, + // 1690, + // 1689, + // 1688, + // 1687, + 1686, + // 1685, + // 1684, + 1683, + 1682, + // 1681, + // 1680, + 1679, + // 1678, + // 1677, + // 1676, + 1675, + 1674, + // 1673, + 1672, + // 1671, + // 1670, + // 1669, + // 1668, + // 1667, + // 1666, + // 1665, + // 1664, + 1663, + // 1662, + // 1661, + // 1660, + 1659, + // 1658, + // 1657, + // 1656, + // 1655, + // 1654, + // 1653, + // 1652, + // 1651, + 1650, + 1649, + // 1648, + // 1647, + 1646, + // 1645, + // 1644, + // 1643, + // 1642, + // 1641, + // 1640, + 1639, + // 1638, + // 1637, + // 1636, + 1635, + // 1634, + 1633, + // 1632, + // 1631, + 1630, + // 1629, + // 1628, + 1627, + // 1626, + 1625, + // 1624, + // 1623, + 1622, + // 1621, + // 1620, + // 1619, + 1618, + // 1617, + // 1616, + // 1615, + 1614, + 1613, + // 1612, + // 1611, + 1610, + // 1609, + 1608, + // 1607, + 1606, + // 1605, + // 1604, + 1603, + 1602, + 1601, + 1600, + // 1599, + // 1598, + 1597, + // 1596, + 1595, + // 1594, + // 1593, + // 1592, + // 1591, + 1590, + // 1589, + // 1588, + // 1587, + 1586, + 1585, + 1584, + 1583, + // 1582, + 1581, + 1580, + 1579, + // 1578, + 1577, + // 1576, + 1575, + // 1574, + 1573, + // 1572, + 1571, + // 1570, + // 1569, + // 1568, + 1567, + 1566, + 1565, + 1564, + // 1563, + // 1562, 1561, - // 1560, - // 1559, + 1560, + 1559, // 1558, - // 1557, - // 1556, - // 1555, + 1557, + 1556, + 1555, // 1554, // 1553, // 1552, // 1551, // 1550, // 1549, - // 1548, - // 1547, + 1548, + 1547, // 1546, // 1545, // 1544, // 1543, // 1542, - // 1541, + 1541, // 1540, // 1539, // 1538, // 1537, - // 1536, + 1536, // 1535, // 1534, // 1533, - // 1532, + 1532, // 1531, - // 1530, + 1530, // 1529, // 1528, // 1527, @@ -122,22 +408,22 @@ static const int included_patches[] = { // 1520, // 1519, // 1518, - // 1517, + 1517, // 1516, // 1515, // 1514, // 1513, - // 1512, + 1512, // 1511, // 1510, - // 1509, - // 1508, - // 1507, - // 1506, + 1509, + 1508, + 1507, + 1506, // 1505, - // 1504, - // 1503, - // 1502, + 1504, + 1503, + 1502, // 1501, // 1500, // 1499, @@ -149,33 +435,33 @@ static const int included_patches[] = { 1493, // 1492, // 1491, - // 1490, - // 1489, - // 1488, - // 1487, - // 1486, - // 1485, + 1490, + 1489, + 1488, + 1487, + 1486, + 1485, // 1484, 1483, // 1482, // 1481, // 1480, // 1479, - // 1478, + 1478, // 1477, // 1476, 1475, - // 1474, - // 1473, + 1474, + 1473, 1472, - // 1471, - // 1470, + 1471, + 1470, // 1469, - // 1468, - // 1467, - // 1466, + 1468, + 1467, + 1466, // 1465, - // 1464, + 1464, // 1463, // 1462, // 1461, @@ -183,102 +469,102 @@ static const int included_patches[] = { // 1459, // 1458, // 1457, - // 1456, + 1456, // 1455, // 1454, // 1453, // 1452, // 1451, - // 1450, + 1450, // 1449, // 1448, // 1447, - // 1446, + 1446, // 1445, - // 1444, - // 1443, + 1444, + 1443, 1442, - // 1441, + 1441, // 1440, 1439, // 1438, - // 1437, + 1437, // 1436, 1435, 1434, - // 1433, + 1433, // 1432, - // 1431, + 1431, // 1430, // 1429, - // 1428, + 1428, // 1427, - // 1426, + 1426, // 1425, - // 1424, - // 1423, + 1424, + 1423, // 1422, - // 1421, + 1421, // 1420, 1419, - // 1418, - // 1417, - // 1416, - // 1415, + 1418, + 1417, + 1416, + 1415, // 1414, - // 1413, + 1413, // 1412, // 1411, - // 1410, - // 1409, + 1410, + 1409, // 1408, - // 1407, + 1407, // 1406, // 1405, - // 1404, + 1404, 1403, 1402, - // 1401, - // 1400, - // 1399, - // 1398, - // 1397, + 1401, + 1400, + 1399, + 1398, + 1397, 1396, - // 1395, - // 1394, + 1395, + 1394, 1393, - // 1392, - // 1391, - // 1390, + 1392, + 1391, + 1390, // 1389, // 1388, - // 1387, + 1387, // 1386, - // 1385, + 1385, // 1384, - // 1383, + 1383, // 1382, // 1381, - // 1380, - // 1379, - // 1378, - // 1377, + 1380, + 1379, + 1378, + 1377, // 1376, // 1375, - // 1374, - // 1373, + 1374, + 1373, // 1372, // 1371, 1370, - // 1369, + 1369, // 1368, // 1367, // 1366, 1365, - // 1364, - // 1363, + 1364, + 1363, // 1362, - // 1361, + 1361, // 1360, // 1359, // 1358, @@ -288,7 +574,7 @@ static const int included_patches[] = { // 1354, // 1353, // 1352, - // 1351, + 1351, // 1350, // 1349, // 1348, @@ -302,22 +588,22 @@ static const int included_patches[] = { // 1340, // 1339, // 1338, - // 1337, + 1337, // 1336, // 1335, // 1334, 1333, // 1332, - // 1331, + 1331, // 1330, 1329, // 1328, - // 1327, - // 1326, - // 1325, - // 1324, + 1327, + 1326, + 1325, + 1324, // 1323, - // 1322, + 1322, // 1321, // 1320, // 1319, @@ -325,33 +611,33 @@ static const int included_patches[] = { // 1317, // 1316, // 1315, - // 1314, - // 1313, + 1314, + 1313, // 1312, 1311, - // 1310, + 1310, // 1309, // 1308, // 1307, - // 1306, + 1306, // 1305, 1304, - // 1303, + 1303, 1302, - // 1301, + 1301, // 1300, // 1299, // 1298, // 1297, // 1296, // 1295, - // 1294, + 1294, // 1293, // 1292, - // 1291, - // 1290, + 1291, + 1290, 1289, - // 1288, + 1288, // 1287, // 1286, 1285, @@ -364,14 +650,14 @@ static const int included_patches[] = { // 1278, // 1277, // 1276, - // 1275, + 1275, // 1274, - // 1273, - // 1272, + 1273, + 1272, 1271, // 1270, - // 1269, - // 1268, + 1269, + 1268, // 1267, // 1266, // 1265, @@ -381,38 +667,38 @@ static const int included_patches[] = { // 1261, // 1260, // 1259, - // 1258, - // 1257, - // 1256, - // 1255, - // 1254, - // 1253, - // 1252, - // 1251, + 1258, + 1257, + 1256, + 1255, + 1254, + 1253, + 1252, + 1251, 1250, // 1249, - // 1248, - // 1247, + 1248, + 1247, // 1246, // 1245, // 1244, - // 1243, - // 1242, + 1243, + 1242, // 1241, // 1240, // 1239, 1238, - // 1237, + 1237, // 1236, - // 1235, + 1235, 1234, - // 1233, + 1233, 1232, - // 1231, + 1231, 1230, 1229, - // 1228, - // 1227, + 1228, + 1227, 1226, 1225, 1224, @@ -421,16 +707,16 @@ static const int included_patches[] = { 1221, // 1220, 1219, - // 1218, + 1218, // 1217, - // 1216, - // 1215, - // 1214, + 1216, + 1215, + 1214, // 1213, - // 1212, - // 1211, + 1212, + 1211, 1210, - // 1209, + 1209, // 1208, 1207, 1206, @@ -438,72 +724,72 @@ static const int included_patches[] = { 1204, // 1203, // 1202, - // 1201, + 1201, 1200, // 1199, - // 1198, + 1198, 1197, - // 1196, - // 1195, + 1196, + 1195, // 1194, // 1193, - // 1192, + 1192, 1191, - // 1190, + 1190, 1189, 1188, - // 1187, + 1187, 1186, - // 1185, - // 1184, - // 1183, + 1185, + 1184, + 1183, // 1182, 1181, 1180, // 1179, - // 1178, + 1178, // 1177, // 1176, - // 1175, + 1175, // 1174, // 1173, - // 1172, + 1172, // 1171, // 1170, - // 1169, - // 1168, + 1169, + 1168, // 1167, - // 1166, + 1166, // 1165, // 1164, // 1163, // 1162, - // 1161, - // 1160, - // 1159, + 1161, + 1160, + 1159, 1158, - // 1157, - // 1156, - // 1155, - // 1154, + 1157, + 1156, + 1155, + 1154, // 1153, - // 1152, - // 1151, + 1152, + 1151, 1150, // 1149, - // 1148, - // 1147, + 1148, + 1147, // 1146, // 1145, // 1144, // 1143, // 1142, 1141, - // 1140, + 1140, // 1139, // 1138, // 1137, - // 1136, + 1136, // 1135, // 1134, // 1133, @@ -515,151 +801,151 @@ static const int included_patches[] = { // 1127, // 1126, // 1125, - // 1124, + 1124, // 1123, - // 1122, + 1122, 1121, // 1120, // 1119, - // 1118, + 1118, // 1117, // 1116, - // 1115, + 1115, // 1114, // 1113, // 1112, - // 1111, - // 1110, + 1111, + 1110, // 1109, 1108, // 1107, // 1106, - // 1105, + 1105, // 1104, // 1103, // 1102, // 1101, // 1100, - // 1099, - // 1098, + 1099, + 1098, // 1097, // 1096, // 1095, - // 1094, + 1094, // 1093, // 1092, - // 1091, - // 1090, - // 1089, - // 1088, + 1091, + 1090, + 1089, + 1088, // 1087, - // 1086, + 1086, // 1085, - // 1084, + 1084, // 1083, // 1082, // 1081, // 1080, // 1079, - // 1078, + 1078, // 1077, // 1076, // 1075, // 1074, // 1073, - // 1072, - // 1071, + 1072, + 1071, // 1070, - // 1069, - // 1068, - // 1067, - // 1066, - // 1065, + 1069, + 1068, + 1067, + 1066, + 1065, // 1064, // 1063, - // 1062, + 1062, // 1061, // 1060, - // 1059, + 1059, // 1058, // 1057, - // 1056, + 1056, // 1055, // 1054, // 1053, // 1052, // 1051, - // 1050, + 1050, // 1049, - // 1048, - // 1047, - // 1046, + 1048, + 1047, + 1046, // 1045, - // 1044, - // 1043, - // 1042, - // 1041, - // 1040, + 1044, + 1043, + 1042, + 1041, + 1040, // 1039, // 1038, - // 1037, + 1037, // 1036, // 1035, // 1034, - // 1033, - // 1032, - // 1031, - // 1030, - // 1029, + 1033, + 1032, + 1031, + 1030, + 1029, // 1028, - // 1027, - // 1026, + 1027, + 1026, 1025, 1024, - // 1023, - // 1022, - // 1021, - // 1020, + 1023, + 1022, + 1021, + 1020, 1019, // 1018, - // 1017, - // 1016, + 1017, + 1016, // 1015, - // 1014, + 1014, // 1013, - // 1012, + 1012, // 1011, - // 1010, + 1010, // 1009, - // 1008, + 1008, 1007, - // 1006, + 1006, // 1005, - // 1004, + 1004, // 1003, // 1002, - // 1001, + 1001, // 1000, - // 999, - // 998, - // 997, - // 996, + 999, + 998, + 997, + 996, // 995, // 994, - // 993, + 993, // 992, // 991, // 990, - // 989, - // 988, + 989, + 988, // 987, - // 986, + 986, // 985, // 984, - // 983, + 983, // 982, // 981, - // 980, + 980, // 979, // 978, // 977, @@ -667,33 +953,33 @@ static const int included_patches[] = { 975, 974, // 973, - // 972, - // 971, + 972, + 971, // 970, // 969, // 968, - // 967, - // 966, + 967, + 966, // 965, // 964, // 963, 962, - // 961, + 961, // 960, // 959, // 958, // 957, // 956, 955, - // 954, + 954, // 953, // 952, // 951, // 950, // 949, - // 948, + 948, // 947, - // 946, + 946, // 945, 944, // 943, @@ -717,10 +1003,10 @@ static const int included_patches[] = { 925, // 924, // 923, - // 922, - // 921, + 922, + 921, // 920, - // 919, + 919, // 918, // 917, // 916, @@ -735,11 +1021,11 @@ static const int included_patches[] = { // 907, 906, // 905, - // 904, + 904, // 903, // 902, - // 901, - // 900, + 901, + 900, // 899, // 898, // 897, @@ -749,22 +1035,22 @@ static const int included_patches[] = { // 893, // 892, // 891, - // 890, + 890, // 889, // 888, // 887, // 886, // 885, // 884, - // 883, + 883, // 882, 881, - // 880, - // 879, - // 878, + 880, + 879, + 878, // 877, // 876, - // 875, + 875, // 874, // 873, // 872, @@ -773,8 +1059,8 @@ static const int included_patches[] = { // 869, // 868, // 867, - // 866, - // 865, + 866, + 865, // 864, // 863, 862, @@ -788,7 +1074,7 @@ static const int included_patches[] = { // 854, // 853, // 852, - // 851, + 851, // 850, // 849, // 848, @@ -802,22 +1088,22 @@ static const int included_patches[] = { // 840, // 839, // 838, - // 837, + 837, // 836, - // 835, - // 834, + 835, + 834, // 833, // 832, - // 831, - // 830, + 831, + 830, // 829, - // 828, + 828, // 827, // 826, // 825, // 824, // 823, - // 822, + 822, // 821, // 820, // 819, @@ -825,16 +1111,16 @@ static const int included_patches[] = { // 817, // 816, // 815, - // 814, + 814, // 813, // 812, - // 811, - // 810, - // 809, - // 808, + 811, + 810, + 809, + 808, // 807, - // 806, - // 805, + 806, + 805, // 804, // 803, // 802, @@ -843,54 +1129,54 @@ static const int included_patches[] = { // 799, // 798, // 797, - // 796, - // 795, - // 794, + 796, + 795, + 794, // 793, 792, - // 791, - // 790, + 791, + 790, // 789, // 788, // 787, - // 786, + 786, // 785, // 784, // 783, - // 782, + 782, // 781, - // 780, + 780, // 779, // 778, // 777, // 776, // 775, - // 774, - // 773, - // 772, + 774, + 773, + 772, // 771, - // 770, + 770, // 769, // 768, - // 767, + 767, // 766, - // 765, + 765, // 764, - // 763, - // 762, + 763, + 762, // 761, // 760, // 759, // 758, - // 757, - // 756, + 757, + 756, // 755, // 754, // 753, - // 752, - // 751, - // 750, - // 749, + 752, + 751, + 750, + 749, // 748, // 747, // 746, @@ -898,29 +1184,29 @@ static const int included_patches[] = { // 744, // 743, // 742, - // 741, + 741, // 740, // 739, // 738, // 737, 736, - // 735, - // 734, - // 733, + 735, + 734, + 733, // 732, - // 731, + 731, // 730, - // 729, + 729, // 728, - // 727, - // 726, + 727, + 726, // 725, - // 724, + 724, 723, - // 722, + 722, 721, // 720, - // 719, + 719, // 718, // 717, // 716, @@ -928,55 +1214,55 @@ static const int included_patches[] = { // 714, // 713, // 712, - // 711, + 711, 710, // 709, - // 708, - // 707, - // 706, + 708, + 707, + 706, // 705, - // 704, + 704, 703, // 702, 701, 700, 699, // 698, - // 697, - // 696, - // 695, + 697, + 696, + 695, // 694, // 693, 692, - // 691, - // 690, + 691, + 690, 689, - // 688, - // 687, - // 686, - // 685, + 688, + 687, + 686, + 685, 684, // 683, - // 682, + 682, // 681, 680, 679, 678, - // 677, + 677, 676, - // 675, + 675, 674, 673, 672, - // 671, - // 670, - // 669, + 671, + 670, + 669, 668, 667, 666, 665, 664, - // 663, + 663, 662, 661, 660, @@ -986,140 +1272,140 @@ static const int included_patches[] = { 656, 655, 654, - // 653, + 653, 652, - // 651, + 651, 650, - // 649, - // 648, + 649, + 648, // 647, // 646, // 645, // 644, // 643, - // 642, + 642, 641, - // 640, - // 639, - // 638, - // 637, - // 636, + 640, + 639, + 638, + 637, + 636, 635, 634, - // 633, - // 632, - // 631, - // 630, + 633, + 632, + 631, + 630, // 629, - // 628, - // 627, - // 626, - // 625, - // 624, - // 623, + 628, + 627, + 626, + 625, + 624, + 623, 622, - // 621, - // 620, - // 619, + 621, + 620, + 619, 618, - // 617, - // 616, - // 615, + 617, + 616, + 615, 614, 613, 612, - // 611, - // 610, - // 609, + 611, + 610, + 609, 608, 607, 606, 605, - // 604, - // 603, - // 602, + 604, + 603, + 602, 601, 600, 599, - // 598, + 598, 597, - // 596, + 596, 595, - // 594, - // 593, + 594, + 593, // 592, 591, 590, - // 589, - // 588, - // 587, - // 586, + 589, + 588, + 587, + 586, // 585, 584, - // 583, + 583, 582, - // 581, + 581, 580, 579, - // 578, - // 577, - // 576, - // 575, + 578, + 577, + 576, + 575, 574, - // 573, + 573, // 572, 571, - // 570, - // 569, - // 568, - // 567, - // 566, + 570, + 569, + 568, + 567, + 566, 565, 564, - // 563, + 563, 562, 561, - // 560, + 560, 559, 558, - // 557, - // 556, + 557, + 556, 555, 554, 553, 552, - // 551, + 551, 550, - // 549, - // 548, - // 547, - // 546, - // 545, - // 544, - // 543, - // 542, - // 541, - // 540, - // 539, - // 538, - // 537, + 549, + 548, + 547, + 546, + 545, + 544, + 543, + 542, + 541, + 540, + 539, + 538, + 537, 536, - // 535, - // 534, - // 533, - // 532, - // 531, - // 530, - // 529, + 535, + 534, + 533, + 532, + 531, + 530, + 529, 528, - // 527, - // 526, - // 525, + 527, + 526, + 525, 524, - // 523, - // 522, - // 521, - // 520, + 523, + 522, + 521, + 520, 519, 518, 517, @@ -1127,27 +1413,27 @@ static const int included_patches[] = { 515, // 514, 513, - // 512, + 512, 511, - // 510, - // 509, - // 508, + 510, + 509, + 508, 507, // 506, 505, // 504, 503, 502, - // 501, + 501, 500, 499, 498, 497, 496, 495, - // 494, - // 493, - // 492, + 494, + 493, + 492, 491, 490, 489, @@ -1158,43 +1444,43 @@ static const int included_patches[] = { 484, 483, 482, - // 481, + 481, 480, 479, 478, 477, - // 476, - // 475, - // 474, + 476, + 475, + 474, 473, 472, 471, 470, - // 469, - // 468, - // 467, - // 466, + 469, + 468, + 467, + 466, 465, 464, 463, - // 462, + 462, 461, 460, 459, 458, 457, 456, - // 455, + 455, 454, 453, - // 452, - // 451, + 452, + 451, 450, - // 449, + 449, 448, 447, 446, - // 445, + 445, 444, 443, 442, @@ -1207,29 +1493,29 @@ static const int included_patches[] = { 435, 434, 433, - // 432, + 432, 431, // 430, // 429, // 428, 427, 426, - // 425, + 425, 424, 423, - // 422, + 422, 421, 420, 419, - // 418, + 418, 417, 416, 415, - // 414, + 414, // 413, // 412, // 411, - // 410, + 410, 409, 408, 407, @@ -1238,22 +1524,22 @@ static const int included_patches[] = { 404, 403, 402, - // 401, + 401, 400, - // 399, + 399, 398, - // 397, + 397, // 396, - // 395, + 395, 394, 393, - // 392, + 392, 391, 390, 389, 388, 387, - // 386, + 386, 385, 384, 383, @@ -1266,40 +1552,40 @@ static const int included_patches[] = { 376, 375, 374, - // 373, - // 372, + 373, + 372, 371, - // 370, - // 369, - // 368, - // 367, - // 366, - // 365, + 370, + 369, + 368, + 367, + 366, + 365, 364, - // 363, + 363, 362, - // 361, + 361, 360, 359, 358, 357, 356, - // 355, + 355, 354, 353, 352, 351, // 350, - // 349, + 349, 348, 347, - // 346, + 346, 345, 344, 343, 342, 341, - // 340, + 340, 339, 338, 337, @@ -1374,8 +1660,8 @@ static const int included_patches[] = { 268, 267, 266, - // 265, - // 264, + 265, + 264, 263, 262, 261, @@ -1383,11 +1669,11 @@ static const int included_patches[] = { 259, 258, 257, - // 256, - // 255, - // 254, + 256, + 255, + 254, 253, - // 252, + 252, // 251, 250, 249, @@ -1423,7 +1709,7 @@ static const int included_patches[] = { 219, 218, 217, - // 216, + 216, 215, 214, 213, |