Update runtime files.

This commit is contained in:
Bram Moolenaar
2023-02-02 13:59:48 +00:00
parent 685bf83b73
commit be4e01637e
63 changed files with 1245 additions and 693 deletions

View File

@ -2,18 +2,17 @@
# What is Vim9? # What is Vim9?
This is an experimental side of [Vim](https://github.com/vim/vim). This is a new syntax for Vim script that was introduced with Vim 9.0.
It explores ways of making Vim script faster and better. It intends making Vim script faster and better.
WARNING: The Vim9 script features are still under development, anything can
break!
# Why Vim9? # Why Vim9?
## 1. FASTER VIM SCRIPT ## 1. FASTER VIM SCRIPT
The third item on the poll results of 2018, after popup windows and text The third item on the poll results of 2018, after popup windows and text
properties, is faster Vim script. So how do we do that? properties, both of which have been implemented, is faster Vim script.
So how do we do that?
I have been throwing some ideas around, and soon came to the conclusion I have been throwing some ideas around, and soon came to the conclusion
that the current way functions are called and executed, with that the current way functions are called and executed, with
@ -53,7 +52,7 @@ we can gain, and also that Vim script can be faster than builtin
interfaces. interfaces.
LuaJit is much faster at Lua-only instructions. In practice the script would LuaJit is much faster at Lua-only instructions. In practice the script would
not do something useless as counting but change the text. For example, not do something useless counting, but change the text. For example,
reindent all the lines: reindent all the lines:
``` vim ``` vim

View File

@ -2,12 +2,12 @@ vim9script
# Language: Vim script # Language: Vim script
# Maintainer: github user lacygoill # Maintainer: github user lacygoill
# Last Change: 2023 Jan 03 # Last Change: 2023 Feb 01
# NOTE: Whenever you change the code, make sure the tests are still passing: # NOTE: Whenever you change the code, make sure the tests are still passing:
# #
# $ cd runtime/indent/ # $ cd runtime/indent/
# $ make clean; make test || vimdiff testdir/vim.{fail,ok} # $ make clean; make test || vimdiff testdir/vim.{ok,fail}
# Config {{{1 # Config {{{1
@ -112,6 +112,10 @@ const DICT_KEY: string = '^\s*\%('
.. '\)' .. '\)'
.. ':\%(\s\|$\)' .. ':\%(\s\|$\)'
# NOT_A_DICT_KEY {{{3
const NOT_A_DICT_KEY: string = ':\@!'
# END_OF_COMMAND {{{3 # END_OF_COMMAND {{{3
const END_OF_COMMAND: string = $'\s*\%($\|||\@!\|{INLINE_COMMENT}\)' const END_OF_COMMAND: string = $'\s*\%($\|||\@!\|{INLINE_COMMENT}\)'
@ -144,19 +148,43 @@ const HEREDOC_OPERATOR: string = '\s=<<\s\@=\%(\s\+\%(trim\|eval\)\)\{,2}'
# #
# But sometimes, it can be too costly and cause `E363` to be given. # But sometimes, it can be too costly and cause `E363` to be given.
const PATTERN_DELIMITER: string = '[-+*/%]\%(=\s\)\@!' const PATTERN_DELIMITER: string = '[-+*/%]\%(=\s\)\@!'
# QUOTE {{{3
const QUOTE: string = '["'']'
# }}}2 # }}}2
# Syntaxes {{{2 # Syntaxes {{{2
# ASSIGNS_HEREDOC {{{3 # BLOCKS {{{3
const ASSIGNS_HEREDOC: string = $'^\%({COMMENT}\)\@!.*\%({HEREDOC_OPERATOR}\)\s\+\zs[A-Z]\+{END_OF_LINE}' const BLOCKS: list<list<string>> = [
['if', 'el\%[se]', 'elseif\=', 'en\%[dif]'],
['for', 'endfor\='],
['wh\%[ile]', 'endw\%[hile]'],
['try', 'cat\%[ch]', 'fina\|finally\=', 'endt\%[ry]'],
['def', 'enddef'],
['fu\%[nction](\@!', 'endf\%[unction]'],
['class', 'endclass'],
['interface', 'endinterface'],
['enum', 'endenum'],
['aug\%[roup]\%(\s\+[eE][nN][dD]\)\@!\s\+\S\+', 'aug\%[roup]\s\+[eE][nN][dD]'],
]
# CD_COMMAND {{{3 # MODIFIERS {{{3
const CD_COMMAND: string = $'\<[lt]\=cd!\=\s\+-{END_OF_COMMAND}' # some keywords can be prefixed by modifiers (e.g. `def` can be prefixed by `export`)
const MODIFIERS: dict<string> = {
def: ['export', 'static'],
class: ['export', 'abstract', 'export abstract'],
interface: ['export'],
}
# ...
# class: ['export', 'abstract', 'export abstract'],
# ...
# →
# ...
# class: '\%(export\|abstract\|export\s\+abstract\)\s\+',
# ...
->map((_, mods: list<string>): string =>
'\%(' .. mods
->join('\|')
->substitute('\s\+', '\\s\\+', 'g')
.. '\)' .. '\s\+')
# HIGHER_ORDER_COMMAND {{{3 # HIGHER_ORDER_COMMAND {{{3
@ -174,58 +202,102 @@ patterns =<< trim eval END
g\%[lobal]!\={PATTERN_DELIMITER}.* g\%[lobal]!\={PATTERN_DELIMITER}.*
v\%[global]!\={PATTERN_DELIMITER}.* v\%[global]!\={PATTERN_DELIMITER}.*
END END
const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%(' .. patterns->join('\|') .. '\):\@!'
# MAPPING_COMMAND {{{3 const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\){NOT_A_DICT_KEY}'
const MAPPING_COMMAND: string = '\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)map!\=\s' # START_MIDDLE_END {{{3
# NORMAL_COMMAND {{{3 # Let's derive this constant from `BLOCKS`:
#
# [['if', 'el\%[se]', 'elseif\=', 'en\%[dif]'],
# ['for', 'endfor\='],
# ...,
# [...]]
# →
# {
# 'for': ['for', '', 'endfor\='],
# 'endfor': ['for', '', 'endfor\='],
# 'if': ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'],
# 'else': ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'],
# 'elseif': ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'],
# 'endif': ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'],
# ...
# }
var START_MIDDLE_END: dict<list<string>>
const NORMAL_COMMAND: string = '\<norm\%[al]!\=\s*\S\+$' def Unshorten(kwd: string): string
return BlockStartKeyword(kwd)
enddef
# PLUS_MINUS_COMMAND {{{3 def BlockStartKeyword(line: string): string
var kwd: string = line->matchstr('\l\+')
return fullcommand(kwd, false)
enddef
# In legacy, the `:+` and `:-` commands are not required to be preceded by a colon. {
# As a result, when `+` or `-` is alone on a line, there is ambiguity. for kwds: list<string> in BLOCKS
# It might be an operator or a command. var [start: string, middle: string, end: string] = [kwds[0], '', kwds[-1]]
# To not break the indentation in legacy scripts, we might need to consider such if MODIFIERS->has_key(start->Unshorten())
# lines as commands. start = $'\%({MODIFIERS[start]}\)\={start}'
const PLUS_MINUS_COMMAND: string = '^\s*[+-]\s*$' endif
if kwds->len() > 2
middle = kwds[1 : -2]->join('\|')
endif
for kwd: string in kwds
START_MIDDLE_END->extend({[kwd->Unshorten()]: [start, middle, end]})
endfor
endfor
}
START_MIDDLE_END = START_MIDDLE_END
->map((_, kwds: list<string>) =>
kwds->map((_, kwd: string) => kwd == ''
? ''
: $'\%(^\|{BAR_SEPARATION}\|\<sil\%[ent]\|{HIGHER_ORDER_COMMAND}\)\s*'
.. $'\<\%({kwd}\)\>\%(\s*{OPERATOR}\)\@!'))
lockvar! START_MIDDLE_END
# ENDS_BLOCK {{{3 # ENDS_BLOCK {{{3
const ENDS_BLOCK: string = '^\s*\%(' const ENDS_BLOCK: string = '^\s*\%('
.. 'en\%[dif]' .. BLOCKS
.. '\|' .. 'endfor\=' ->copy()
.. '\|' .. 'endw\%[hile]' ->map((_, kwds: list<string>): string => kwds[-1])
.. '\|' .. 'endt\%[ry]' ->join('\|')
.. '\|' .. 'enddef'
.. '\|' .. 'endclass'
.. '\|' .. 'endf\%[unction]'
.. '\|' .. 'aug\%[roup]\s\+[eE][nN][dD]'
.. '\|' .. CLOSING_BRACKET .. '\|' .. CLOSING_BRACKET
.. $'\){END_OF_COMMAND}' .. $'\){END_OF_COMMAND}'
# ENDS_BLOCK_OR_CLAUSE {{{3 # ENDS_BLOCK_OR_CLAUSE {{{3
patterns =<< trim END patterns = BLOCKS
en\%[dif] ->copy()
el\%[se] ->map((_, kwds: list<string>) => kwds[1 :])
endfor\= ->flattennew()
endclass # `catch` and `elseif` need to be handled as special cases
endw\%[hile] ->filter((_, pat: string): bool => pat->Unshorten() !~ '^\%(catch\|elseif\)\>')
endt\%[ry]
fina\|finally\=
enddef
endf\%[unction]
aug\%[roup]\s\+[eE][nN][dD]
END
const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}' const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}'
.. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}' .. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}'
.. $'\|^\s*elseif\=\>\%({OPERATOR}\)\@!' .. $'\|^\s*elseif\=\>\%({OPERATOR}\)\@!'
# STARTS_NAMED_BLOCK {{{3
patterns = []
{
for kwds: list<string> in BLOCKS
for kwd: string in kwds[0 : -2]
if MODIFIERS->has_key(kwd->Unshorten())
patterns += [$'\%({MODIFIERS[kwd]}\)\={kwd}']
else
patterns += [kwd]
endif
endfor
endfor
}
const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>{NOT_A_DICT_KEY}'
# STARTS_CURLY_BLOCK {{{3 # STARTS_CURLY_BLOCK {{{3
# TODO: `{` alone on a line is not necessarily the start of a block. # TODO: `{` alone on a line is not necessarily the start of a block.
@ -238,73 +310,57 @@ const STARTS_CURLY_BLOCK: string = '\%('
.. '\|' .. $'^\%(\s*\|.*{BAR_SEPARATION}\s*\)\%(com\%[mand]\|au\%[tocmd]\).*\zs\s{{' .. '\|' .. $'^\%(\s*\|.*{BAR_SEPARATION}\s*\)\%(com\%[mand]\|au\%[tocmd]\).*\zs\s{{'
.. '\)' .. END_OF_COMMAND .. '\)' .. END_OF_COMMAND
# STARTS_NAMED_BLOCK {{{3
# All of these will be used at the start of a line (or after a bar).
# NOTE: Don't replace `\%x28` with `(`.{{{
#
# Otherwise, the paren would be unbalanced which might cause syntax highlighting
# issues much later in the code of the current script (sometimes, the syntax
# highlighting plugin fails to correctly recognize a heredoc which is far away
# and/or not displayed because inside a fold).
# }}}
patterns =<< trim END
if
el\%[se]
elseif\=
for
class
wh\%[ile]
try
cat\%[ch]
fina\|finally\=
fu\%[nction]\%x28\@!
\%(export\s\+\)\=def
aug\%[roup]\%(\s\+[eE][nN][dD]\)\@!\s\+\S\+
END
const STARTS_NAMED_BLOCK: string = '^\s*\%(sil\%[ent]\s\+\)\=\%(' .. patterns->join('\|') .. '\)\>:\@!'
# STARTS_FUNCTION {{{3 # STARTS_FUNCTION {{{3
const STARTS_FUNCTION: string = '^\s*\%(export\s\+\)\=def\>:\@!' const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>{NOT_A_DICT_KEY}'
# ENDS_FUNCTION {{{3 # ENDS_FUNCTION {{{3
const ENDS_FUNCTION: string = $'^\s*enddef\>:\@!{END_OF_COMMAND}' const ENDS_FUNCTION: string = $'^\s*enddef\>{END_OF_COMMAND}'
# START_MIDDLE_END {{{3 # ASSIGNS_HEREDOC {{{3
const START_MIDDLE_END: dict<list<string>> = { const ASSIGNS_HEREDOC: string = $'^\%({COMMENT}\)\@!.*\%({HEREDOC_OPERATOR}\)\s\+\zs[A-Z]\+{END_OF_LINE}'
if: ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'],
else: ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'], # PLUS_MINUS_COMMAND {{{3
elseif: ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'],
endif: ['if', 'el\%[se]\|elseif\=', 'en\%[dif]'], # In legacy, the `:+` and `:-` commands are not required to be preceded by a colon.
for: ['for', '', 'endfor\='], # As a result, when `+` or `-` is alone on a line, there is ambiguity.
endfor: ['for', '', 'endfor\='], # It might be an operator or a command.
class: ['class', '', 'endclass'], # To not break the indentation in legacy scripts, we might need to consider such
endclass: ['class', '', 'endclass'], # lines as commands.
while: ['wh\%[ile]', '', 'endw\%[hile]'], const PLUS_MINUS_COMMAND: string = '^\s*[+-]\s*$'
endwhile: ['wh\%[ile]', '', 'endw\%[hile]'],
try: ['try', 'cat\%[ch]\|fina\|finally\=', 'endt\%[ry]'], # TRICKY_COMMANDS {{{3
catch: ['try', 'cat\%[ch]\|fina\|finally\=', 'endt\%[ry]'],
finally: ['try', 'cat\%[ch]\|fina\|finally\=', 'endt\%[ry]'], # Some commands are tricky because they accept an argument which can be
endtry: ['try', 'cat\%[ch]\|fina\|finally\=', 'endt\%[ry]'], # conflated with an operator. Examples:
def: ['\%(export\s\+\)\=def', '', 'enddef'], #
enddef: ['\%(export\s\+\)\=def', '', 'enddef'], # argdelete *
function: ['fu\%[nction]', '', 'endf\%[unction]'], # cd -
endfunction: ['fu\%[nction]', '', 'endf\%[unction]'], # normal! ==
augroup: ['aug\%[roup]\%(\s\+[eE][nN][dD]\)\@!\s\+\S\+', '', 'aug\%[roup]\s\+[eE][nN][dD]'], # nunmap <buffer> (
}->map((_, kwds: list<string>) => #
kwds->map((_, kwd: string) => kwd == '' # TODO: Other commands might accept operators as argument. Handle them too.
? '' patterns =<< trim eval END
: $'\%(^\|{BAR_SEPARATION}\|\<sil\%[ent]\|{HIGHER_ORDER_COMMAND}\)\s*' {'\'}<argd\%[elete]\s\+\*\s*$
.. $'\%({printf('\C\<\%%(%s\)\>:\@!\%%(\s*%s\)\@!', kwd, OPERATOR)}\)')) \<[lt]\=cd!\=\s\+-\s*$
\<norm\%[al]!\=\s*\S\+$
\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)map!\=\s
{PLUS_MINUS_COMMAND}
END
const TRICKY_COMMANDS: string = patterns->join('\|')
# }}}2 # }}}2
# EOL {{{2 # EOL {{{2
# OPENING_BRACKET_AT_EOL {{{3 # OPENING_BRACKET_AT_EOL {{{3
const OPENING_BRACKET_AT_EOL: string = OPENING_BRACKET .. END_OF_VIM9_LINE const OPENING_BRACKET_AT_EOL: string = OPENING_BRACKET .. END_OF_VIM9_LINE
# CLOSING_BRACKET_AT_EOL {{{3
const CLOSING_BRACKET_AT_EOL: string = CLOSING_BRACKET .. END_OF_VIM9_LINE
# COMMA_AT_EOL {{{3 # COMMA_AT_EOL {{{3
const COMMA_AT_EOL: string = $',{END_OF_VIM9_LINE}' const COMMA_AT_EOL: string = $',{END_OF_VIM9_LINE}'
@ -392,6 +448,7 @@ export def Expr(lnum = v:lnum): number # {{{2
endif endif
if line_A->AtStartOf('FuncHeader') if line_A->AtStartOf('FuncHeader')
&& !IsInInterface()
line_A.lnum->CacheFuncHeader() line_A.lnum->CacheFuncHeader()
elseif line_A.lnum->IsInside('FuncHeader') elseif line_A.lnum->IsInside('FuncHeader')
return b:vimindent.startindent + 2 * shiftwidth() return b:vimindent.startindent + 2 * shiftwidth()
@ -430,6 +487,7 @@ export def Expr(lnum = v:lnum): number # {{{2
if line_A.text->ContinuesBelowBracketBlock(line_B, past_bracket_block) if line_A.text->ContinuesBelowBracketBlock(line_B, past_bracket_block)
&& line_A.text !~ CLOSING_BRACKET_AT_SOL && line_A.text !~ CLOSING_BRACKET_AT_SOL
return past_bracket_block.startindent return past_bracket_block.startindent
+ (past_bracket_block.startline =~ STARTS_NAMED_BLOCK ? 2 * shiftwidth() : 0)
endif endif
# Problem: If we press `==` on the line right below the start of a multiline # Problem: If we press `==` on the line right below the start of a multiline
@ -438,6 +496,18 @@ export def Expr(lnum = v:lnum): number # {{{2
if line_B->EndsWithLambdaArrow() if line_B->EndsWithLambdaArrow()
return Indent(line_B.lnum) + shiftwidth() + IndentMoreInBracketBlock() return Indent(line_B.lnum) + shiftwidth() + IndentMoreInBracketBlock()
endif endif
# FIXME: Similar issue here:
#
# var x = []
# ->filter((_, _) =>
# true)
# ->items()
#
# Press `==` on last line.
# Expected: The `->items()` line is indented like `->filter(...)`.
# Actual: It's indented like `true)`.
# Is it worth fixing? `=ip` gives the correct indentation, because then the
# cache is used.
# Don't move this block before the heredoc one.{{{ # Don't move this block before the heredoc one.{{{
# #
@ -536,8 +606,13 @@ def Offset( # {{{2
line_B: dict<any>, line_B: dict<any>,
): number ): number
if line_B->AtStartOf('FuncHeader')
&& IsInInterface()
return 0
# increase indentation inside a block # increase indentation inside a block
if line_B.text =~ STARTS_NAMED_BLOCK || line_B->EndsWithCurlyBlock() elseif line_B.text =~ STARTS_NAMED_BLOCK
|| line_B->EndsWithCurlyBlock()
# But don't indent if the line starting the block also closes it. # But don't indent if the line starting the block also closes it.
if line_B->AlsoClosesBlock() if line_B->AlsoClosesBlock()
return 0 return 0
@ -807,11 +882,6 @@ def Indent(lnum: number): number # {{{3
return indent(lnum) return indent(lnum)
enddef enddef
def BlockStartKeyword(line: string): string # {{{3
var kwd: string = line->matchstr('\l\+')
return fullcommand(kwd, false)
enddef
def MatchingOpenBracket(line: dict<any>): number # {{{3 def MatchingOpenBracket(line: dict<any>): number # {{{3
var end: string = line.text->matchstr(CLOSING_BRACKET) var end: string = line.text->matchstr(CLOSING_BRACKET)
var start: string = {']': '[', '}': '{', ')': '('}[end] var start: string = {']': '[', '}': '{', ')': '('}[end]
@ -908,7 +978,8 @@ def SearchPair( # {{{3
if end == '[' || end == ']' if end == '[' || end == ']'
e = e->escape('[]') e = e->escape('[]')
endif endif
return searchpair(s, middle, e, flags, (): bool => InCommentOrString(), stopline, TIMEOUT) return searchpair('\C' .. s, (middle == '' ? '' : '\C' .. middle), '\C' .. e,
flags, (): bool => InCommentOrString(), stopline, TIMEOUT)
enddef enddef
def SearchPairStart( # {{{3 def SearchPairStart( # {{{3
@ -1016,6 +1087,10 @@ def IsInThisBlock(line_A: dict<any>, lnum: number): bool # {{{3
return line_A.lnum <= end return line_A.lnum <= end
enddef enddef
def IsInInterface(): bool # {{{3
return SearchPair('interface', '', 'endinterface', 'nW') > 0
enddef
def IsFirstLineOfCommand(line_1: dict<any>, line_2: dict<any>): bool # {{{3 def IsFirstLineOfCommand(line_1: dict<any>, line_2: dict<any>): bool # {{{3
if line_1.text->Is_IN_KeywordForLoop(line_2.text) if line_1.text->Is_IN_KeywordForLoop(line_2.text)
return false return false
@ -1096,6 +1171,10 @@ def EndsWithOpeningBracket(line: dict<any>): bool # {{{3
return NonCommentedMatch(line, OPENING_BRACKET_AT_EOL) return NonCommentedMatch(line, OPENING_BRACKET_AT_EOL)
enddef enddef
def EndsWithClosingBracket(line: dict<any>): bool # {{{3
return NonCommentedMatch(line, CLOSING_BRACKET_AT_EOL)
enddef
def NonCommentedMatch(line: dict<any>, pat: string): bool # {{{3 def NonCommentedMatch(line: dict<any>, pat: string): bool # {{{3
# Could happen if there is no code above us, and we're not on the 1st line. # Could happen if there is no code above us, and we're not on the 1st line.
# In that case, `PrevCodeLine()` returns `{lnum: 0, line: ''}`. # In that case, `PrevCodeLine()` returns `{lnum: 0, line: ''}`.
@ -1103,16 +1182,6 @@ def NonCommentedMatch(line: dict<any>, pat: string): bool # {{{3
return false return false
endif endif
if line.text =~ PLUS_MINUS_COMMAND
return false
endif
# In `argdelete *`, `*` is not a multiplication operator.
# TODO: Other commands can accept `*` as an argument. Handle them too.
if line.text =~ '\<argd\%[elete]\s\+\*\s*$'
return false
endif
# Technically, that's wrong. A line might start with a range and end with a # Technically, that's wrong. A line might start with a range and end with a
# line continuation symbol. But it's unlikely. And it's useful to assume the # line continuation symbol. But it's unlikely. And it's useful to assume the
# opposite because it prevents us from conflating a mark with an operator or # opposite because it prevents us from conflating a mark with an operator or
@ -1179,24 +1248,7 @@ def NonCommentedMatch(line: dict<any>, pat: string): bool # {{{3
return false return false
endif endif
# `:help cd-` if line.text =~ TRICKY_COMMANDS
if line.text =~ CD_COMMAND
return false
endif
# At the end of a mapping, any character might appear; e.g. a paren:
#
# nunmap <buffer> (
#
# Don't conflate this with a line continuation symbol.
if line.text =~ MAPPING_COMMAND
return false
endif
# not a comparison operator
# vv
# normal! ==
if line.text =~ NORMAL_COMMAND
return false return false
endif endif

View File

@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin. " Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2019 Aug 16 " Last Change: 2023 Jan 01
" "
" Additional contributors: " Additional contributors:
" "
@ -351,63 +351,65 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let s:old_magic = &magic let s:old_magic = &magic
set magic set magic
if s:settings.use_xhtml
if s:settings.encoding != ""
let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
else
let xml_line = "<?xml version=\"1.0\"?>"
endif
let tag_close = ' />'
endif
let style = [s:settings.use_xhtml ? "" : '-->']
let body_line = ''
let html = [] let html = []
let s:html5 = 0 if !s:settings.no_doc
if s:settings.use_xhtml if s:settings.use_xhtml
call add(html, xml_line) if s:settings.encoding != ""
endif let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
if s:settings.use_xhtml else
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">") let xml_line = "<?xml version=\"1.0\"?>"
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">') endif
elseif s:settings.use_css && !s:settings.no_pre let tag_close = ' />'
call add(html, "<!DOCTYPE html>")
call add(html, '<html>')
let s:html5 = 1
else
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
call add(html, '<html>')
endif
call add(html, '<head>')
" include encoding as close to the top as possible, but only if not already
" contained in XML information
if s:settings.encoding != "" && !s:settings.use_xhtml
if s:html5
call add(html, '<meta charset="' . s:settings.encoding . '"' . tag_close)
else
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
endif endif
let style = [s:settings.use_xhtml ? "" : '-->']
let body_line = ''
let s:html5 = 0
if s:settings.use_xhtml
call add(html, xml_line)
endif
if s:settings.use_xhtml
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
elseif s:settings.use_css && !s:settings.no_pre
call add(html, "<!DOCTYPE html>")
call add(html, '<html>')
let s:html5 = 1
else
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
call add(html, '<html>')
endif
call add(html, '<head>')
" include encoding as close to the top as possible, but only if not already
" contained in XML information
if s:settings.encoding != "" && !s:settings.use_xhtml
if s:html5
call add(html, '<meta charset="' . s:settings.encoding . '"' . tag_close)
else
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
endif
endif
call add(html, '<title>diff</title>')
call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
call add(html, '<meta name="settings" content="'.
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
\ ',prevent_copy='.s:settings.prevent_copy.
\ ',use_input_for_pc='.s:settings.use_input_for_pc.
\ '"'.tag_close)
call add(html, '<meta name="colorscheme" content="'.
\ (exists('g:colors_name')
\ ? g:colors_name
\ : 'none'). '"'.tag_close)
call add(html, '</head>')
let body_line_num = len(html)
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
endif endif
call add(html, '<title>diff</title>')
call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
call add(html, '<meta name="settings" content="'.
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
\ ',prevent_copy='.s:settings.prevent_copy.
\ ',use_input_for_pc='.s:settings.use_input_for_pc.
\ '"'.tag_close)
call add(html, '<meta name="colorscheme" content="'.
\ (exists('g:colors_name')
\ ? g:colors_name
\ : 'none'). '"'.tag_close)
call add(html, '</head>')
let body_line_num = len(html)
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
call add(html, "<table ".(s:settings.use_css? "" : "border='1' width='100%' ")."id='vimCodeElement".s:settings.id_suffix."'>") call add(html, "<table ".(s:settings.use_css? "" : "border='1' width='100%' ")."id='vimCodeElement".s:settings.id_suffix."'>")
call add(html, '<tr>') call add(html, '<tr>')
@ -430,47 +432,53 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" When not using CSS or when using xhtml, the <body> line can be important. " When not using CSS or when using xhtml, the <body> line can be important.
" Assume it will be the same for all buffers and grab it from the first " Assume it will be the same for all buffers and grab it from the first
" buffer. Similarly, need to grab the body end line as well. " buffer. Similarly, need to grab the body end line as well.
if body_line == '' if !s:settings.no_doc
if body_line == ''
1
call search('<body')
let body_line = getline('.')
$
call search('</body>', 'b')
let s:body_end_line = getline('.')
endif
" Grab the style information. Some of this will be duplicated so only insert
" it if it's not already there. {{{
1 1
call search('<body') let style_start = search('^<style\( type="text/css"\)\?>')
let body_line = getline('.') 1
$ let style_end = search('^</style>')
call search('</body>', 'b') if style_start > 0 && style_end > 0
let s:body_end_line = getline('.') let buf_styles = getline(style_start + 1, style_end - 1)
endif for a_style in buf_styles
if index(style, a_style) == -1
" Grab the style information. Some of this will be duplicated so only insert if diff_style_start == 0
" it if it's not already there. {{{ if a_style =~ '\<Diff\(Change\|Text\|Add\|Delete\)'
1 let diff_style_start = len(style)-1
let style_start = search('^<style\( type="text/css"\)\?>') endif
1
let style_end = search('^</style>')
if style_start > 0 && style_end > 0
let buf_styles = getline(style_start + 1, style_end - 1)
for a_style in buf_styles
if index(style, a_style) == -1
if diff_style_start == 0
if a_style =~ '\<Diff\(Change\|Text\|Add\|Delete\)'
let diff_style_start = len(style)-1
endif endif
call insert(style, a_style, insert_index)
let insert_index += 1
endif endif
call insert(style, a_style, insert_index) endfor
let insert_index += 1 endif " }}}
endif
endfor
endif " }}}
" everything new will get added before the diff styles so diff highlight " everything new will get added before the diff styles so diff highlight
" properly overrides normal highlight " properly overrides normal highlight
if diff_style_start != 0 if diff_style_start != 0
let insert_index = diff_style_start let insert_index = diff_style_start
endif
" Delete those parts that are not needed so we can include the rest into the
" resulting table.
1,/^<body.*\%(\n<!--.*-->\_s\+.*id='oneCharWidth'.*\_s\+.*id='oneInputWidth'.*\_s\+.*id='oneEmWidth'\)\?\zs/d_
$
?</body>?,$d_
elseif !s:settings.no_modeline
" remove modeline from source files if it is included and we haven't deleted
" due to removing html footer already
$d
endif endif
" Delete those parts that are not needed so we can include the rest into the
" resulting table.
1,/^<body.*\%(\n<!--.*-->\_s\+.*id='oneCharWidth'.*\_s\+.*id='oneInputWidth'.*\_s\+.*id='oneEmWidth'\)\?\zs/d_
$
?</body>?,$d_
let temp = getline(1,'$') let temp = getline(1,'$')
" clean out id on the main content container because we already set it on " clean out id on the main content container because we already set it on
" the table " the table
@ -478,7 +486,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" undo deletion of start and end part " undo deletion of start and end part
" so we can later save the file as valid html " so we can later save the file as valid html
" TODO: restore using grabbed lines if undolevel is 1? " TODO: restore using grabbed lines if undolevel is 1?
normal! 2u if !s:settings.no_doc
normal! 2u
elseif !s:settings.no_modeline
normal! u
endif
if s:settings.use_css if s:settings.use_css
call add(html, '<td><div>') call add(html, '<td><div>')
elseif s:settings.use_xhtml elseif s:settings.use_xhtml
@ -495,17 +507,23 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
quit! quit!
endfor endfor
let html[body_line_num] = body_line if !s:settings.no_doc
let html[body_line_num] = body_line
endif
call add(html, '</tr>') call add(html, '</tr>')
call add(html, '</table>') call add(html, '</table>')
call add(html, s:body_end_line) if !s:settings.no_doc
call add(html, '</html>') call add(html, s:body_end_line)
call add(html, '</html>')
endif
" The generated HTML is admittedly ugly and takes a LONG time to fold. " The generated HTML is admittedly ugly and takes a LONG time to fold.
" Make sure the user doesn't do syntax folding when loading a generated file, " Make sure the user doesn't do syntax folding when loading a generated file,
" using a modeline. " using a modeline.
call add(html, '<!-- vim: set foldmethod=manual : -->') if !s:settings.no_modeline
call add(html, '<!-- vim: set foldmethod=manual : -->')
endif
let i = 1 let i = 1
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html") let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
@ -542,129 +560,131 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call append(0, html) call append(0, html)
if len(style) > 0 if !s:settings.no_doc
1 if len(style) > 0
let style_start = search('^</head>')-1 1
let style_start = search('^</head>')-1
" add required javascript in reverse order so we can just call append again " add required javascript in reverse order so we can just call append again
" and again without adjusting {{{ " and again without adjusting {{{
let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids
" insert script closing tag if needed " insert script closing tag if needed
if s:uses_script if s:uses_script
call append(style_start, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
endif
" insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein
if s:settings.line_ids
call append(style_start, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
if s:settings.dynamic_folds
call append(style_start, [ call append(style_start, [
\ "", \ '',
\ " /* navigate upwards in the DOM tree to open all folds containing the line */", \ s:settings.use_xhtml ? '//]]>' : '-->',
\ " var node = lineElem;", \ "</script>"
\ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " /* toggle open the fold ID (remove window ID) */",
\ " toggleFold(node.id.substr(4));",
\ " }",
\ " node = node.parentNode;",
\ " }",
\ ]) \ ])
endif endif
endif
if s:settings.line_ids " insert javascript to get IDs from line numbers, and to open a fold before
call append(style_start, [ " jumping to any lines contained therein
\ "", if s:settings.line_ids
\ "/* function to open any folds containing a jumped-to line before jumping to it */", call append(style_start, [
\ "function JumpToLine()", \ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ "{", \ " * we corrected the raw number to a line ID.",
\ " var lineNum;", \ " */",
\ " lineNum = window.location.hash;", \ " if (lineElem) {",
\ " lineNum = lineNum.substr(1); /* strip off '#' */", \ " lineElem.scrollIntoView(true);",
\ "", \ " }",
\ " if (lineNum.indexOf('L') == -1) {", \ " return true;",
\ " lineNum = 'L'+lineNum;", \ "}",
\ " }", \ "if ('onhashchange' in window) {",
\ " if (lineNum.indexOf('W') == -1) {", \ " window.onhashchange = JumpToLine;",
\ " lineNum = 'W1'+lineNum;", \ "}"
\ " }", \ ])
\ " var lineElem = document.getElementById(lineNum);"
\ ])
endif
" Insert javascript to toggle matching folds open and closed in all windows, if s:settings.dynamic_folds
" if dynamic folding is active. call append(style_start, [
if s:settings.dynamic_folds \ "",
call append(style_start, [ \ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " function toggleFold(objID)", \ " var node = lineElem;",
\ " {", \ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)", \ " {",
\ " {", \ " if (node.className == 'closed-fold')",
\ " var fold;", \ " {",
\ ' fold = document.getElementById("win"+win_num+objID);', \ " /* toggle open the fold ID (remove window ID) */",
\ " if(fold.className == 'closed-fold')", \ " toggleFold(node.id.substr(4));",
\ " {", \ " }",
\ " fold.className = 'open-fold';", \ " node = node.parentNode;",
\ " }", \ " }",
\ " else if (fold.className == 'open-fold')", \ ])
\ " {", endif
\ " fold.className = 'closed-fold';", endif
\ " }",
\ " }",
\ " }",
\ ])
endif
if s:uses_script if s:settings.line_ids
" insert script tag if needed call append(style_start, [
call append(style_start, [ \ "",
\ "<script" . (s:html5 ? "" : " type='text/javascript'") . ">", \ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"]) \ "function JumpToLine()",
endif \ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " if (lineNum.indexOf('W') == -1) {",
\ " lineNum = 'W1'+lineNum;",
\ " }",
\ " var lineElem = document.getElementById(lineNum);"
\ ])
endif
" Insert styles from all the generated html documents and additional styles " Insert javascript to toggle matching folds open and closed in all windows,
" for the table-based layout of the side-by-side diff. The diff should take " if dynamic folding is active.
" up the full browser window (but not more), and be static in size, if s:settings.dynamic_folds
" horizontally scrollable when the lines are too long. Otherwise, the diff call append(style_start, [
" is pretty useless for really long lines. {{{ \ " function toggleFold(objID)",
if s:settings.use_css \ " {",
call append(style_start, \ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
\ ['<style' . (s:html5 ? '' : 'type="text/css"') . '>']+ \ " {",
\ style+ \ " var fold;",
\ [ s:settings.use_xhtml ? '' : '<!--', \ ' fold = document.getElementById("win"+win_num+objID);',
\ 'table { table-layout: fixed; }', \ " if(fold.className == 'closed-fold')",
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }', \ " {",
\ 'table, td, th { border: 1px solid; }', \ " fold.className = 'open-fold';",
\ 'td { vertical-align: top; }', \ " }",
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }', \ " else if (fold.className == 'open-fold')",
\ 'td div { overflow: auto; }', \ " {",
\ s:settings.use_xhtml ? '' : '-->', \ " fold.className = 'closed-fold';",
\ '</style>' \ " }",
\]) \ " }",
endif "}}} \ " }",
\ ])
endif
if s:uses_script
" insert script tag if needed
call append(style_start, [
\ "<script" . (s:html5 ? "" : " type='text/javascript'") . ">",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif
" Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take
" up the full browser window (but not more), and be static in size,
" horizontally scrollable when the lines are too long. Otherwise, the diff
" is pretty useless for really long lines. {{{
if s:settings.use_css
call append(style_start,
\ ['<style' . (s:html5 ? '' : 'type="text/css"') . '>']+
\ style+
\ [ s:settings.use_xhtml ? '' : '<!--',
\ 'table { table-layout: fixed; }',
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
\ 'table, td, th { border: 1px solid; }',
\ 'td { vertical-align: top; }',
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
\ 'td div { overflow: auto; }',
\ s:settings.use_xhtml ? '' : '-->',
\ '</style>'
\])
endif "}}}
endif
endif endif
let &paste = s:old_paste let &paste = s:old_paste

View File

@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.0. Last change: 2022 Dec 23 *builtin.txt* For Vim version 9.0. Last change: 2023 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 9.0. Last change: 2022 Dec 24 *diff.txt* For Vim version 9.0. Last change: 2023 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -136,7 +136,7 @@ file for a moment and come back to the same file and be in diff mode again.
buffers. buffers.
The `:diffoff` command resets the relevant options to the values they had when The `:diffoff` command resets the relevant options to the values they had when
using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode. using `:diffsplit`, `:diffpatch`, `:diffthis`. or starting Vim in diff mode.
When using `:diffoff` twice the last saved values are restored. When using `:diffoff` twice the last saved values are restored.
Otherwise they are set to their default value: Otherwise they are set to their default value:

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.0. Last change: 2023 Jan 03 *eval.txt* For Vim version 9.0. Last change: 2023 Jan 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*fold.txt* For Vim version 9.0. Last change: 2022 Nov 26 *fold.txt* For Vim version 9.0. Last change: 2023 Jan 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -202,7 +202,7 @@ non-matching marker pairs. Example: >
/* funcB() {{{2 */ /* funcB() {{{2 */
void funcB() {} void funcB() {}
< *{{{* *}}}*
A fold starts at a "{{{" marker. The following number specifies the fold A fold starts at a "{{{" marker. The following number specifies the fold
level. What happens depends on the difference between the current fold level level. What happens depends on the difference between the current fold level
and the level given by the marker: and the level given by the marker:

View File

@ -48,7 +48,7 @@ typesetting command. That must be a function that takes a path and returns the
command as a List. For example: command as a List. For example:
> >
def ConTeXtCustomCommand(path: string): list<string> def ConTeXtCustomCommand(path: string): list<string>
return ['mtxrun', '--script', 'context', '--nonstopmode, path] return ['mtxrun', '--script', 'context', '--nonstopmode', path]
enddef enddef
context.ConTeXtTypeset("%", v:none, ConTeXtCustomCommand) context.ConTeXtTypeset("%", v:none, ConTeXtCustomCommand)

View File

@ -84,7 +84,7 @@ METAFONT buffers, and it is set to 0 by default in MetaPost buffers.
Define additional keywords that end indented blocks. For instance, if you Define additional keywords that end indented blocks. For instance, if you
define: define:
> >
g:mp_end_tag = ['\<endfoo\>'] g:mp_close_tag = ['\<endfoo\>']
< <
any line starting with `endfoo` will be de-indented compared to its previous any line starting with `endfoo` will be de-indented compared to its previous
line. line.

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 9.0. Last change: 2023 Jan 02 *options.txt* For Vim version 9.0. Last change: 2023 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1899,7 +1899,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'allowrevins' + off no CTRL-_ command 'allowrevins' + off no CTRL-_ command
'antialias' + off don't use antialiased fonts 'antialias' + off don't use antialiased fonts
'arabic' + off reset arabic-related options 'arabic' + off reset arabic-related options
'arabicshape' + on correct character shapes 'arabicshape' + on correct character shapes
'backspace' + "" normal backspace 'backspace' + "" normal backspace
'backup' + off no backup file 'backup' + off no backup file
@ -4943,7 +4943,7 @@ A jump table for the options with a short description can be found at |Q_op|.
empty. Then set the 'term' option to have it take effect: > empty. Then set the 'term' option to have it take effect: >
set keyprotocol= set keyprotocol=
let &term = &term let &term = &term
<
*'keywordprg'* *'kp'* *'keywordprg'* *'kp'*
'keywordprg' 'kp' string (default "man" or "man -s", DOS: ":help", 'keywordprg' 'kp' string (default "man" or "man -s", DOS: ":help",
@ -5201,8 +5201,8 @@ A jump table for the options with a short description can be found at |Q_op|.
are left blank. are left blank.
*lcs-multispace* *lcs-multispace*
multispace:c... multispace:c...
One or more characters to use cyclically to show for One or more characters to use cyclically to show for
multiple consecutive spaces. Overrides the "space" multiple consecutive spaces. Overrides the "space"
setting, except for single spaces. When omitted, the setting, except for single spaces. When omitted, the
"space" setting is used. For example, "space" setting is used. For example,
`:set listchars=multispace:---+` shows ten consecutive `:set listchars=multispace:---+` shows ten consecutive
@ -7784,8 +7784,8 @@ A jump table for the options with a short description can be found at |Q_op|.
windows. windows.
* - Set highlight group to User{N}, where {N} is taken from the * - Set highlight group to User{N}, where {N} is taken from the
minwid field, e.g. %1*. Restore normal highlight with %* or %0*. minwid field, e.g. %1*. Restore normal highlight with %* or %0*.
The difference between User{N} and StatusLine will be applied The difference between User{N} and StatusLine will be applied to
to StatusLineNC for the statusline of non-current windows. StatusLineNC for the statusline of non-current windows.
The number N must be between 1 and 9. See |hl-User1..9| The number N must be between 1 and 9. See |hl-User1..9|
When displaying a flag, Vim removes the leading comma, if any, when When displaying a flag, Vim removes the leading comma, if any, when

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 9.0. Last change: 2022 Sep 26 *quickfix.txt* For Vim version 9.0. Last change: 2023 Jan 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -365,8 +365,6 @@ processing a quickfix or location list command, it will be aborted.
If numbers [from] and/or [to] are given, the respective If numbers [from] and/or [to] are given, the respective
range of errors is listed. A negative number counts range of errors is listed. A negative number counts
from the last error backwards, -1 being the last error. from the last error backwards, -1 being the last error.
The 'switchbuf' settings are respected when jumping
to a buffer.
The |:filter| command can be used to display only the The |:filter| command can be used to display only the
quickfix entries matching a supplied pattern. The quickfix entries matching a supplied pattern. The
pattern is matched against the filename, module name, pattern is matched against the filename, module name,

View File

@ -438,8 +438,10 @@ $quote eval.txt /*$quote*
'keymap' options.txt /*'keymap'* 'keymap' options.txt /*'keymap'*
'keymodel' options.txt /*'keymodel'* 'keymodel' options.txt /*'keymodel'*
'keyprotocol' options.txt /*'keyprotocol'* 'keyprotocol' options.txt /*'keyprotocol'*
'keywordprg' options.txt /*'keywordprg'*
'km' options.txt /*'km'* 'km' options.txt /*'km'*
'kmp' options.txt /*'kmp'* 'kmp' options.txt /*'kmp'*
'kp' options.txt /*'kp'*
'kpc' options.txt /*'kpc'* 'kpc' options.txt /*'kpc'*
'langmap' options.txt /*'langmap'* 'langmap' options.txt /*'langmap'*
'langmenu' options.txt /*'langmenu'* 'langmenu' options.txt /*'langmenu'*
@ -4416,6 +4418,11 @@ E1351 vim9class.txt /*E1351*
E1352 vim9class.txt /*E1352* E1352 vim9class.txt /*E1352*
E1353 vim9class.txt /*E1353* E1353 vim9class.txt /*E1353*
E1354 vim9class.txt /*E1354* E1354 vim9class.txt /*E1354*
E1355 vim9class.txt /*E1355*
E1356 vim9class.txt /*E1356*
E1357 vim9class.txt /*E1357*
E1358 vim9class.txt /*E1358*
E1359 vim9class.txt /*E1359*
E136 starting.txt /*E136* E136 starting.txt /*E136*
E137 starting.txt /*E137* E137 starting.txt /*E137*
E138 starting.txt /*E138* E138 starting.txt /*E138*
@ -5633,6 +5640,7 @@ View starting.txt /*View*
Vim9 vim9.txt /*Vim9* Vim9 vim9.txt /*Vim9*
Vim9-abstract-class vim9class.txt /*Vim9-abstract-class* Vim9-abstract-class vim9class.txt /*Vim9-abstract-class*
Vim9-class vim9class.txt /*Vim9-class* Vim9-class vim9class.txt /*Vim9-class*
Vim9-class-member vim9class.txt /*Vim9-class-member*
Vim9-class-overview vim9class.txt /*Vim9-class-overview* Vim9-class-overview vim9class.txt /*Vim9-class-overview*
Vim9-enum vim9class.txt /*Vim9-enum* Vim9-enum vim9class.txt /*Vim9-enum*
Vim9-script vim9.txt /*Vim9-script* Vim9-script vim9.txt /*Vim9-script*
@ -6311,7 +6319,6 @@ cino-} indent.txt /*cino-}*
cinoptions-values indent.txt /*cinoptions-values* cinoptions-values indent.txt /*cinoptions-values*
class vim9class.txt /*class* class vim9class.txt /*class*
class-function vim9class.txt /*class-function* class-function vim9class.txt /*class-function*
class-member vim9class.txt /*class-member*
clear-undo undo.txt /*clear-undo* clear-undo undo.txt /*clear-undo*
clearmatches() builtin.txt /*clearmatches()* clearmatches() builtin.txt /*clearmatches()*
client-server remote.txt /*client-server* client-server remote.txt /*client-server*
@ -7558,6 +7565,7 @@ getbufinfo() builtin.txt /*getbufinfo()*
getbufline() builtin.txt /*getbufline()* getbufline() builtin.txt /*getbufline()*
getbufoneline() builtin.txt /*getbufoneline()* getbufoneline() builtin.txt /*getbufoneline()*
getbufvar() builtin.txt /*getbufvar()* getbufvar() builtin.txt /*getbufvar()*
getcellwidths() builtin.txt /*getcellwidths()*
getchangelist() builtin.txt /*getchangelist()* getchangelist() builtin.txt /*getchangelist()*
getchar() builtin.txt /*getchar()* getchar() builtin.txt /*getchar()*
getcharmod() builtin.txt /*getcharmod()* getcharmod() builtin.txt /*getcharmod()*
@ -10042,6 +10050,7 @@ t_channel-variable eval.txt /*t_channel-variable*
t_ci version4.txt /*t_ci* t_ci version4.txt /*t_ci*
t_cil version4.txt /*t_cil* t_cil version4.txt /*t_cil*
t_cl term.txt /*t_cl* t_cl term.txt /*t_cl*
t_class-variable eval.txt /*t_class-variable*
t_cm term.txt /*t_cm* t_cm term.txt /*t_cm*
t_cri version4.txt /*t_cri* t_cri version4.txt /*t_cri*
t_cs term.txt /*t_cs* t_cs term.txt /*t_cs*
@ -10106,6 +10115,7 @@ t_ms term.txt /*t_ms*
t_nd term.txt /*t_nd* t_nd term.txt /*t_nd*
t_none-variable eval.txt /*t_none-variable* t_none-variable eval.txt /*t_none-variable*
t_number-variable eval.txt /*t_number-variable* t_number-variable eval.txt /*t_number-variable*
t_object-variable eval.txt /*t_object-variable*
t_op term.txt /*t_op* t_op term.txt /*t_op*
t_se term.txt /*t_se* t_se term.txt /*t_se*
t_sf1 version4.txt /*t_sf1* t_sf1 version4.txt /*t_sf1*
@ -10614,6 +10624,7 @@ v:t_TYPE eval.txt /*v:t_TYPE*
v:t_blob eval.txt /*v:t_blob* v:t_blob eval.txt /*v:t_blob*
v:t_bool eval.txt /*v:t_bool* v:t_bool eval.txt /*v:t_bool*
v:t_channel eval.txt /*v:t_channel* v:t_channel eval.txt /*v:t_channel*
v:t_class eval.txt /*v:t_class*
v:t_dict eval.txt /*v:t_dict* v:t_dict eval.txt /*v:t_dict*
v:t_float eval.txt /*v:t_float* v:t_float eval.txt /*v:t_float*
v:t_func eval.txt /*v:t_func* v:t_func eval.txt /*v:t_func*
@ -10621,6 +10632,7 @@ v:t_job eval.txt /*v:t_job*
v:t_list eval.txt /*v:t_list* v:t_list eval.txt /*v:t_list*
v:t_none eval.txt /*v:t_none* v:t_none eval.txt /*v:t_none*
v:t_number eval.txt /*v:t_number* v:t_number eval.txt /*v:t_number*
v:t_object eval.txt /*v:t_object*
v:t_string eval.txt /*v:t_string* v:t_string eval.txt /*v:t_string*
v:termblinkresp eval.txt /*v:termblinkresp* v:termblinkresp eval.txt /*v:termblinkresp*
v:termrbgresp eval.txt /*v:termrbgresp* v:termrbgresp eval.txt /*v:termrbgresp*
@ -11208,6 +11220,8 @@ zz scroll.txt /*zz*
{rhs} map.txt /*{rhs}* {rhs} map.txt /*{rhs}*
{server} remote.txt /*{server}* {server} remote.txt /*{server}*
{subject} helphelp.txt /*{subject}* {subject} helphelp.txt /*{subject}*
{{{ fold.txt /*{{{*
{} intro.txt /*{}* {} intro.txt /*{}*
} motion.txt /*}* } motion.txt /*}*
}}} fold.txt /*}}}*
~ change.txt /*~* ~ change.txt /*~*

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 9.0. Last change: 2023 Jan 09 *term.txt* For Vim version 9.0. Last change: 2023 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -322,9 +322,14 @@ using the "xterm" workaround. These are the relevant entries (so far):
PS "\033[200~" pasted text start |t_PS| PS "\033[200~" pasted text start |t_PS|
PE "\033[201~" pasted text end |t_PE| PE "\033[201~" pasted text end |t_PE|
XM "\033[?1006;1000%?%p1%{1}%=%th%el%;" XM "\033[?1006;1004;1000%?%p1%{1}%=%th%el%;"
mouse enable / disable |t_XM| mouse enable / disable |t_XM|
The "XM" entry includes "1006" to enable SGR style mouse reporting. This
supports columns above 223. It also includes "1004" which enables focus
reporting. The t_fe and t_fd entries can be left empty (they don't have
entries in terminfo/termcap anyway).
*xterm-kitty* *kitty-terminal* *xterm-kitty* *kitty-terminal*
The Kitty terminal is a special case. Mainly because it works differently The Kitty terminal is a special case. Mainly because it works differently
from most other terminals, but also because, instead of trying the fit in and from most other terminals, but also because, instead of trying the fit in and

View File

@ -108,7 +108,7 @@ prop_type_list([{props}]) get list of property types
Manipulating text properties: Manipulating text properties:
prop_add({lnum}, {col}, {props}) add a text property prop_add({lnum}, {col}, {props}) add a text property
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...]) prop_add_list({props}, [{item}, ...])
add a text property at multiple add a text property at multiple
positions. positions.
prop_clear({lnum} [, {lnum-end} [, {bufnr}]]) prop_clear({lnum} [, {lnum-end} [, {bufnr}]])
@ -263,12 +263,12 @@ prop_add_list({props}, [{item}, ...])
It is not possible to add a text property with a "text" field It is not possible to add a text property with a "text" field
here. here.
Example: Example: >
call prop_add_list(#{type: 'MyProp', id: 2}, call prop_add_list(#{type: 'MyProp', id: 2},
\ [[1, 4, 1, 7], \ [[1, 4, 1, 7],
\ [1, 15, 1, 20], \ [1, 15, 1, 20],
\ [2, 30, 3, 30]] \ [2, 30, 3, 30]]
<
Can also be used as a |method|: > Can also be used as a |method|: >
GetProp()->prop_add_list([[1, 1, 1, 2], [1, 4, 1, 8]]) GetProp()->prop_add_list([[1, 1, 1, 2], [1, 4, 1, 8]])

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 9.0. Last change: 2023 Jan 09 *todo.txt* For Vim version 9.0. Last change: 2023 Feb 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,6 +38,13 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Errors when running tests with valgrind:
- test_codestyle.vim: e.g.:
command line..script /home/mool/vim/vim90/src/testdir/runtest.vim[569]..function RunTheTest[52]..Test_test_files line 6: keycode_check.vim: space before tab: Expected 0 but got 7
command line..script /home/mool/vim/vim90/src/testdir/runtest.vim[569]..function RunTheTest[52]..Test_test_files line 10: setup.vim: trailing white space: Expected 0 but got 23
- test_gui.vim:
Found errors in Test_gui_mouse_event():
Upcoming larger works: Upcoming larger works:
- Make spell checking work with recent .dic/.aff files, e.g. French. #4916 - Make spell checking work with recent .dic/.aff files, e.g. French. #4916
Make Vim understand the format somehow? Search for "spell" below. Make Vim understand the format somehow? Search for "spell" below.
@ -53,18 +60,29 @@ Upcoming larger works:
Further Vim9 improvements, possibly after launch: Further Vim9 improvements, possibly after launch:
- implement :class and :interface: See |vim9-classes| #11544 - implement :class and :interface: See |vim9-classes
inheritance: how about super()? - Change access: public by default, private by prefixing "_".
inheritance: new() method from parent used in child? Check for error: can't have same name twice (ignoring "_" prefix).
import/export of a class - Private methods?
type() should return different type for each class? either: private def Func()
give error for shadowing (variable and argument) when defining a class or or: def _Func()
interface, not later when compiling it. Perhaps use "private" keyword instead of "_" prefix?
object empty(), len() - can class define a method to be used for them? - "final" object members - can only be set in the constructor.
how about lock/unlock? - object empty(), len() - can class define a method to be used for them?
When checking "implements" also check types of members and function args. - how about lock/unlock?
- When checking "implements" also check types of members and function args.
- For chaining, allow using the class name as type for function return
value.
- Implement generics
- Add "instanceof"
- More efficient way for interface member index than iterating over list?
- a variant of type() that returns a different type for each class?
list<number> and list<string> should also differ.
- Issue #11822: any.Func() can be a dict or an object call, need to handle
this at runtime.
- implement :type - implement :type
- implement :enum - implement :enum
- class local to a function
- Use Vim9 for more runtime files. - Use Vim9 for more runtime files.
- Inline call to map() and filter(), better type checking. - Inline call to map() and filter(), better type checking.
- When evaluating constants for script variables, some functions could work: - When evaluating constants for script variables, some functions could work:
@ -72,16 +90,19 @@ Further Vim9 improvements, possibly after launch:
- Implement as part of an expression: ++expr, --expr, expr++, expr--. - Implement as part of an expression: ++expr, --expr, expr++, expr--.
Information missing in terminfo: Information missing in terminfo:
Priority:
- t_RV request terminal version string; xterm: "\033[>c" - t_RV request terminal version string; xterm: "\033[>c"
change in terminfo for "RV" uses the wrong escape sequence... ? change in terminfo for "RV" uses the wrong escape sequence 7 - 14 Jan only
Mouse support:
on/off: hard coded in mch_setmouse() - use "XM" terminfo/termcap entry;
If it starts with "\E[?1006;1000%" then set 'ttymouse' to "sgr".
Codes used for focus gained and lost (currently using use_xterm_like_mouse()) Codes used for focus gained and lost (currently using use_xterm_like_mouse())
termcodes are hard-coded in set_termname(), not named. termcodes are hard-coded in set_termname(), not named.
Use the XF flag? enables recognizing the focus in/out events.
Check if t_fe is not empty.
Check for "1004" in t_XM. (disadvantage: only focus events when mouse is
used)
- t_fe enable focus-event tracking - t_fe enable focus-event tracking
- t_fd disable focus-event tracking - t_fd disable focus-event tracking
Modifiers for various keys
- Decode kitty key protocol Meta and use MOD_MASK_META. Document <T-k>
- flag to indicate "xterm compatible modifiers" ?
Underline and similar: Underline and similar:
- t_AU - Set underline color: like "AF" and "AB" entries. - t_AU - Set underline color: like "AF" and "AB" entries.
- t_Ce undercurl and underline end - t_Ce undercurl and underline end
@ -124,6 +145,8 @@ Probably Vim internal, not in terminfo:
- t_RK request terminal keyboard protocol state; sent after |t_TI| - t_RK request terminal keyboard protocol state; sent after |t_TI|
Already working, not properly documented: Already working, not properly documented:
- t_u7 request cursor position - t_u7 request cursor position
Also, with Alt-b we get â, with Alt-Shift-b we should bet another character.
That does not appear to work with Kitty. #11913
Popup windows: Popup windows:
- Add a function to redraw a specific popup window. Esp. to be used when - Add a function to redraw a specific popup window. Esp. to be used when

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 9.0. Last change: 2022 Dec 20 *usr_41.txt* For Vim version 9.0. Last change: 2023 Jan 17
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar

View File

@ -105,7 +105,7 @@ script and `:def` functions; details are below:
`:open` `:open`
`:s` with only flags `:s` with only flags
`:t` `:t`
`:xit` `:xit`
- Some commands, especially those used for flow control, cannot be shortened. - Some commands, especially those used for flow control, cannot be shortened.
E.g., `:throw` cannot be written as `:th`. *vim9-no-shorten* E.g., `:throw` cannot be written as `:th`. *vim9-no-shorten*
- You cannot use curly-braces names. - You cannot use curly-braces names.
@ -265,7 +265,7 @@ Detail: this is because "Inner" will actually become a function reference to a
function with a generated name. function with a generated name.
It is not possible to define a script-local function in a function. You can It is not possible to define a script-local function in a function. You can
define a local function and assign it to a script-local funcref (it must have define a local function and assign it to a script-local Funcref (it must have
been declared at the script level). It is possible to define a global been declared at the script level). It is possible to define a global
function by using the "g:" prefix. function by using the "g:" prefix.
@ -388,7 +388,6 @@ used: >
echo temp # Error! echo temp # Error!
This is especially useful in a user command: > This is especially useful in a user command: >
command -range Rename { command -range Rename {
var save = @a var save = @a
@a = 'some expression' @a = 'some expression'
@ -397,7 +396,6 @@ This is especially useful in a user command: >
} }
And with autocommands: > And with autocommands: >
au BufWritePre *.go { au BufWritePre *.go {
var save = winsaveview() var save = winsaveview()
silent! exe ':%! some formatting command' silent! exe ':%! some formatting command'
@ -746,7 +744,7 @@ continuation is used without a backslash and a line starts with a bar: >
*E1050* *E1050*
To make it possible for the operator at the start of the line to be To make it possible for the operator at the start of the line to be
recognized, it is required to put a colon before a range. This example will recognized, it is required to put a colon before a range. This example will
add "start" and print: > add "start" and "print": >
var result = start var result = start
+ print + print
Like this: > Like this: >
@ -805,7 +803,7 @@ Notes:
echo [1, 2] echo [1, 2]
[3, 4] [3, 4]
- In some cases it is difficult for Vim to parse a command, especially when - In some cases it is difficult for Vim to parse a command, especially when
commands are used as an argument to another command, such as `windo`. In commands are used as an argument to another command, such as `:windo`. In
those cases the line continuation with a backslash has to be used. those cases the line continuation with a backslash has to be used.
@ -1311,7 +1309,7 @@ Closures defined in a loop will share the same context. For example: >
< *E1271* < *E1271*
A closure must be compiled in the context that it is defined in, so that A closure must be compiled in the context that it is defined in, so that
variables in that context can be found. This mostly happens correctly, except variables in that context can be found. This mostly happens correctly, except
when a function is marked for debugging with `breakadd` after it was compiled. when a function is marked for debugging with `:breakadd` after it was compiled.
Make sure to define the breakpoint before compiling the outer function. Make sure to define the breakpoint before compiling the outer function.
The "inloop" variable will exist only once, all closures put in the list refer The "inloop" variable will exist only once, all closures put in the list refer
@ -1353,7 +1351,7 @@ closure: >
} }
endfor endfor
Using `echowindow` is useful in a timer, the messages go into a popup and will Using `:echowindow` is useful in a timer, the messages go into a popup and will
not interfere with what the user is doing when it triggers. not interfere with what the user is doing when it triggers.
@ -1594,7 +1592,7 @@ That is because the declaration looks like a list of numbers, thus is
equivalent to: > equivalent to: >
var ll: list<number> = [1, 2, 3] var ll: list<number> = [1, 2, 3]
If you do want a more permissive list you need to declare the type: > If you do want a more permissive list you need to declare the type: >
var ll: list<any = [1, 2, 3] var ll: list<any> = [1, 2, 3]
ll->extend(['x']) # OK ll->extend(['x']) # OK

View File

@ -1,21 +1,22 @@
*vim9class.txt* For Vim version 9.0. Last change: 2023 Jan 09 *vim9class.txt* For Vim version 9.0. Last change: 2023 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
NOTE - This is under development, anything can still change! - NOTE NOTE - This is not finished yet, anything can still change! - NOTE
Vim9 classes, objects, interfaces, types and enums. Vim9 classes, objects, interfaces, types and enums.
1. Overview |Vim9-class-overview| 1. Overview |Vim9-class-overview|
2. A simple class |Vim9-simple-class| 2. A simple class |Vim9-simple-class|
3. Using an abstract class |Vim9-abstract-class| 3. Class members and functions |Vim9-class-member|
4. Using an interface |Vim9-using-interface| 4. Using an abstract class |Vim9-abstract-class|
5. More class details |Vim9-class| 5. Using an interface |Vim9-using-interface|
6. Type definition |Vim9-type| 6. More class details |Vim9-class|
7. Enum |Vim9-enum| 7. Type definition |Vim9-type|
8. Enum |Vim9-enum|
9. Rationale 9. Rationale
10. To be done later 10. To be done later
@ -25,25 +26,25 @@ Vim9 classes, objects, interfaces, types and enums.
1. Overview *Vim9-class-overview* 1. Overview *Vim9-class-overview*
The fancy term is "object-oriented programming". You can find lots of study The fancy term is "object-oriented programming". You can find lots of study
material about this subject. Here we document what |Vim9| script provides, material on this subject. Here we document what |Vim9| script provides,
assuming you know the basics already. Added are helpful hints about how assuming you know the basics already. Added are helpful hints about how to
to use this functionality effectively. use this functionality effectively.
The basic item is an object: The basic item is an object:
- An object stores state. It contains one or more variables that can each - An object stores state. It contains one or more variables that can each
have a value. have a value.
- An object usually provides functions that manipulate its state. These - An object provides functions that use and manipulate its state. These
functions are invoked "on the object", which is what sets it apart from the functions are invoked "on the object", which is what sets it apart from the
traditional separation of data and code that manipulates the data. traditional separation of data and code that manipulates the data.
- An object has a well defined interface, with typed member variables and - An object has a well defined interface, with typed member variables and
member functions. member functions.
- Objects are created by a class and all objects have the same interface. - Objects are created from a class and all objects have the same interface.
This never changes, it is not dynamic. This does not change at runtime, it is not dynamic.
An object can only be created by a class. A class provides: An object can only be created by a class. A class provides:
- A new() method, the constructor, which returns an object for the class. - A new() method, the constructor, which returns an object for the class.
This method is invoked on the class name: MyClass.new(). This method is invoked on the class name: MyClass.new().
- State shared by all objects of the class: class variables and constants. - State shared by all objects of the class: class variables (class members).
- A hierarchy of classes, with super-classes and sub-classes, inheritance. - A hierarchy of classes, with super-classes and sub-classes, inheritance.
An interface is used to specify properties of an object: An interface is used to specify properties of an object:
@ -62,17 +63,18 @@ teachers use real-world objects to explain class relations and you might think
your model should therefore reflect the real world. It doesn't! The model your model should therefore reflect the real world. It doesn't! The model
should match your purpose. should match your purpose.
You will soon find that composition is often better than inheritance. Don't Keep in mind that composition (an object contains other objects) is often
waste time trying to find the optimal class model. Or waste time discussing better than inheritance (an object extends another object). Don't waste time
whether a square is a rectangle or that a rectangle is a square. It doesn't trying to find the optimal class model. Or waste time discussing whether a
matter. square is a rectangle or that a rectangle is a square. It doesn't matter.
============================================================================== ==============================================================================
2. A simple class *Vim9-simple-class* 2. A simple class *Vim9-simple-class*
Let's start with a simple example: a class that stores a text position: > Let's start with a simple example: a class that stores a text position (see
below for how to do this more efficiently): >
class TextPosition class TextPosition
this.lnum: number this.lnum: number
@ -107,7 +109,7 @@ The object members "lnum" and "col" can be accessed directly: >
< *E1317* *E1327* < *E1317* *E1327*
If you have been using other object-oriented languages you will notice that If you have been using other object-oriented languages you will notice that
in Vim the object members are consistently referred to with the "this." in Vim the object members are consistently referred to with the "this."
prefix. This is different from languages like Java and TypeScript. This prefix. This is different from languages like Java and TypeScript. The
naming convention makes the object members easy to spot. Also, when a naming convention makes the object members easy to spot. Also, when a
variable does not have the "this." prefix you know it is not an object member. variable does not have the "this." prefix you know it is not an object member.
@ -117,9 +119,9 @@ Member write access ~
Now try to change an object member directly: > Now try to change an object member directly: >
pos.lnum = 9 pos.lnum = 9
< *E1335* < *E1335*
This will give you an error! That is because by default object members can be This will give you an error! That is because by default object members can be
read but not set. That's why the class provides a method for it: > read but not set. That's why the TextPosition class provides a method for it: >
pos.SetLnum(9) pos.SetLnum(9)
@ -128,12 +130,12 @@ way. Most often there is no problem using a value, while setting a value may
have side effects that need to be taken care of. In this case, the SetLnum() have side effects that need to be taken care of. In this case, the SetLnum()
method could check if the line number is valid and either give an error or use method could check if the line number is valid and either give an error or use
the closest valid value. the closest valid value.
*:public* *E1331* *:public* *E1331*
If you don't care about side effects and want to allow the object member to be If you don't care about side effects and want to allow the object member to be
changed at any time, you can make it public: > changed at any time, you can make it public: >
public this.lnum: number public this.lnum: number
public this.col number public this.col: number
Now you don't need the SetLnum(), SetCol() and SetPosition() methods, setting Now you don't need the SetLnum(), SetCol() and SetPosition() methods, setting
"pos.lnum" directly above will no longer give an error. "pos.lnum" directly above will no longer give an error.
@ -153,7 +155,7 @@ name: >
this._col number this._col number
Now you need to provide methods to get the value of the private members. Now you need to provide methods to get the value of the private members.
These are commonly call getters. We recommend using a name that starts with These are commonly called getters. We recommend using a name that starts with
"Get": > "Get": >
def GetLnum(): number def GetLnum(): number
@ -181,6 +183,7 @@ Simplifying the new() method ~
Many constructors take values for the object members. Thus you very often see Many constructors take values for the object members. Thus you very often see
this pattern: > this pattern: >
class SomeClass
this.lnum: number this.lnum: number
this.col: number this.col: number
@ -188,6 +191,7 @@ this pattern: >
this.lnum = lnum this.lnum = lnum
this.col = col this.col = col
enddef enddef
endclass
Not only is this text you need to write, it also has the type of each member Not only is this text you need to write, it also has the type of each member
twice. Since this is so common a shorter way to write new() is provided: > twice. Since this is so common a shorter way to write new() is provided: >
@ -197,8 +201,24 @@ twice. Since this is so common a shorter way to write new() is provided: >
The semantics are easy to understand: Providing the object member name, The semantics are easy to understand: Providing the object member name,
including "this.", as the argument to new() means the value provided in the including "this.", as the argument to new() means the value provided in the
new() call is assigned to that object member. This mechanism is coming from new() call is assigned to that object member. This mechanism comes from the
the Dart language. Dart language.
Putting together this way of using new() and making the members public results
in a much shorter class definition as what we started with: >
class TextPosition
public this.lnum: number
public this.col: number
def new(this.lnum, this.col)
enddef
def SetPosition(lnum: number, col: number)
this.lnum = lnum
this.col = col
enddef
endclass
The sequence of constructing a new object is: The sequence of constructing a new object is:
1. Memory is allocated and cleared. All values are zero/false/empty. 1. Memory is allocated and cleared. All values are zero/false/empty.
@ -208,22 +228,69 @@ The sequence of constructing a new object is:
3. Arguments in the new() method in the "this.name" form are assigned. 3. Arguments in the new() method in the "this.name" form are assigned.
4. The body of the new() method is executed. 4. The body of the new() method is executed.
TODO: for a sub-class the constructor of the parent class will be invoked If the class extends a parent class, the same thing happens. In the second
somewhere. step the members of the parent class are done first. There is no need to call
"super()" or "new()" on the parent.
============================================================================== ==============================================================================
3. Using an abstract class *Vim9-abstract-class* 3. class members and functions *Vim9-class-member*
*:static* *E1337* *E1338*
Class members are declared with "static". They are used by the name without a
prefix: >
class OtherThing
this.size: number
static totalSize: number
def new(this.size)
totalSize += this.size
enddef
endclass
< *E1340* *E1341*
Since the name is used as-is, shadowing the name by a function argument name
or local variable name is not allowed.
Just like object members the access can be made private by using an underscore
as the first character in the name, and it can be made public by prefixing
"public": >
class OtherThing
static total: number # anybody can read, only class can write
static _sum: number # only class can read and write
public static result: number # anybody can read and write
endclass
<
*class-function*
Class functions are also declared with "static". They have no access to
object members, they cannot use the "this" keyword. >
class OtherThing
this.size: number
static totalSize: number
# Clear the total size and return the value it had before.
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
Inside the class the function can be called by name directly, outside the
class the class name must be prefixed: `OtherThing.ClearTotalSize()`.
==============================================================================
4. Using an abstract class *Vim9-abstract-class*
An abstract class forms the base for at least one sub-class. In the class An abstract class forms the base for at least one sub-class. In the class
model one often finds that a few classes have the same properties that can be model one often finds that a few classes have the same properties that can be
shared, but a class with those properties does not have enough state to create shared, but a class with these properties does not have enough state to create
an object from. A sub-class must extend the abstract class and add the an object from. A sub-class must extend the abstract class and add the
missing state and/or methods before it can be used to create objects for. missing state and/or methods before it can be used to create objects for.
An abstract class does not have a new() method.
For example, a Shape class could store a color and thickness. You cannot For example, a Shape class could store a color and thickness. You cannot
create a Shape object, it is missing the information about what kind of shape create a Shape object, it is missing the information about what kind of shape
it is. The Shape class functions as the base for a Square and a Triangle it is. The Shape class functions as the base for a Square and a Triangle
@ -249,51 +316,13 @@ class, for which objects can be created. Example: >
enddef enddef
endclass endclass
< <
*class-member* *:static* *E1337* *E1338* An abstract class is defined the same way as a normal class, except that it
Class members are declared with "static". They are used by the name without a does not have any new() method. *E1359*
prefix: >
class OtherThing
this.size: number
static totalSize: number
def new(this.size)
totalSize += this.size
enddef
endclass
< *E1340* *E1341*
Since the name is used as-is, shadowing the name by a function argument name
or variable name is not allowed.
Just like object members the access can be made private by using an underscore
as the first character in the name, and it can be made public by prefixing
"public": >
class OtherThing
static total: number # anybody can read, only class can write
static _sum: number # only class can read and write
public static result: number # anybody can read and write
endclass
<
*class-function*
Class functions are also declared with "static". They have no access to
object members, they cannot use the "this" keyword. >
class OtherThing
this.size: number
static totalSize: number
" Clear the total size and return the value it had before.
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
============================================================================== ==============================================================================
4. Using an interface *Vim9-using-interface* 5. Using an interface *Vim9-using-interface*
The example above with Shape, Square and Triangle can be made more useful if The example above with Shape, Square and Triangle can be made more useful if
we add a method to compute the surface of the object. For that we create the we add a method to compute the surface of the object. For that we create the
@ -348,7 +377,7 @@ The interface name can be used as a type: >
============================================================================== ==============================================================================
5. More class details *Vim9-class* *Class* *class* 6. More class details *Vim9-class* *Class* *class*
Defining a class ~ Defining a class ~
*:class* *:endclass* *:abstract* *:class* *:endclass* *:abstract*
@ -386,12 +415,52 @@ once. They can appear in any order, although this order is recommended: >
extends ClassName extends ClassName
implements InterfaceName, OtherInterface implements InterfaceName, OtherInterface
specifies SomeInterface specifies SomeInterface
< *extends* < *E1355*
Each member and function name can be used only once. It is not possible to
define a function with the same name and different type of arguments.
Extending a class ~
*extends*
A class can extend one other class. *E1352* *E1353* *E1354* A class can extend one other class. *E1352* *E1353* *E1354*
The basic idea is to build on top of an existing class, add properties to it.
The extended class is called the "base class" or "super class". The new class
is called the "child class".
Object members from the base class are all taken over by the child class. It
is not possible to override them (unlike some other languages).
*E1356* *E1357* *E1358*
Object methods of the base class can be overruled. The signature (arguments,
argument types and return type) must be exactly the same. The method of the
base class can be called by prefixing "super.".
Other object methods of the base class are taken over by the child class.
Class functions, including functions starting with "new", can be overruled,
like with object methods. The function on the base class can be called by
prefixing the name of the class (for class functions) or "super.".
Unlike other languages, the constructor of the base class does not need to be
invoked. In fact, it cannot be invoked. If some initialization from the base
class also needs to be done in a child class, put it in an object method and
call that method from every constructor().
If the base class did not specify a new() function then one was automatically
created. This function will not be taken over by the child class. The child
class can define its own new() function, or, if there isn't one, a new()
function will be added automatically.
A class implementing an interface ~
*implements* *E1346* *E1347* *implements* *E1346* *E1347*
A class can implement one or more interfaces. The "implements" keyword can A class can implement one or more interfaces. The "implements" keyword can
only appear once *E1350* . Multiple interfaces can be specified, separated by only appear once *E1350* . Multiple interfaces can be specified, separated by
commas. Each interface name can appear only once. *E1351* commas. Each interface name can appear only once. *E1351*
A class defining an interface ~
*specifies* *specifies*
A class can declare its interface, the object members and methods, with a A class can declare its interface, the object members and methods, with a
named interface. This avoids the need for separately specifying the named interface. This avoids the need for separately specifying the
@ -528,7 +597,7 @@ constructor methods.
============================================================================== ==============================================================================
6. Type definition *Vim9-type* *:type* 7. Type definition *Vim9-type* *:type*
A type definition is giving a name to a type specification. For Example: > A type definition is giving a name to a type specification. For Example: >
@ -539,7 +608,7 @@ TODO: more explanation
============================================================================== ==============================================================================
7. Enum *Vim9-enum* *:enum* *:endenum* 8. Enum *Vim9-enum* *:enum* *:endenum*
An enum is a type that can have one of a list of values. Example: > An enum is a type that can have one of a list of values. Example: >

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Dec 19 " Last Change: 2023 Feb 02
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")

View File

@ -3,9 +3,9 @@
" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org> " Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de> " Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
" Stefano Zacchiroli <zack@debian.org> " Stefano Zacchiroli <zack@debian.org>
" Last Change: 2022 Jul 25 " Last Change: 2023 Jan 16
" License: Vim License " License: Vim License
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/debchangelog.vim
" Bug completion requires apt-listbugs installed for Debian packages or " Bug completion requires apt-listbugs installed for Debian packages or
" python-launchpadlib installed for Ubuntu packages " python-launchpadlib installed for Ubuntu packages
@ -35,14 +35,14 @@ if exists('g:did_changelog_ftplugin')
finish finish
endif endif
" Don't load another plugin (this is global)
let g:did_changelog_ftplugin = 1
" Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise " Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise
" <CR> would not be recognized. See ":help 'cpoptions'". " <CR> would not be recognized. See ":help 'cpoptions'".
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
" Don't load another plugin (this is global)
let g:did_changelog_ftplugin = 1
" {{{1 GUI menu " {{{1 GUI menu
" Helper functions returning various data. " Helper functions returning various data.

View File

@ -2,8 +2,8 @@
" Language: Debian control files " Language: Debian control files
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Former Maintainer: Pierre Habouzit <madcoder@debian.org> " Former Maintainer: Pierre Habouzit <madcoder@debian.org>
" Last Change: 2018-01-28 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/debcontrol.vim
" Do these settings once per buffer " Do these settings once per buffer
if exists('b:did_ftplugin') if exists('b:did_ftplugin')

View File

@ -1,9 +1,9 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Logcheck " Language: Logcheck
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Last Change: 2018 Dec 27 " Last Change: 2023 Jan 16
" License: Vim License " License: Vim License
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/logcheck.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/logcheck.vim
if exists('b:did_ftplugin') if exists('b:did_ftplugin')
finish finish

View File

@ -887,3 +887,55 @@ if true
elseif elseif
endif endif
" END_INDENT " END_INDENT
" START_INDENT
if (
true)
&& true
echo
endif
" END_INDENT
" START_INDENT
abstract class Shape
this.color = Color.Black
this.thickness = 10
endclass
" END_INDENT
" START_INDENT
class OtherThing
this.size: number
static totalSize: number
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
" END_INDENT
" START_INDENT
interface HasSurface
this.size: number
def Surface(): number
endinterface
" END_INDENT
" START_INDENT
interface EnterExit
def Enter(): void
def Exit(): void
endinterface
" END_INDENT
" START_INDENT
enum Color
White
Red
Green
Blue
Black
endenum
" END_INDENT

View File

@ -887,3 +887,55 @@ if true
elseif elseif
endif endif
" END_INDENT " END_INDENT
" START_INDENT
if (
true)
&& true
echo
endif
" END_INDENT
" START_INDENT
abstract class Shape
this.color = Color.Black
this.thickness = 10
endclass
" END_INDENT
" START_INDENT
class OtherThing
this.size: number
static totalSize: number
static def ClearTotalSize(): number
var prev = totalSize
totalSize = 0
return prev
enddef
endclass
" END_INDENT
" START_INDENT
interface HasSurface
this.size: number
def Surface(): number
endinterface
" END_INDENT
" START_INDENT
interface EnterExit
def Enter(): void
def Exit(): void
endinterface
" END_INDENT
" START_INDENT
enum Color
White
Red
Green
Blue
Black
endenum
" END_INDENT

View File

@ -1,6 +1,6 @@
" Vim plugin for converting a syntax highlighted file to HTML. " Vim plugin for converting a syntax highlighted file to HTML.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2019 Nov 13 " Last Change: 2023 Jan 01
" "
" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and " The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
" $VIMRUNTIME/syntax/2html.vim " $VIMRUNTIME/syntax/2html.vim
@ -8,11 +8,23 @@
if exists('g:loaded_2html_plugin') if exists('g:loaded_2html_plugin')
finish finish
endif endif
let g:loaded_2html_plugin = 'vim8.1_v2' let g:loaded_2html_plugin = 'vim9.0_v1'
" "
" Changelog: {{{ " Changelog: {{{
" 8.1_v2 (this version): - Fix Bitbucket issue #19: fix calculation of tab " 9.0_v1 (this version): - Implement g:html_no_doc and g:html_no_modeline
" for diff mode. Add tests.
" (Vim 9.0.1122): NOTE: no version string update for this version!
" - Bugfix for variable name in g:html_no_doc
" (Vim 9.0.0819): NOTE: no version string update for this version!
" - Add options g:html_no_doc, g:html_no_lines,
" and g:html_no_modeline (partially included in Vim
" runtime prior to version string update).
" - Updates for new Vim9 string append style (i.e. use
" ".." instead of ".")
"
" 8.1 updates: {{{
" 8.1_v2 (Vim 8.1.2312): - Fix SourceForge issue #19: fix calculation of tab
" stop position to use in expanding a tab, when that " stop position to use in expanding a tab, when that
" tab occurs after a syntax match which in turn " tab occurs after a syntax match which in turn
" comes after previously expanded tabs. " comes after previously expanded tabs.
@ -20,17 +32,17 @@ let g:loaded_2html_plugin = 'vim8.1_v2'
" destination file to ignore FileType events; " destination file to ignore FileType events;
" speeds up processing when the destination file " speeds up processing when the destination file
" already exists and HTML highlight takes too long. " already exists and HTML highlight takes too long.
" - Fix Bitbucket issue #20: progress bar could not be " - Fix SourceForge issue #20: progress bar could not be
" seen when DiffDelete background color matched " seen when DiffDelete background color matched
" StatusLine background color. Added TOhtmlProgress " StatusLine background color. Added TOhtmlProgress
" highlight group for manual user override, but " highlight group for manual user override, but
" calculate it to be visible compared to StatusLine " calculate it to be visible compared to StatusLine
" by default. " by default.
" - Fix Bitbucket issue #1: Remove workaround for old " - Fix SourceForge issue #1: Remove workaround for old
" browsers which don't support 'ch' CSS unit, since " browsers which don't support 'ch' CSS unit, since
" all modern browsers, including IE>=9, support it. " all modern browsers, including IE>=9, support it.
" - Fix Bitbucket issue #10: support termguicolors " - Fix SourceForge issue #10: support termguicolors
" - Fix Bitbucket issue #21: default to using " - Fix SourceForge issue #21: default to using
" generated content instead of <input> tags for " generated content instead of <input> tags for
" uncopyable text, so that text is correctly " uncopyable text, so that text is correctly
" prevented from being copied in chrome. Use " prevented from being copied in chrome. Use
@ -41,13 +53,14 @@ let g:loaded_2html_plugin = 'vim8.1_v2'
" - Fix fallback sizing of <input> tags for browsers " - Fix fallback sizing of <input> tags for browsers
" without "ch" support. " without "ch" support.
" - Fix cursor on unselectable diff filler text. " - Fix cursor on unselectable diff filler text.
" 8.1_v1 (Vim 8.1.0528): - Fix Bitbucket issue #6: Don't generate empty " 8.1_v1 (Vim 8.1.0528): - Fix SourceForge issue #6: Don't generate empty
" script tag. " script tag.
" - Fix Bitbucket issue #5: javascript should " - Fix SourceForge issue #5: javascript should
" declare variables with "var". " declare variables with "var".
" - Fix Bitbucket issue #13: errors thrown sourcing " - Fix SourceForge issue #13: errors thrown sourcing
" 2html.vim directly when plugins not loaded. " 2html.vim directly when plugins not loaded.
" - Fix Bitbucket issue #16: support 'vartabstop'. " - Fix SourceForge issue #16: support 'vartabstop'.
"}}}
" "
" 7.4 updates: {{{ " 7.4 updates: {{{
" 7.4_v2 (Vim 7.4.0899): Fix error raised when converting a diff containing " 7.4_v2 (Vim 7.4.0899): Fix error raised when converting a diff containing
@ -152,7 +165,7 @@ let g:loaded_2html_plugin = 'vim8.1_v2'
" TODO: {{{ " TODO: {{{
" * Check the issue tracker: " * Check the issue tracker:
" https://bitbucket.org/fritzophrenic/vim-tohtml/issues?status=new&status=open " https://sourceforge.net/p/vim-tohtml/issues/search/?q=%21status%3Aclosed
" * Options for generating the CSS in external style sheets. New :TOcss " * Options for generating the CSS in external style sheets. New :TOcss
" command to convert the current color scheme into a (mostly) generic CSS " command to convert the current color scheme into a (mostly) generic CSS
" stylesheet which can be re-used. Alternate stylesheet support? Good start " stylesheet which can be re-used. Alternate stylesheet support? Good start

View File

@ -1,6 +1,6 @@
" Vim syntax support file " Vim syntax support file
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2022 Dec 26 " Last Change: 2023 Jan 01
" "
" Additional contributors: " Additional contributors:
" "

View File

@ -2,8 +2,8 @@
" Language: automake Makefile.am " Language: automake Makefile.am
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Former Maintainer: John Williams <jrw@pobox.com> " Former Maintainer: John Williams <jrw@pobox.com>
" Last Change: 2018 Dec 27 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/automake.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/automake.vim
" "
" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain " XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
" it only because patches have been submitted for it by Debian users and the " it only because patches have been submitted for it by Debian users and the

View File

@ -3,8 +3,8 @@
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org> " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org> " Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2022 Oct 29 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debchangelog.vim
" Standard syntax initialization " Standard syntax initialization
if exists('b:current_syntax') if exists('b:current_syntax')

View File

@ -3,8 +3,8 @@
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org> " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org> " Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2022 May 11 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debcontrol.vim
" Standard syntax initialization " Standard syntax initialization
if exists('b:current_syntax') if exists('b:current_syntax')

View File

@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Debian copyright file " Language: Debian copyright file
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Last Change: 2019 Sep 07 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcopyright.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debcopyright.vim
" Standard syntax initialization " Standard syntax initialization
if exists('b:current_syntax') if exists('b:current_syntax')

View File

@ -2,8 +2,8 @@
" Language: Debian sources.list " Language: Debian sources.list
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl> " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2022 Oct 29 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debsources.vim
" Standard syntax initialization " Standard syntax initialization
if exists('b:current_syntax') if exists('b:current_syntax')
@ -14,7 +14,7 @@ endif
syn case match syn case match
" A bunch of useful keywords " A bunch of useful keywords
syn match debsourcesKeyword /\(deb-src\|deb\|main\|contrib\|non-free\|restricted\|universe\|multiverse\)/ syn match debsourcesKeyword /\(deb-src\|deb\|main\|contrib\|non-free\|non-free-firmware\|restricted\|universe\|multiverse\)/
" Match comments " Match comments
syn match debsourcesComment /#.*/ contains=@Spell syn match debsourcesComment /#.*/ contains=@Spell

View File

@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Debian DEP3 Patch headers " Language: Debian DEP3 Patch headers
" Maintainer: Gabriel Filion <gabster@lelutin.ca> " Maintainer: Gabriel Filion <gabster@lelutin.ca>
" Last Change: 2022 Apr 06 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/dep3patch.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/dep3patch.vim
" "
" Specification of the DEP3 patch header format is available at: " Specification of the DEP3 patch header format is available at:
" https://dep-team.pages.debian.net/deps/dep3/ " https://dep-team.pages.debian.net/deps/dep3/

View File

@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: FORTH " Language: FORTH
" Current Maintainer: Johan Kotlinski <kotlinski@gmail.com> " Current Maintainer: Johan Kotlinski <kotlinski@gmail.com>
" Previous Maintainer: Christian V. J. Brüssow <cvjb@cvjb.de> " Previous Maintainer: Christian V. J. Br<EFBFBD>ssow <cvjb@cvjb.de>
" Last Change: 2018-03-29 " Last Change: 2023-01-12
" Filenames: *.fs,*.ft " Filenames: *.fs,*.ft
" URL: https://github.com/jkotlinski/forth.vim " URL: https://github.com/jkotlinski/forth.vim
@ -23,7 +23,6 @@ syn case ignore
" Some special, non-FORTH keywords " Some special, non-FORTH keywords
syn keyword forthTodo contained TODO FIXME XXX syn keyword forthTodo contained TODO FIXME XXX
syn match forthTodo contained 'Copyright\(\s([Cc])\)\=\(\s[0-9]\{2,4}\)\='
" Characters allowed in keywords " Characters allowed in keywords
" I don't know if 128-255 are allowed in ANS-FORTH " I don't know if 128-255 are allowed in ANS-FORTH
@ -98,13 +97,16 @@ syn keyword forthEndOfColonDef ; ;M ;m
syn keyword forthEndOfClassDef ;class syn keyword forthEndOfClassDef ;class
syn keyword forthEndOfObjectDef ;object syn keyword forthEndOfObjectDef ;object
syn keyword forthDefine CONSTANT 2CONSTANT FCONSTANT VARIABLE 2VARIABLE syn keyword forthDefine CONSTANT 2CONSTANT FCONSTANT VARIABLE 2VARIABLE
syn keyword forthDefine FVARIABLE CREATE USER VALUE TO DEFER IS DOES> IMMEDIATE syn keyword forthDefine FVARIABLE CREATE USER VALUE TO DEFER IS <BUILDS DOES> IMMEDIATE
syn keyword forthDefine COMPILE-ONLY COMPILE RESTRICT INTERPRET POSTPONE EXECUTE syn keyword forthDefine COMPILE-ONLY COMPILE RESTRICT INTERPRET POSTPONE EXECUTE
syn keyword forthDefine LITERAL CREATE-INTERPRET/COMPILE INTERPRETATION> syn keyword forthDefine LITERAL CREATE-INTERPRET/COMPILE INTERPRETATION>
syn keyword forthDefine <INTERPRETATION COMPILATION> <COMPILATION ] LASTXT syn keyword forthDefine <INTERPRETATION COMPILATION> <COMPILATION ] LASTXT
syn keyword forthDefine COMP' POSTPONE, FIND-NAME NAME>INT NAME?INT NAME>COMP syn keyword forthDefine COMP' POSTPONE, FIND-NAME NAME>INT NAME?INT NAME>COMP
syn keyword forthDefine NAME>STRING STATE C; CVARIABLE BUFFER: MARKER syn keyword forthDefine NAME>STRING STATE C; CVARIABLE BUFFER: MARKER
syn keyword forthDefine , 2, F, C, COMPILE, syn keyword forthDefine , 2, F, C, COMPILE,
syn match forthDefine "\[DEFINED]"
syn match forthDefine "\[UNDEFINED]"
syn match forthDefine "\[IF]"
syn match forthDefine "\[IFDEF]" syn match forthDefine "\[IFDEF]"
syn match forthDefine "\[IFUNDEF]" syn match forthDefine "\[IFUNDEF]"
syn match forthDefine "\[THEN]" syn match forthDefine "\[THEN]"
@ -180,6 +182,7 @@ syn keyword forthBlocks BLOCK-INCLUDED BLK
syn keyword forthMath DECIMAL HEX BASE syn keyword forthMath DECIMAL HEX BASE
syn match forthInteger '\<-\=[0-9]\+.\=\>' syn match forthInteger '\<-\=[0-9]\+.\=\>'
syn match forthInteger '\<&-\=[0-9]\+.\=\>' syn match forthInteger '\<&-\=[0-9]\+.\=\>'
syn match forthInteger '\<#-\=[0-9]\+.\=\>'
" recognize hex and binary numbers, the '$' and '%' notation is for gforth " recognize hex and binary numbers, the '$' and '%' notation is for gforth
syn match forthInteger '\<\$\x*\x\+\>' " *1* --- don't mess syn match forthInteger '\<\$\x*\x\+\>' " *1* --- don't mess
syn match forthInteger '\<\x*\d\x*\>' " *2* --- this order! syn match forthInteger '\<\x*\d\x*\>' " *2* --- this order!
@ -192,18 +195,18 @@ syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe][-+]\d\+\>'
syn region forthComment start='0 \[if\]' end='\[endif\]' end='\[then\]' contains=forthTodo syn region forthComment start='0 \[if\]' end='\[endif\]' end='\[then\]' contains=forthTodo
" Strings " Strings
syn region forthString start=+\.*\"+ end=+"+ end=+$+ syn region forthString start=+\.*\"+ end=+"+ end=+$+ contains=@Spell
" XXX " XXX
syn region forthString start=+s\"+ end=+"+ end=+$+ syn region forthString start=+s\"+ end=+"+ end=+$+ contains=@Spell
syn region forthString start=+s\\\"+ end=+"+ end=+$+ syn region forthString start=+s\\\"+ end=+"+ end=+$+ contains=@Spell
syn region forthString start=+c\"+ end=+"+ end=+$+ syn region forthString start=+c\"+ end=+"+ end=+$+ contains=@Spell
" Comments " Comments
syn match forthComment '\\\s.*$' contains=forthTodo,forthSpaceError syn match forthComment '\\\%(\s.*\)\=$' contains=@Spell,forthTodo,forthSpaceError
syn region forthComment start='\\S\s' end='.*' contains=forthTodo,forthSpaceError syn region forthComment start='\\S\s' end='.*' contains=@Spell,forthTodo,forthSpaceError
syn match forthComment '\.(\s[^)]*)' contains=forthTodo,forthSpaceError syn match forthComment '\.(\s[^)]*)' contains=@Spell,forthTodo,forthSpaceError
syn region forthComment start='\(^\|\s\)\zs(\s' skip='\\)' end=')' contains=forthTodo,forthSpaceError syn region forthComment start='\(^\|\s\)\zs(\s' skip='\\)' end=')' contains=@Spell,forthTodo,forthSpaceError
syn region forthComment start='/\*' end='\*/' contains=forthTodo,forthSpaceError syn region forthComment start='/\*' end='\*/' contains=@Spell,forthTodo,forthSpaceError
" Include files " Include files
syn match forthInclude '^INCLUDE\s\+\k\+' syn match forthInclude '^INCLUDE\s\+\k\+'
@ -260,3 +263,4 @@ let b:current_syntax = "forth"
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet s:cpo_save unlet s:cpo_save
" vim:ts=8:sw=4:nocindent:smartindent: " vim:ts=8:sw=4:nocindent:smartindent:

View File

@ -1,7 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: gpg(1) configuration file " Language: gpg(1) configuration file
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2010-10-14 " Latest Revision: 2010-10-14
" Updated: 2023-01-23 @ObserverOfTime: added a couple of keywords
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@ -12,91 +13,92 @@ set cpo&vim
setlocal iskeyword+=- setlocal iskeyword+=-
syn keyword gpgTodo contained FIXME TODO XXX NOTE syn keyword gpgTodo contained FIXME TODO XXX NOTE
syn region gpgComment contained display oneline start='#' end='$' syn region gpgComment contained display oneline start='#' end='$'
\ contains=gpgTodo,gpgID,@Spell \ contains=gpgTodo,gpgID,@Spell
syn match gpgID contained display '\<\(0x\)\=\x\{8,}\>' syn match gpgID contained display '\<\(0x\)\=\x\{8,}\>'
syn match gpgBegin display '^' skipwhite nextgroup=gpgComment,gpgOption,gpgCommand syn match gpgBegin display '^' skipwhite nextgroup=gpgComment,gpgOption,gpgCommand
syn keyword gpgCommand contained skipwhite nextgroup=gpgArg syn keyword gpgCommand contained skipwhite nextgroup=gpgArg
\ check-sigs decrypt decrypt-files delete-key \ check-sigs decrypt decrypt-files delete-key
\ delete-secret-and-public-key delete-secret-key \ delete-secret-and-public-key delete-secret-key
\ edit-key encrypt-files export export-all \ edit-key encrypt-files export export-all
\ export-ownertrust export-secret-keys \ export-ownertrust export-secret-keys
\ export-secret-subkeys fast-import fingerprint \ export-secret-subkeys fast-import fingerprint
\ gen-prime gen-random import import-ownertrust \ gen-prime gen-random import import-ownertrust
\ list-keys list-public-keys list-secret-keys \ list-keys list-public-keys list-secret-keys
\ list-sigs lsign-key nrsign-key print-md print-mds \ list-sigs lsign-key nrsign-key print-md print-mds
\ recv-keys search-keys send-keys sign-key verify \ recv-keys search-keys send-keys sign-key verify
\ verify-files \ verify-files
syn keyword gpgCommand contained skipwhite nextgroup=gpgArgError syn keyword gpgCommand contained skipwhite nextgroup=gpgArgError
\ check-trustdb clearsign desig-revoke detach-sign \ check-trustdb clearsign desig-revoke detach-sign
\ encrypt gen-key gen-revoke help list-packets \ encrypt gen-key gen-revoke help list-packets
\ rebuild-keydb-caches sign store symmetric \ rebuild-keydb-caches sign store symmetric
\ update-trustdb version warranty \ update-trustdb version warranty
syn keyword gpgOption contained skipwhite nextgroup=gpgArg syn keyword gpgOption contained skipwhite nextgroup=gpgArg
\ attribute-fd cert-digest-algo charset cipher-algo \ attribute-fd cert-digest-algo charset cipher-algo
\ command-fd comment completes-needed compress \ command-fd comment completes-needed compress
\ compress-algo debug default-cert-check-level \ compress-algo debug default-cert-check-level
\ default-key default-preference-list \ default-key default-preference-list
\ default-recipient digest-algo disable-cipher-algo \ default-recipient digest-algo disable-cipher-algo
\ disable-pubkey-algo encrypt-to exec-path \ disable-pubkey-algo encrypt-to exec-path
\ export-options group homedir import-options \ export-options group homedir import-options
\ keyring keyserver keyserver-options load-extension \ keyring keyserver keyserver-options load-extension
\ local-user logger-fd marginals-needed max-cert-depth \ local-user logger-fd marginals-needed max-cert-depth
\ notation-data options output override-session-key \ notation-data options output override-session-key
\ passphrase-fd personal-cipher-preferences \ passphrase-fd personal-cipher-preferences
\ personal-compress-preferences \ personal-compress-preferences
\ personal-digest-preferences photo-viewer \ personal-digest-preferences photo-viewer
\ recipient s2k-cipher-algo s2k-digest-algo s2k-mode \ recipient s2k-cipher-algo s2k-digest-algo s2k-mode
\ secret-keyring set-filename set-policy-url status-fd \ secret-keyring set-filename set-policy-url status-fd
\ trusted-key verify-options keyid-format list-options \ trusted-key verify-options keyid-format list-options
syn keyword gpgOption contained skipwhite nextgroup=gpgArgError \ default-new-key-algo weak-digest
\ allow-freeform-uid allow-non-selfsigned-uid syn keyword gpgOption contained skipwhite nextgroup=gpgArgError
\ allow-secret-key-import always-trust \ allow-freeform-uid allow-non-selfsigned-uid
\ armor ask-cert-expire ask-sig-expire \ allow-secret-key-import always-trust
\ auto-check-trustdb batch debug-all default-comment \ armor ask-cert-expire ask-sig-expire
\ default-recipient-self dry-run emit-version \ auto-check-trustdb batch debug-all default-comment
\ emulate-md-encode-bug enable-special-filenames \ default-recipient-self dry-run emit-version
\ escape-from-lines expert fast-list-mode \ emulate-md-encode-bug enable-special-filenames
\ fixed-list-mode for-your-eyes-only \ escape-from-lines expert fast-list-mode
\ force-mdc force-v3-sigs force-v4-certs \ fixed-list-mode for-your-eyes-only
\ gpg-agent-info ignore-crc-error ignore-mdc-error \ force-mdc force-v3-sigs force-v4-certs
\ ignore-time-conflict ignore-valid-from interactive \ gpg-agent-info ignore-crc-error ignore-mdc-error
\ list-only lock-multiple lock-never lock-once \ ignore-time-conflict ignore-valid-from interactive
\ merge-only no no-allow-non-selfsigned-uid \ list-only lock-multiple lock-never lock-once
\ no-armor no-ask-cert-expire no-ask-sig-expire \ merge-only no no-allow-non-selfsigned-uid
\ no-auto-check-trustdb no-batch no-comment \ no-armor no-ask-cert-expire no-ask-sig-expire
\ no-default-keyring no-default-recipient \ no-auto-check-trustdb no-batch no-comment
\ no-encrypt-to no-expensive-trust-checks \ no-default-keyring no-default-recipient
\ no-expert no-for-your-eyes-only no-force-v3-sigs \ no-encrypt-to no-expensive-trust-checks
\ no-force-v4-certs no-greeting no-literal \ no-expert no-for-your-eyes-only no-force-v3-sigs
\ no-mdc-warning no-options no-permission-warning \ no-force-v4-certs no-greeting no-literal
\ no-pgp2 no-pgp6 no-pgp7 no-random-seed-file \ no-mdc-warning no-options no-permission-warning
\ no-secmem-warning no-show-notation no-show-photos \ no-pgp2 no-pgp6 no-pgp7 no-random-seed-file
\ no-show-policy-url no-sig-cache no-sig-create-check \ no-secmem-warning no-show-notation no-show-photos
\ no-sk-comments no-tty no-utf8-strings no-verbose \ no-show-policy-url no-sig-cache no-sig-create-check
\ no-version not-dash-escaped openpgp pgp2 \ no-sk-comments no-tty no-utf8-strings no-verbose
\ pgp6 pgp7 preserve-permissions quiet rfc1991 \ no-version not-dash-escaped openpgp pgp2
\ set-filesize show-keyring show-notation show-photos \ pgp6 pgp7 preserve-permissions quiet rfc1991
\ show-policy-url show-session-key simple-sk-checksum \ set-filesize show-keyring show-notation show-photos
\ sk-comments skip-verify textmode throw-keyid \ show-policy-url show-session-key simple-sk-checksum
\ try-all-secrets use-agent use-embedded-filename \ sk-comments skip-verify textmode throw-keyid
\ utf8-strings verbose with-colons with-fingerprint \ try-all-secrets use-agent use-embedded-filename
\ with-key-data yes \ utf8-strings verbose with-colons with-fingerprint
\ with-key-data yes
syn match gpgArg contained display '\S\+\(\s\+\S\+\)*' contains=gpgID syn match gpgArg contained display '\S\+\(\s\+\S\+\)*' contains=gpgID
syn match gpgArgError contained display '\S\+\(\s\+\S\+\)*' syn match gpgArgError contained display '\S\+\(\s\+\S\+\)*'
hi def link gpgComment Comment hi def link gpgComment Comment
hi def link gpgTodo Todo hi def link gpgTodo Todo
hi def link gpgID Number hi def link gpgID Number
hi def link gpgOption Keyword hi def link gpgOption Keyword
hi def link gpgCommand Error hi def link gpgCommand Error
hi def link gpgArgError Error hi def link gpgArgError Error
let b:current_syntax = "gpg" let b:current_syntax = "gpg"

31
runtime/syntax/lc.vim Normal file
View File

@ -0,0 +1,31 @@
" Vim syntax file
" Language: Elsa
" Maintainer: Miles Glapa-Grossklag <miles@glapa-grossklag.com>
" Last Change: 2023-01-29
if exists('b:current_syntax')
finish
endif
" Keywords
syntax keyword elsaKeyword let eval
syntax match elsaKeyword "\v:"
highlight link elsaKeyword Keyword
" Comments
setlocal commentstring=--%s
syntax match elsaComment "\v--.*$"
highlight link elsaComment Comment
" Operators
syntax match elsaOperator "\v\="
syntax match elsaOperator "\v\=[abd*~]\>"
syntax match elsaOperator "\v-\>"
syntax match elsaOperator "\v\\"
highlight link elsaOperator Operator
" Definitions
syntax match elsaConstant "\v[A-Z]+[A-Z_0-9]*"
highlight link elsaConstant Constant
let b:current_syntax = 'elsa'

View File

@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: nginx.conf " Language: nginx.conf
" Maintainer: Chris Aumann <me@chr4.org> " Maintainer: Chris Aumann <me@chr4.org>
" Last Change: Apr 15, 2017 " Last Change: Jan 25, 2023
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@ -84,6 +84,8 @@ syn keyword ngxListenOptions default_server contained
syn keyword ngxListenOptions ssl contained syn keyword ngxListenOptions ssl contained
syn keyword ngxListenOptions http2 contained syn keyword ngxListenOptions http2 contained
syn keyword ngxListenOptions spdy contained syn keyword ngxListenOptions spdy contained
syn keyword ngxListenOptions http3 contained
syn keyword ngxListenOptions quic contained
syn keyword ngxListenOptions proxy_protocol contained syn keyword ngxListenOptions proxy_protocol contained
syn keyword ngxListenOptions setfib contained syn keyword ngxListenOptions setfib contained
syn keyword ngxListenOptions fastopen contained syn keyword ngxListenOptions fastopen contained
@ -265,8 +267,16 @@ syn keyword ngxDirective http2_max_concurrent_streams
syn keyword ngxDirective http2_max_field_size syn keyword ngxDirective http2_max_field_size
syn keyword ngxDirective http2_max_header_size syn keyword ngxDirective http2_max_header_size
syn keyword ngxDirective http2_max_requests syn keyword ngxDirective http2_max_requests
syn keyword ngxDirective http2_push
syn keyword ngxDirective http2_push_preload
syn keyword ngxDirective http2_recv_buffer_size syn keyword ngxDirective http2_recv_buffer_size
syn keyword ngxDirective http2_recv_timeout syn keyword ngxDirective http2_recv_timeout
syn keyword ngxDirective http3_hq
syn keyword ngxDirective http3_max_concurrent_pushes
syn keyword ngxDirective http3_max_concurrent_streams
syn keyword ngxDirective http3_push
syn keyword ngxDirective http3_push_preload
syn keyword ngxDirective http3_stream_buffer_size
syn keyword ngxDirective if_modified_since syn keyword ngxDirective if_modified_since
syn keyword ngxDirective ignore_invalid_headers syn keyword ngxDirective ignore_invalid_headers
syn keyword ngxDirective image_filter syn keyword ngxDirective image_filter
@ -444,6 +454,10 @@ syn keyword ngxDirective proxy_temp_path
syn keyword ngxDirective proxy_timeout syn keyword ngxDirective proxy_timeout
syn keyword ngxDirective proxy_upload_rate syn keyword ngxDirective proxy_upload_rate
syn keyword ngxDirective queue syn keyword ngxDirective queue
syn keyword ngxDirective quic_gso
syn keyword ngxDirective quic_host_key
syn keyword ngxDirective quic_mtu
syn keyword ngxDirective quic_retry
syn keyword ngxDirective random_index syn keyword ngxDirective random_index
syn keyword ngxDirective read_ahead syn keyword ngxDirective read_ahead
syn keyword ngxDirective real_ip_header syn keyword ngxDirective real_ip_header
@ -545,8 +559,10 @@ syn keyword ngxDirective ssl_certificate
syn keyword ngxDirective ssl_certificate_key syn keyword ngxDirective ssl_certificate_key
syn keyword ngxDirective ssl_ciphers syn keyword ngxDirective ssl_ciphers
syn keyword ngxDirective ssl_client_certificate syn keyword ngxDirective ssl_client_certificate
syn keyword ngxDirective ssl_conf_command
syn keyword ngxDirective ssl_crl syn keyword ngxDirective ssl_crl
syn keyword ngxDirective ssl_dhparam syn keyword ngxDirective ssl_dhparam
syn keyword ngxDirective ssl_early_data
syn keyword ngxDirective ssl_ecdh_curve syn keyword ngxDirective ssl_ecdh_curve
syn keyword ngxDirective ssl_engine syn keyword ngxDirective ssl_engine
syn keyword ngxDirective ssl_handshake_timeout syn keyword ngxDirective ssl_handshake_timeout
@ -556,6 +572,7 @@ syn keyword ngxSSLPreferServerCiphersOn on contained
syn keyword ngxSSLPreferServerCiphersOff off contained syn keyword ngxSSLPreferServerCiphersOff off contained
syn keyword ngxDirective ssl_preread syn keyword ngxDirective ssl_preread
syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite
syn keyword ngxDirective ssl_reject_handshake
syn match ngxSSLProtocol 'TLSv1' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite syn match ngxSSLProtocol 'TLSv1' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite
syn match ngxSSLProtocol 'TLSv1\.1' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite syn match ngxSSLProtocol 'TLSv1\.1' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite
syn match ngxSSLProtocol 'TLSv1\.2' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite syn match ngxSSLProtocol 'TLSv1\.2' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite
@ -622,6 +639,7 @@ syn keyword ngxDirective uwsgi_buffering
syn keyword ngxDirective uwsgi_buffers syn keyword ngxDirective uwsgi_buffers
syn keyword ngxDirective uwsgi_busy_buffers_size syn keyword ngxDirective uwsgi_busy_buffers_size
syn keyword ngxDirective uwsgi_cache syn keyword ngxDirective uwsgi_cache
syn keyword ngxDirective uwsgi_cache_background_update
syn keyword ngxDirective uwsgi_cache_bypass syn keyword ngxDirective uwsgi_cache_bypass
syn keyword ngxDirective uwsgi_cache_key syn keyword ngxDirective uwsgi_cache_key
syn keyword ngxDirective uwsgi_cache_lock syn keyword ngxDirective uwsgi_cache_lock
@ -2225,6 +2243,19 @@ syn keyword ngxDirectiveThirdParty xss_override_status
syn keyword ngxDirectiveThirdParty xss_check_status syn keyword ngxDirectiveThirdParty xss_check_status
syn keyword ngxDirectiveThirdParty xss_input_types syn keyword ngxDirectiveThirdParty xss_input_types
" CT Module <https://github.com/grahamedgecombe/nginx-ct>
" Certificate Transparency module for nginx
syn keyword ngxDirectiveThirdParty ssl_ct
syn keyword ngxDirectiveThirdParty ssl_ct_static_scts
" Dynamic TLS records patch <https://github.com/cloudflare/sslconfig/blob/master/patches/nginx__dynamic_tls_records.patch>
" TLS Dynamic Record Resizing
syn keyword ngxDirectiveThirdParty ssl_dyn_rec_enable
syn keyword ngxDirectiveThirdParty ssl_dyn_rec_size_hi
syn keyword ngxDirectiveThirdParty ssl_dyn_rec_size_lo
syn keyword ngxDirectiveThirdParty ssl_dyn_rec_threshold
syn keyword ngxDirectiveThirdParty ssl_dyn_rec_timeout
" ZIP Module <https://www.nginx.com/resources/wiki/modules/zip/> " ZIP Module <https://www.nginx.com/resources/wiki/modules/zip/>
" ZIP archiver for nginx " ZIP archiver for nginx

View File

@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh) " Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> " Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int> " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Nov 25, 2022 " Last Change: Dec 20, 2022
" Version: 204 " Version: 205
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax " For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras
@ -190,8 +190,10 @@ syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" ski
" ===== " =====
if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix") if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
syn match shStatement "\<alias\>" syn match shStatement "\<alias\>"
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`" syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]*\)\@=" skip="\\$" end="\>\|`"
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="=" syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]*=\)\@=" skip="\\$" end="="
" syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`"
" syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="="
" Touch: {{{1 " Touch: {{{1
" ===== " =====
@ -333,7 +335,7 @@ syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shComment
" systems too, however, so the following syntax will flag $(..) as " systems too, however, so the following syntax will flag $(..) as
" an Error under /bin/sh. By consensus of vimdev'ers! " an Error under /bin/sh. By consensus of vimdev'ers!
if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix") if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
syn region shCommandSub matchgroup=shCmdSubRegion start="\$(\ze[^(]" skip='\\\\\|\\.' end=")" contains=@shCommandSubList syn region shCommandSub matchgroup=shCmdSubRegion start="\$(\ze[^(]\|$" skip='\\\\\|\\.' end=")" contains=@shCommandSubList
syn region shArithmetic matchgroup=shArithRegion start="\$((" skip='\\\\\|\\.' end="))" contains=@shArithList syn region shArithmetic matchgroup=shArithRegion start="\$((" skip='\\\\\|\\.' end="))" contains=@shArithList
syn region shArithmetic matchgroup=shArithRegion start="\$\[" skip='\\\\\|\\.' end="\]" contains=@shArithList syn region shArithmetic matchgroup=shArithRegion start="\$\[" skip='\\\\\|\\.' end="\]" contains=@shArithList
syn match shSkipInitWS contained "^\s\+" syn match shSkipInitWS contained "^\s\+"
@ -483,7 +485,9 @@ endif
" Parameter Dereferencing: {{{1 " Parameter Dereferencing: {{{1
" ======================== " ========================
if !exists("g:sh_no_error") && !(exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")) " Note: sh04 failure with following line
"if !exists("g:sh_no_error") && !(exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix"))
if !exists("g:sh_no_error")
syn match shDerefWordError "[^}$[~]" contained syn match shDerefWordError "[^}$[~]" contained
endif endif
syn match shDerefSimple "\$\%(\h\w*\|\d\)" nextgroup=@shNoZSList syn match shDerefSimple "\$\%(\h\w*\|\d\)" nextgroup=@shNoZSList

View File

@ -1,2 +1,2 @@
This directory "runtime/syntax/shared" contains Vim script files that are This directory "runtime/syntax/shared" contains Vim script files that are
generated or used by more then one syntax file. generated or used by more than one syntax file.

View File

@ -2,8 +2,8 @@
" Language: tpp - Text Presentation Program " Language: tpp - Text Presentation Program
" Maintainer: Debian Vim Maintainers " Maintainer: Debian Vim Maintainers
" Former Maintainer: Gerfried Fuchs <alfie@ist.org> " Former Maintainer: Gerfried Fuchs <alfie@ist.org>
" Last Change: 2018 Dec 27 " Last Change: 2023 Jan 16
" URL: https://salsa.debian.org/vim-team/vim-debian/master/syntax/tpp.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/tpp.vim
" Filenames: *.tpp " Filenames: *.tpp
" License: BSD " License: BSD
" "

View File

@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Vim 9.0 script " Language: Vim 9.0 script
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> " Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Jan 08, 2023 " Last Change: January 18, 2023
" Version: 9.0-18 " Version: 9.0-21
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
" Automatically generated keyword lists: {{{1 " Automatically generated keyword lists: {{{1
@ -19,12 +19,13 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2 " regular vim commands {{{2
syn keyword vimCommand contained a ar[gs] argg[lobal] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] defer deletl dep diffpu[t] dj[ump] dp earlier echow[indow] endf[unction] ex files fini[sh] folddoc[losed] grepa[dd] helpf[ind] hor[izontal] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xmenu xunme syn keyword vimCommand contained a ar[gs] argl[ocal] bad[d] bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] em[enu] endfo[r] eval f[ile] fina[lly] foldd[oopen] gr[ep] helpc[lose] his[tory] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xr[estore]
syn keyword vimCommand contained ab arga[dd] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec el[se] endfo[r] exi[t] filet fir[st] foldo[pen] gui helpg[rep] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoreme xunmenu syn keyword vimCommand contained ab arga[dd] argu[ment] balt bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] en[dif] endinterface ex files fini[sh] folddoc[losed] grepa[dd] helpf[ind] hor[izontal] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] public py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xunme
syn keyword vimCommand contained abc[lear] argd[elete] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] elsei[f] endt[ry] exp filetype fix[del] for gvim helpt[ags] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xnoremenu xwininfo syn keyword vimCommand contained abc[lear] argd[elete] as[cii] bd[elete] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletep delp diffp[atch] disa[ssemble] doaut ea echon endclass endt[ry] exi[t] filet fir[st] foldo[pen] gui helpg[rep] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo xmenu xunmenu
syn keyword vimCommand contained abo[veleft] argded[upe] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] em[enu] endw[hile] export filt[er] fo[ld] fu[nction] h[elp] hi iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xprop y[ank] syn keyword vimCommand contained abo[veleft] argded[upe] au bel[owright] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] defer deletl dep diffpu[t] dj[ump] dp earlier echow[indow] enddef endw[hile] exp filetype fix[del] for gvim helpt[ags] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp static sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xnoreme xwininfo
syn keyword vimCommand contained addd argdo au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] en[dif] ene[w] exu[sage] fin[d] foldc[lose] go[to] ha[rdcopy] hid[e] if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xr[estore] z[^.=] syn keyword vimCommand contained abstract argdo bN[ext] bf[irst] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec el[se] endenum ene[w] export filt[er] fo[ld] fu[nction] h[elp] hi iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoremenu y[ank]
syn keyword vimCommand contained al[l] arge[dit] bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletep delp diffp[atch] disa[ssemble] doaut ea echon enddef eval f[ile] fina[lly] foldd[oopen] gr[ep] helpc[lose] his[tory] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo syn keyword vimCommand contained addd arge[dit] b[uffer] bl[ast] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] elsei[f] endf[unction] enum exu[sage] fin[d] foldc[lose] go[to] ha[rdcopy] hid[e] if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xprop z[^.=]
syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bm[odified]
syn match vimCommand contained "\<z[-+^.=]\=\>" syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
@ -49,8 +50,8 @@ syn keyword vimOption contained invai invaltkeymap invar invarabicshape invasd i
syn keyword vimOption contained invakm invanti invarab invari invautochdir invautoshelldir invaw invballooneval invbevalterm invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo invendofline invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs invlazyredraw invlisp invloadplugins invlz invmagic invmle invmodelineexpr invmore invmousehide invodev invpi syn keyword vimOption contained invakm invanti invarab invari invautochdir invautoshelldir invaw invballooneval invbevalterm invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo invendofline invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs invlazyredraw invlisp invloadplugins invlz invmagic invmle invmodelineexpr invmore invmousehide invodev invpi
" termcap codes (which can also be set) {{{2 " termcap codes (which can also be set) {{{2
syn keyword vimOption contained t_8b t_8u t_AF t_AL t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_Ds t_EI t_F2 t_F4 t_F6 t_F8 t_fd t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_K8 t_K9 t_kb t_KB t_kd t_KD t_KE t_KG t_KH t_KI t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_Ri t_RI t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_Si t_SI t_so t_sr t_SR t_ST t_te t_Te t_TE t_ti t_TI t_ts t_Ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR syn keyword vimOption contained t_8b t_8u t_AF t_AL t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_Ds t_EI t_F2 t_F4 t_F6 t_F8 t_fd t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_K8 t_K9 t_kb t_KB t_kd t_KD t_KE t_KG t_KH t_KI t_KK t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_Ri t_RI t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_Si t_SI t_so t_sr t_SR t_ST t_te t_Te t_TE t_ti t_TI t_ts t_Ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR
syn keyword vimOption contained t_8f t_AB t_al t_AU t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_ds t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_fe t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7 t_k8 t_k9 t_KA t_kB t_KC t_kD t_ke t_KF t_kh t_kI t_KJ syn keyword vimOption contained t_8f t_AB t_al t_AU t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_ds t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_fe t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7 t_k8 t_k9 t_KA t_kB t_KC t_kD t_ke t_KF t_kh t_kI t_KJ t_kl
syn match vimOption contained "t_%1" syn match vimOption contained "t_%1"
syn match vimOption contained "t_#2" syn match vimOption contained "t_#2"
syn match vimOption contained "t_#4" syn match vimOption contained "t_#4"
@ -78,12 +79,12 @@ syn match vimHLGroup contained "Conceal"
syn case match syn case match
" Function Names {{{2 " Function Names {{{2
syn keyword vimFuncName contained abs argc assert_equal assert_match atan balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled extendnew findfile fnameescape foldtextresult get getchar getcmdline getcurpos getfsize getloclist getpos gettabinfo getwinpos globpath histdel hlset input insert islocked job_start json_decode libcallnr listener_add luaeval mapset matchend max nextnonblank popup_atcursor popup_dialog popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdline setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_channel test_null_partial test_setmouse timer_info tolower type values winbufnr win_getid win_id2win winnr win_splitmove syn keyword vimFuncName contained abs argc assert_equal assert_match atan balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled extendnew findfile fnameescape foldtextresult get getchangelist getcmdcompltype getcompletion getfperm getline getpid getscriptinfo getwininfo glob2regpat histadd hlID indexof inputsecret isinf job_setoptions js_encode libcall list2str log10 mapnew matchdelete matchstrpos mzeval popup_atcursor popup_dialog popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdline setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_channel test_null_partial test_setmouse timer_info tolower type values winbufnr win_getid win_id2win winnr win_splitmove
syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp feedkeys flatten fnamemodify foreground getbufinfo getcharmod getcmdpos getcursorcharpos getftime getmarklist getqflist gettabvar getwinposx has histget hostname inputdialog interrupt isnan job_status json_encode line listener_flush map match matchfuzzy menu_info nr2char popup_beval popup_filter_menu popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_dict test_null_string test_settime timer_pause toupper typename virtcol wincol win_gettype winlayout winrestcmd winwidth syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp feedkeys flatten fnamemodify foreground getbufinfo getchar getcmdline getcurpos getfsize getloclist getpos gettabinfo getwinpos globpath histdel hlset input insert islocked job_start json_decode libcallnr listener_add luaeval mapset matchend max nextnonblank popup_beval popup_filter_menu popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_dict test_null_string test_settime timer_pause toupper typename virtcol wincol win_gettype winlayout winrestcmd winwidth
syn keyword vimFuncName contained add arglistid assert_exception assert_notequal autocmd_add blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filereadable flattennew foldclosed fullcommand getbufline getcharpos getcmdscreenpos getcwd getftype getmatches getreg gettabwinvar getwinposy has_key histnr iconv inputlist invert items job_stop keys line2byte listener_remove maparg matchadd matchfuzzypos min or popup_clear popup_filter_yesno popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapfilelist synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_function test_option_not_set test_srand_seed timer_start tr undofile virtcol2col windowsversion win_gotoid winline winrestview wordcount syn keyword vimFuncName contained add arglistid assert_exception assert_notequal autocmd_add blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filereadable flattennew foldclosed fullcommand getbufline getcharmod getcmdpos getcursorcharpos getftime getmarklist getqflist gettabvar getwinposx has histget hostname inputdialog interrupt isnan job_status json_encode line listener_flush map match matchfuzzy menu_info nr2char popup_clear popup_filter_yesno popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapfilelist synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_function test_option_not_set test_srand_seed timer_start tr undofile virtcol2col windowsversion win_gotoid winline winrestview wordcount
syn keyword vimFuncName contained and argv assert_fails assert_notmatch autocmd_delete browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filewritable float2nr foldclosedend funcref getbufoneline getcharsearch getcmdtype getenv getimstatus getmousepos getreginfo gettagstack getwinvar haslocaldir hlexists indent inputrestore isabsolutepath job_getchannel join keytrans lispindent localtime mapcheck matchaddpos matchlist mkdir pathshorten popup_close popup_findecho popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_mswin_event test_null_job test_override test_unknown timer_stop trim undotree visualmode win_execute winheight win_move_separator winsaveview writefile syn keyword vimFuncName contained and argv assert_fails assert_notmatch autocmd_delete browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filewritable float2nr foldclosedend funcref getbufoneline getcharpos getcmdscreenpos getcwd getftype getmatches getreg gettabwinvar getwinposy has_key histnr iconv inputlist invert items job_stop keys line2byte listener_remove maparg matchadd matchfuzzypos min or popup_close popup_findecho popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_mswin_event test_null_job test_override test_unknown timer_stop trim undotree visualmode win_execute winheight win_move_separator winsaveview writefile
syn keyword vimFuncName contained append asin assert_false assert_report autocmd_get browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath expr10 filter floor foldlevel function getbufvar getcharstr getcmdwintype getfontname getjumplist getmouseshape getregtype gettext glob hasmapto hlget index inputsave isdirectory job_info js_decode len list2blob log maplist matcharg matchstr mode perleval popup_create popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor syn keyword vimFuncName contained append asin assert_false assert_report autocmd_get browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath expr10 filter floor foldlevel function getbufvar getcharsearch getcmdtype getenv getimstatus getmousepos getreginfo gettagstack getwinvar haslocaldir hlexists indent inputrestore isabsolutepath job_getchannel join keytrans lispindent localtime mapcheck matchaddpos matchlist mkdir pathshorten popup_create popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extend finddir fmod foldtext garbagecollect getchangelist getcmdcompltype getcompletion getfperm getline getpid getscriptinfo getwininfo glob2regpat histadd hlID indexof inputsecret isinf job_setoptions js_encode libcall list2str log10 mapnew matchdelete matchstrpos mzeval syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extend finddir fmod foldtext garbagecollect getcellwidths getcharstr getcmdwintype getfontname getjumplist getmouseshape getregtype gettext glob hasmapto hlget index inputsave isdirectory job_info js_decode len list2blob log maplist matcharg matchstr mode perleval
"--- syntax here and above generated by mkvimvim --- "--- syntax here and above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1 " Special Vim Highlighting (not automatic) {{{1

View File

@ -1,13 +1,12 @@
" Vim syntax file " Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: XF86Config (XFree86 configuration file) " Language: XF86Config (XFree86 configuration file)
" Former Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz> " Former Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Last Change: 2010 Nov 01 " Last Change By David: 2010 Nov 01
" URL: http://trific.ath.cx/Ftp/vim/syntax/xf86conf.vim " Last Change: 2023 Jan 23
" Required Vim Version: 6.0 " Required Vim Version: 6.0
" "
" Options: let xf86conf_xfree86_version = 3 or 4 " Options: let xf86conf_xfree86_version = 3 or 4
" to force XFree86 3.x or 4.x XF86Config syntax " to force XFree86 3.x or 4.x XF86Config syntax
" Setup " Setup
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
@ -147,6 +146,8 @@ syn keyword xf86confKeyword Hskew HTimings InputDevice IOBase MemBase Mode nextg
syn keyword xf86confKeyword Modes Ramdac Screen TextClockFreq UseModes VendorName nextgroup=xf86confComment,xf86confValue syn keyword xf86confKeyword Modes Ramdac Screen TextClockFreq UseModes VendorName nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword VertRefresh VideoRam ViewPort Virtual VScan VTimings nextgroup=xf86confComment,xf86confValue syn keyword xf86confKeyword VertRefresh VideoRam ViewPort Virtual VScan VTimings nextgroup=xf86confComment,xf86confValue
syn keyword xf86confKeyword Weight White nextgroup=xf86confComment,xf86confValue syn keyword xf86confKeyword Weight White nextgroup=xf86confComment,xf86confValue
syn keyword xf86confMatch MatchDevicePath MatchDriver MatchLayout MatchOS MatchPnPID MatchProduct MatchTag MatchUSBID MatchVendor nextgroup=xf86confComment,xf86confString skipwhite
syn keyword xf86confMatch MatchIsPointer MatchIsKeyboard MatchIsTouchpad MatchIsTouchscreen MatchIsJoystick nextgroup=xf86confComment,xf86confValue skipwhite
syn keyword xf86confModeLine ModeLine nextgroup=xf86confComment,xf86confModeLineValue skipwhite skipnl syn keyword xf86confModeLine ModeLine nextgroup=xf86confComment,xf86confModeLineValue skipwhite skipnl
" Constants " Constants
@ -185,6 +186,7 @@ hi def link xf86confOctalNumberError xf86confError
hi def link xf86confError Error hi def link xf86confError Error
hi def link xf86confOption xf86confKeyword hi def link xf86confOption xf86confKeyword
hi def link xf86confMatch xf86confKeyword
hi def link xf86confModeLine xf86confKeyword hi def link xf86confModeLine xf86confKeyword
hi def link xf86confKeyword Type hi def link xf86confKeyword Type

View File

@ -335,7 +335,7 @@ Doubling to operate on a line also works for operators mentioned below.
5. Now type a capital U to return the line to its original state. 5. Now type a capital U to return the line to its original state.
6. Now type u a few times to undo the U and preceding commands. 6. Now type u a few times to undo the U and preceding commands.
7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times 7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times
to redo the commands (undo the undo's). to redo the commands (undo the undos).
---> Fiix the errors oon thhis line and reeplace them witth undo. ---> Fiix the errors oon thhis line and reeplace them witth undo.
@ -365,7 +365,7 @@ Doubling to operate on a line also works for operators mentioned below.
8. To undo previous actions, type: u (lowercase u) 8. To undo previous actions, type: u (lowercase u)
To undo all the changes on a line, type: U (capital U) To undo all the changes on a line, type: U (capital U)
To undo the undo's, type: CTRL-R To undo the undos, type: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.1: THE PUT COMMAND Lesson 3.1: THE PUT COMMAND

View File

@ -335,7 +335,7 @@ Doubling to operate on a line also works for operators mentioned below.
5. Now type a capital U to return the line to its original state. 5. Now type a capital U to return the line to its original state.
6. Now type u a few times to undo the U and preceding commands. 6. Now type u a few times to undo the U and preceding commands.
7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times 7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times
to redo the commands (undo the undo's). to redo the commands (undo the undos).
---> Fiix the errors oon thhis line and reeplace them witth undo. ---> Fiix the errors oon thhis line and reeplace them witth undo.
@ -365,7 +365,7 @@ Doubling to operate on a line also works for operators mentioned below.
8. To undo previous actions, type: u (lowercase u) 8. To undo previous actions, type: u (lowercase u)
To undo all the changes on a line, type: U (capital U) To undo all the changes on a line, type: U (capital U)
To undo the undo's, type: CTRL-R To undo the undos, type: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.1: THE PUT COMMAND Lesson 3.1: THE PUT COMMAND

View File

@ -7729,8 +7729,8 @@ msgstr "E1112: L'element de la llista %d no t
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Intervals solapats per a 0x%lx" msgstr "E1113: Intervals solapats per a 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Nom<6F>s es suporten valors de 0x100 o superiors" msgstr "E1114: Nom<6F>s es suporten valors de 0x80 o superiors"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: el quart argument a \"assert_fails()\" ha de ser un n<>mero" msgstr "E1115: el quart argument a \"assert_fails()\" ha de ser un n<>mero"

View File

@ -7836,8 +7836,8 @@ msgstr "E1112: Listenwert %d Zellbreite ung
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: <20>berlappender Bereich f<>r 0x%lx" msgstr "E1113: <20>berlappender Bereich f<>r 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Nur Werte oberhalb 0x100 unterst<73>tzt" msgstr "E1114: Nur Werte oberhalb 0x80 unterst<73>tzt"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" viertes Argument muss eine Zahl sein" msgstr "E1115: \"assert_fails()\" viertes Argument muss eine Zahl sein"

View File

@ -7346,8 +7346,8 @@ msgstr "E1110: Listero %d ne enhavas 3 nombojn"
msgid "E1111: List item %d range invalid" msgid "E1111: List item %d range invalid"
msgstr "E1111: Listero %d havas nevalidan amplekson" msgstr "E1111: Listero %d havas nevalidan amplekson"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Nur valoroj 0x100 kaj pli altaj estas subtenataj" msgstr "E1114: Nur valoroj 0x80 kaj pli altaj estas subtenataj"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: la 4-a argumento de \"assert_fails()\" devas esti nombro" msgstr "E1115: la 4-a argumento de \"assert_fails()\" devas esti nombro"

View File

@ -7809,8 +7809,8 @@ msgstr "E1112: Elemento %d de lista, ancho de celda no válido"
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Rangos superpuestos para 0x%lx" msgstr "E1113: Rangos superpuestos para 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Solo se admiten valores de 0x100 y superiores" msgstr "E1114: Solo se admiten valores de 0x80 y superiores"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: El cuarto argumento \"assert_fails()\" debe ser un número" msgstr "E1115: El cuarto argumento \"assert_fails()\" debe ser un número"

View File

@ -7759,8 +7759,8 @@ msgstr "E1112: Listan kohdan %d soluleveys on viallinen"
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Päällekkäiset arvoalueet osoitteessa 0x%lx" msgstr "E1113: Päällekkäiset arvoalueet osoitteessa 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Vain arvot 0x100:sta eteenpäin kelpaavat" msgstr "E1114: Vain arvot 0x80:sta eteenpäin kelpaavat"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: assert_fails()-funktion neljännen argumentin tulee olla numero" msgstr "E1115: assert_fails()-funktion neljännen argumentin tulee olla numero"

View File

@ -7768,8 +7768,8 @@ msgstr "E1112: Leithead cille neamhbhail
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Raonta forluiteacha ar 0x%lx" msgstr "E1113: Raonta forluiteacha ar 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: N<> thaca<63>tear ach le luachanna 0x100 agus n<>os airde" msgstr "E1114: N<> thaca<63>tear ach le luachanna 0x80 agus n<>os airde"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: N<> m<>r don cheathr<68> harg<72>int ar \"assert_fails()\" a bheith ina huimhir" msgstr "E1115: N<> m<>r don cheathr<68> harg<72>int ar \"assert_fails()\" a bheith ina huimhir"

View File

@ -6995,8 +6995,8 @@ msgstr "E1112: Elemento di Lista %d con larghezza di cella non valida"
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Intervalli sovrapposti per 0x%lx" msgstr "E1113: Intervalli sovrapposti per 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Solo valori 0x100 o più elevati sono supportati" msgstr "E1114: Solo valori 0x80 o più elevati sono supportati"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: Il quarto argomento di \"assert_fails()\" dev'essere un Numero" msgstr "E1115: Il quarto argomento di \"assert_fails()\" dev'essere un Numero"

View File

@ -7702,8 +7702,8 @@ msgstr "E1112:
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: 0x%lx <20><><EFBFBD>ϰϤ<CFB0><CFA4><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD>" msgstr "E1113: 0x%lx <20><><EFBFBD>ϰϤ<CFB0><CFA4><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD>"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: 0x100 <20>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͤ<EFBFBD><CDA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>" msgstr "E1114: 0x80 <20>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͤ<EFBFBD><CDA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" <20><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>Ǥʤ<C7A4><CAA4><EFBFBD><EFBFBD>Фʤ<D0A4><CAA4>ޤ<EFBFBD><DEA4><EFBFBD>" msgstr "E1115: \"assert_fails()\" <20><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>Ǥʤ<C7A4><CAA4><EFBFBD><EFBFBD>Фʤ<D0A4><CAA4>ޤ<EFBFBD><DEA4><EFBFBD>"

View File

@ -7702,8 +7702,8 @@ msgstr "E1112: リストの要素 %d のセル幅が不正です"
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: 0x%lx の範囲が重複しています" msgstr "E1113: 0x%lx の範囲が重複しています"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: 0x100 以上の値しかサポートされていません" msgstr "E1114: 0x80 以上の値しかサポートされていません"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" の第4引数は数字でなければなりません" msgstr "E1115: \"assert_fails()\" の第4引数は数字でなければなりません"

View File

@ -7702,8 +7702,8 @@ msgstr "E1112:
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: 0x%lx <20>͈̔͂<CD88><CD82>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD>" msgstr "E1113: 0x%lx <20>͈̔͂<CD88><CD82>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD>"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: 0x100 <20>ȏ<EFBFBD><C88F>̒l<CC92><6C><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD>|<7C>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD>" msgstr "E1114: 0x80 <20>ȏ<EFBFBD><C88F>̒l<CC92><6C><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD>|<7C>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD>"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" <20>̑<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>͐<EFBFBD><CD90><EFBFBD><EFBFBD>łȂ<C582><C882><EFBFBD><EFBFBD>΂Ȃ<CE82><C882>܂<EFBFBD><DC82><EFBFBD>" msgstr "E1115: \"assert_fails()\" <20>̑<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>͐<EFBFBD><CD90><EFBFBD><EFBFBD>łȂ<C582><C882><EFBFBD><EFBFBD>΂Ȃ<CE82><C882>܂<EFBFBD><DC82><EFBFBD>"

View File

@ -7696,8 +7696,8 @@ msgstr "E1112:
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 0x%lx" msgstr "E1113: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 0x100 <20> <20><><EFBFBD><EFBFBD>" msgstr "E1114: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 0x80 <20> <20><><EFBFBD><EFBFBD>"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "" msgstr ""

View File

@ -7696,8 +7696,8 @@ msgstr "E1112: Элемент %d в списке задаёт неправиль
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Перекрывающиеся диапазоны для 0x%lx" msgstr "E1113: Перекрывающиеся диапазоны для 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Поддерживаются только значения от 0x100 и выше" msgstr "E1114: Поддерживаются только значения от 0x80 и выше"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "" msgstr ""

View File

@ -10,16 +10,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Vim(Serbian)\n" "Project-Id-Version: Vim(Serbian)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-25 15:38+0400\n" "POT-Creation-Date: 2023-02-02 10:20+0400\n"
"PO-Revision-Date: 2022-11-25 15:40+0400\n" "PO-Revision-Date: 2023-02-02 10:54+0400\n"
"Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n" "Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
"Language-Team: Serbian\n" "Language-Team: Serbian\n"
"Language: sr\n" "Language: sr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "ERROR: " msgid "ERROR: "
msgstr "ГРЕШКА: " msgstr "ГРЕШКА: "
@ -1817,8 +1817,8 @@ msgstr "-P <назив родитеља>\tОтвори Vim унутар роди
msgid "--windowid <HWND>\tOpen Vim inside another win32 widget" msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
msgstr "--windowid <HWND>\tОтвори Vim унутар другог win32 виџета" msgstr "--windowid <HWND>\tОтвори Vim унутар другог win32 виџета"
msgid "Seen modifyOtherKeys: true" msgid "Seen modifyOtherKeys: true\n"
msgstr "Уочено modifyOtherKeys: да" msgstr "Уочено modifyOtherKeys: да\n"
msgid "Unknown" msgid "Unknown"
msgstr "Непознато" msgstr "Непознато"
@ -1836,8 +1836,12 @@ msgid "Cleared"
msgstr "Обрисано" msgstr "Обрисано"
#, c-format #, c-format
msgid "Kitty keyboard protocol: %s" msgid "modifyOtherKeys detected: %s\n"
msgstr "Kitty протокол тастатуре: %s" msgstr "Откривено modifyOtherKeys: %s\n"
#, c-format
msgid "Kitty keyboard protocol: %s\n"
msgstr "Kitty протокол тастатуре: %s\n"
msgid "No abbreviation found" msgid "No abbreviation found"
msgstr "Скраћеница није пронађена" msgstr "Скраћеница није пронађена"
@ -7635,8 +7639,8 @@ msgstr "E1112: Ширина ћелије ставке листе %d је нев
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Опсези за 0x%lx се преклапају" msgstr "E1113: Опсези за 0x%lx се преклапају"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Подржавају се само вредности од 0x100 и веће" msgstr "E1114: Подржавају се само вредности од 0x80 и веће"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: „assert_fails()” четврти аргумент мора бити број" msgstr "E1115: „assert_fails()” четврти аргумент мора бити број"
@ -8362,6 +8366,184 @@ msgstr "E1311: Током исписа не може да се врши изме
msgid "E1312: Not allowed to change the window layout in this autocmd" msgid "E1312: Not allowed to change the window layout in this autocmd"
msgstr "E1312: У овој аутокоманди није дозвољено мењање распореда прозора" msgstr "E1312: У овој аутокоманди није дозвољено мењање распореда прозора"
#, c-format
msgid "E1313: Not allowed to add or remove entries (%s)"
msgstr "E1313: Није дозвољено додавање или уклањање ставки (%s)"
#, c-format
msgid "E1314: Class name must start with an uppercase letter: %s"
msgstr "E1314: Име класе мора да почне великим словом: %s"
#, c-format
msgid "E1315: White space required after name: %s"
msgstr "E1315: Након имена мора да стоји празан простор: %s"
msgid "E1316: Class can only be defined in Vim9 script"
msgstr "E1316: Класа може да се дефинише само у Vim9 скрипти"
#, c-format
msgid "E1317: Invalid object member declaration: %s"
msgstr "E1317: Неисправна декларација члана објекта: %s"
#, c-format
msgid "E1318: Not a valid command in a class: %s"
msgstr "E1318: Команда не важи у класи: %s"
msgid "E1319: Using a class as a Number"
msgstr "E1319: Класа се користи као Број"
msgid "E1320: Using an object as a Number"
msgstr "E1320: Објекат се користи као Број"
msgid "E1321: Using a class as a Float"
msgstr "E1321: Класа се користи као Покретни"
msgid "E1322: Using an object as a Float"
msgstr "E1322: Објекат се користи као Покретни"
msgid "E1323: Using a class as a String"
msgstr "E1323: Класа се користи као Стринг"
msgid "E1324: Using an object as a String"
msgstr "E1324: Објекат се користи као Стринг"
#, c-format
msgid "E1325: Method not found on class \"%s\": %s"
msgstr "E1325: Није пронађена метода класе „%s”: %s"
#, c-format
msgid "E1326: Member not found on object \"%s\": %s"
msgstr "E1326: Члан није пронађен у објекту „%s”: %s"
#, c-format
msgid "E1327: Object required, found %s"
msgstr "E1327: Потребан је објекат, пронађено %s"
#, c-format
msgid "E1328: Constructor default value must be v:none: %s"
msgstr "E1328: Подразумевана вредност конструктора мора бити v:none: %s"
#, c-format
msgid "E1329: Cannot get object member type from initializer: %s"
msgstr "E1329: Тип члана објекта не може да се одреди из иницијализатора: %s"
#, c-format
msgid "E1330: Invalid type for object member: %s"
msgstr "E1330: Неисправан тип члана објекта: %s"
msgid "E1331: Public must be followed by \"this\" or \"static\""
msgstr "E1331: Након Public мора да следи „this” или „static”"
#, c-format
msgid "E1332: Public member name cannot start with underscore: %s"
msgstr "E1332: Име Public члана не може почити доњом цртом: %s"
#, c-format
msgid "E1333: Cannot access private member: %s"
msgstr "E1333: Не може да се приступи приватном члану: %s"
#, c-format
msgid "E1334: Object member not found: %s"
msgstr "E1334: Члан објекта није пронађен: %s"
#, c-format
msgid "E1335: Member is not writable: %s"
msgstr "E1335: У члан не може да се уписује: %s"
msgid "E1336: Internal error: shortmess too long"
msgstr "E1336: Интерна грешка: shortmess сувише дугачко"
#, c-format
msgid "E1337: Class member not found: %s"
msgstr "E1337: Није пронађен члан класе: %s"
#, c-format
msgid "E1338: Member not found on class \"%s\": %s"
msgstr "E1338: Није шронаћен члан над класом „%s”: %s"
msgid ""
"E1339: Cannot add a textprop with text after using a textprop with a "
"negative id"
msgstr ""
"E1339: Текст особина са текстом не може да се додан након употребе "
"текст особине са негативним id"
#, c-format
msgid "E1340: Argument already declared in the class: %s"
msgstr "E1340: Аргумент је већ дефинисан у класи: %s"
#, c-format
msgid "E1341: Variable already declared in the class: %s"
msgstr "E1341: Променљива је већ декларисана у класи: %s"
msgid "E1342: Interface can only be defined in Vim9 script"
msgstr "E1342: Интерфејс може да се дефинише само у Vim9 скрипти"
#, c-format
msgid "E1343: Interface name must start with an uppercase letter: %s"
msgstr "E1343: Име интерфејса мора да почне великим словом: %s"
msgid "E1344: Cannot initialize a member in an interface"
msgstr "E1344: Члан не може да се иницијализује у интерфејсу"
#, c-format
msgid "E1345: Not a valid command in an interface: %s"
msgstr "E1345: Команда не важи у интерфејсу: %s"
#, c-format
msgid "E1346: Interface name not found: %s"
msgstr "E1346: Није пронађено име интерфејса: %s"
#, c-format
msgid "E1347: Not a valid interface: %s"
msgstr "E1347: Неважећи интерфејс: %s"
#, c-format
msgid "E1348: Member \"%s\" of interface \"%s\" not implemented"
msgstr "E1348: Члан „%s” интерфејса „%s” није имплементиран"
#, c-format
msgid "E1349: Function \"%s\" of interface \"%s\" not implemented"
msgstr "E1349: Функција „%s” интерфејса „%s” није имплементирана"
msgid "E1350: Duplicate \"implements\""
msgstr "E1350: Дупликат „implements”"
#, c-format
msgid "E1351: Duplicate interface after \"implements\": %s"
msgstr "E1351: Дуплирани интерфејс након „implements”: %s"
msgid "E1352: Duplicate \"extends\""
msgstr "E1352: Дупликат „extends”"
#, c-format
msgid "E1353: Class name not found: %s"
msgstr "E1353: Име класе није пронађено: %s"
#, c-format
msgid "E1354: Cannot extend %s"
msgstr "E1354: Не може да се прошири %s"
#, c-format
msgid "E1355: Duplicate function: %s"
msgstr "E1355: Дуплирана функција: %s"
msgid "E1356: \"super\" must be followed by a dot"
msgstr "E1356: Након „super” мора да следи тачка"
msgid "E1357: Using \"super\" not in a class function"
msgstr "E1357:„super” се користи ван функције класе"
msgid "E1358: Using \"super\" not in a child class"
msgstr "E1358: „super” се не користи у изведеној класи"
msgid "E1359: Cannot define a \"new\" function in an abstract class"
msgstr "E1359: Функција „new” не може да се дефинише у апстрактној класи"
#, c-format
msgid "E476: Invalid command: %s, expected %s"
msgstr "E476: Неважећа команда: %s, очекује се %s"
msgid "--No lines in buffer--" msgid "--No lines in buffer--"
msgstr "--У баферу нема линија--" msgstr "--У баферу нема линија--"
@ -8686,9 +8868,6 @@ msgstr "Уређујте текст фајлове"
msgid "Text;editor;" msgid "Text;editor;"
msgstr "Текст;едитор;" msgstr "Текст;едитор;"
msgid "gvim"
msgstr "gvim"
msgid "Vim" msgid "Vim"
msgstr "Vim" msgstr "Vim"
@ -9360,8 +9539,11 @@ msgstr ""
msgid "list of flags to make messages shorter" msgid "list of flags to make messages shorter"
msgstr "листа заставица за скраћивање порука" msgstr "листа заставица за скраћивање порука"
msgid "show (partial) command keys in the status line" msgid "show (partial) command keys in location given by 'showcmdloc'"
msgstr "у статусној линији се приказују (делимични) тастери команде" msgstr "приказује (делимичне) тастере команде на месту наведеном у 'showcmdloc'"
msgid "location where to show the (partial) command keys for 'showcmd'"
msgstr "место на којем треба да се прикажу (делимични) тастери команде за 'showcmd'"
msgid "display the current mode in the status line" msgid "display the current mode in the status line"
msgstr "у статусној линији се приказује текући режим" msgstr "у статусној линији се приказује текући режим"

View File

@ -7562,8 +7562,8 @@ msgstr "E1112: Liste ögesi %d hücre genişliği geçersiz"
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: 0x%lx için üst üste binen erimler" msgstr "E1113: 0x%lx için üst üste binen erimler"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Yalnızca 0x100 ve daha yüksek değerler destekleniyor" msgstr "E1114: Yalnızca 0x80 ve daha yüksek değerler destekleniyor"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" dördüncü argüman bir sayı olmalıdır" msgstr "E1115: \"assert_fails()\" dördüncü argüman bir sayı olmalıdır"

View File

@ -7869,8 +7869,8 @@ msgstr "E1112:
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 0x%lx" msgstr "E1113: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: ϳ<><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x100 <20> <20><><EFBFBD><EFBFBD>" msgstr "E1114: ϳ<><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x80 <20> <20><><EFBFBD><EFBFBD>"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>assert_fails()<29> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" msgstr "E1115: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>assert_fails()<29> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"

View File

@ -7869,8 +7869,8 @@ msgstr "E1112: Ширина комірки елементу %d списку не
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: Перекриття діапазонів у 0x%lx" msgstr "E1113: Перекриття діапазонів у 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: Підтримуються тільки значення 0x100 і вищі" msgstr "E1114: Підтримуються тільки значення 0x80 і вищі"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: Четвертий аргумент «assert_fails()» має бути числом" msgstr "E1115: Четвертий аргумент «assert_fails()» має бути числом"

View File

@ -7511,8 +7511,8 @@ msgstr "E1112: 列表项 %d 单元格宽度无效"
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: 重叠范围为 0x%lx" msgstr "E1113: 重叠范围为 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: 只支持 0x100 或更高的值" msgstr "E1114: 只支持 0x80 或更高的值"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" 第四个参数必须是一个整数" msgstr "E1115: \"assert_fails()\" 第四个参数必须是一个整数"

View File

@ -7511,8 +7511,8 @@ msgstr "E1112:
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: <20>ص<EFBFBD><D8B5><EFBFBD>ΧΪ 0x%lx" msgstr "E1113: <20>ص<EFBFBD><D8B5><EFBFBD>ΧΪ 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: ֻ֧<D6BB><D6A7> 0x100 <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ֵ" msgstr "E1114: ֻ֧<D6BB><D6A7> 0x80 <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ֵ"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" <20><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" msgstr "E1115: \"assert_fails()\" <20><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"

View File

@ -7511,8 +7511,8 @@ msgstr "E1112:
msgid "E1113: Overlapping ranges for 0x%lx" msgid "E1113: Overlapping ranges for 0x%lx"
msgstr "E1113: <20>ص<EFBFBD><D8B5><EFBFBD>ΧΪ 0x%lx" msgstr "E1113: <20>ص<EFBFBD><D8B5><EFBFBD>ΧΪ 0x%lx"
msgid "E1114: Only values of 0x100 and higher supported" msgid "E1114: Only values of 0x80 and higher supported"
msgstr "E1114: ֻ֧<D6BB><D6A7> 0x100 <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ֵ" msgstr "E1114: ֻ֧<D6BB><D6A7> 0x80 <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ֵ"
msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgid "E1115: \"assert_fails()\" fourth argument must be a number"
msgstr "E1115: \"assert_fails()\" <20><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" msgstr "E1115: \"assert_fails()\" <20><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"