Compare commits
174 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8cbe2e0a0a | ||
|
|
5eaacef18e | ||
|
|
9eff3ee818 | ||
|
|
9fddb8ae77 | ||
|
|
ebb08d5913 | ||
|
|
c9a1e257f1 | ||
|
|
9598a6369b | ||
|
|
c10342da44 | ||
|
|
668e9f2403 | ||
|
|
ad409876d9 | ||
|
|
695522dea3 | ||
|
|
51754c8a49 | ||
|
|
ebea31e454 | ||
|
|
2051af1642 | ||
|
|
df4a7d7617 | ||
|
|
4f73c07abf | ||
|
|
a21240b97d | ||
|
|
8ab1819df6 | ||
|
|
e890887b80 | ||
|
|
1718e7d07e | ||
|
|
1f045f324d | ||
|
|
e0424b3348 | ||
|
|
616219f684 | ||
|
|
0072ceedc6 | ||
|
|
c97e869535 | ||
|
|
3159b6494e | ||
|
|
2050dcc20f | ||
|
|
6655bef330 | ||
|
|
cf1f55548d | ||
|
|
7ceaa8f3dd | ||
|
|
202ebc6ced | ||
|
|
8a27d97848 | ||
|
|
e15cbc1af4 | ||
|
|
dbe39edb29 | ||
|
|
cd96075cde | ||
|
|
6139766e82 | ||
|
|
b04af4cc96 | ||
|
|
27f2e473e1 | ||
|
|
a407573f30 | ||
|
|
58c44e8833 | ||
|
|
bde76da4d0 | ||
|
|
fc61cfd60e | ||
|
|
aa979c763d | ||
|
|
663d18d610 | ||
|
|
fd771613b3 | ||
|
|
0c3e57b403 | ||
|
|
e80f345b5d | ||
|
|
8dc98bf427 | ||
|
|
d4088edae2 | ||
|
|
34e271b321 | ||
|
|
39a4eb0b2c | ||
|
|
f27e80a6e1 | ||
|
|
2bee7e43e1 | ||
|
|
810785c689 | ||
|
|
48fa3198b7 | ||
|
|
6de7191c31 | ||
|
|
80ed8b8761 | ||
|
|
2e1f757f7b | ||
|
|
32b7e3a8c9 | ||
|
|
ab9a8947d7 | ||
|
|
b0206e9fb5 | ||
|
|
df4b3ca5dc | ||
|
|
14ede1890f | ||
|
|
df67fc0e69 | ||
|
|
49a35f67eb | ||
|
|
5113831d16 | ||
|
|
f0ab3e4e41 | ||
|
|
3b3318b640 | ||
|
|
7b12ac3ad8 | ||
|
|
f2e08a1e54 | ||
|
|
f6ba8defc6 | ||
|
|
231b4fc3cc | ||
|
|
e51043ad9f | ||
|
|
223d6c0a94 | ||
|
|
7b239f6d47 | ||
|
|
e6ccb643a6 | ||
|
|
2e252474c4 | ||
|
|
b7f19a5459 | ||
|
|
6c57c30ad4 | ||
|
|
b9b762c21f | ||
|
|
0a3b9fb5c2 | ||
|
|
157397edff | ||
|
|
5a04999a74 | ||
|
|
f07ae5b3bd | ||
|
|
6d2efd4920 | ||
|
|
b9ea0a89fa | ||
|
|
9b67a2e1dd | ||
|
|
de6a313014 | ||
|
|
ae01b96004 | ||
|
|
5ddcecf05f | ||
|
|
9360de9027 | ||
|
|
a32daed559 | ||
|
|
b6ab33bdb2 | ||
|
|
00d3459ea6 | ||
|
|
9739086de2 | ||
|
|
e62d93ead1 | ||
|
|
084529c03d | ||
|
|
8d0bb6dc9f | ||
|
|
f07c10d7bb | ||
|
|
08be9ddc85 | ||
|
|
4ce1cb5bf1 | ||
|
|
89a107efd1 | ||
|
|
7cb24917a1 | ||
|
|
92195ae72f | ||
|
|
62e3014ab1 | ||
|
|
70881ba195 | ||
|
|
f173f4249f | ||
|
|
2328a39a54 | ||
|
|
fb27cf9cb1 | ||
|
|
c673b805ad | ||
|
|
af0fed5988 | ||
|
|
13c1153eef | ||
|
|
83029a354e | ||
|
|
c363ca1ecd | ||
|
|
3baf19a2b1 | ||
|
|
b183f50280 | ||
|
|
59c8880ade | ||
|
|
cbdc3c1f7a | ||
|
|
f25d8f9312 | ||
|
|
beccb33977 | ||
|
|
b2a8df35e8 | ||
|
|
d0186c54c2 | ||
|
|
80d72aa547 | ||
|
|
116d2787ad | ||
|
|
21c37d7f69 | ||
|
|
d32bf0a067 | ||
|
|
f4ccada5c3 | ||
|
|
a977883ef3 | ||
|
|
38281e1b96 | ||
|
|
98874dca6d | ||
|
|
6c3027744e | ||
|
|
9c3330de28 | ||
|
|
3353833f89 | ||
|
|
bb95589473 | ||
|
|
381ff7726e | ||
|
|
6a38aff218 | ||
|
|
368ef5a48c | ||
|
|
a2a2fe841e | ||
|
|
3920bb4356 | ||
|
|
468db1f8af | ||
|
|
3f7d584e96 | ||
|
|
0a4e57f44a | ||
|
|
b100477190 | ||
|
|
41d6de2974 | ||
|
|
6fea0a5480 | ||
|
|
3a3a2c921c | ||
|
|
b34622579c | ||
|
|
5a2e0cf5f1 | ||
|
|
b48108d58e | ||
|
|
3c5d782dbc | ||
|
|
6e19993991 | ||
|
|
7d1bb90dcf | ||
|
|
fbe9a6903a | ||
|
|
ed89206efe | ||
|
|
e203841e0d | ||
|
|
6cc3027e54 | ||
|
|
e29c8bafa7 | ||
|
|
618c4d36ca | ||
|
|
c942f84aad | ||
|
|
95a03fc321 | ||
|
|
d66d68763d | ||
|
|
5c42c77315 | ||
|
|
dff3c9c1a7 | ||
|
|
eed63f96d2 | ||
|
|
b66cac1a8e | ||
|
|
ff70518f12 | ||
|
|
36f36715e6 | ||
|
|
ad4764f65b | ||
|
|
ad3b6a3340 | ||
|
|
85ee742f1e | ||
|
|
65be834c30 | ||
|
|
92b36663f8 | ||
|
|
6e6aff0f7a | ||
|
|
8cc43daee1 |
@@ -23,3 +23,7 @@ trim_trailing_whitespace = false
|
||||
[runtime/doc/**.txt]
|
||||
# It can mess up some documentation by trying to strip trailing whitespaces
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[src/testdir/test*.vim]
|
||||
# Some tests need trailing whitespaces, for example `set showbreak=>>\ `
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
@@ -10,3 +10,6 @@
|
||||
8ce738de3fd7192fa6274730594305cde780074c
|
||||
# Patch v9.1.0879 reformated sound.c and sign.c
|
||||
3cf094edaff815141d9941b8dba52b9e77d8dfc1
|
||||
# change indentation style of netrw plugin
|
||||
c363ca1ecd1f8db03663ef98dcf41eeacc3c22c7
|
||||
c673b805ad80d0aef07e745d412a2bf298ba1c07
|
||||
|
||||
25
.github/MAINTAINERS
vendored
25
.github/MAINTAINERS
vendored
@@ -19,7 +19,7 @@ runtime/autoload/modula2.vim @dkearns
|
||||
runtime/autoload/php.vim @david-szabo97
|
||||
runtime/autoload/rubycomplete.vim @segfault @dkearns
|
||||
runtime/autoload/rust.vim @lilyball
|
||||
runtime/autoload/typst.vim @gpanders
|
||||
runtime/autoload/typst.vim @saccarosium
|
||||
runtime/autoload/xmlformat.vim @chrisbra
|
||||
runtime/autoload/dist/json.vim @habamax
|
||||
runtime/colors/blue.vim @habamax @romainl @neutaaaaan
|
||||
@@ -104,7 +104,7 @@ runtime/compiler/tidy.vim @dkearns
|
||||
runtime/compiler/ts-node.vim @dkearns
|
||||
runtime/compiler/tsc.vim @dkearns
|
||||
runtime/compiler/typedoc.vim @dkearns
|
||||
runtime/compiler/typst.vim @gpanders
|
||||
runtime/compiler/typst.vim @saccarosium
|
||||
runtime/compiler/xmllint.vim @dkearns
|
||||
runtime/compiler/xo.vim @dkearns
|
||||
runtime/compiler/yamllint.vim @romainl
|
||||
@@ -125,6 +125,7 @@ runtime/ftplugin/abaqus.vim @costerwi
|
||||
runtime/ftplugin/antlr4.vim @jiangyinzuo
|
||||
runtime/ftplugin/apache.vim @dubgeiser
|
||||
runtime/ftplugin/arduino.vim @k-takata
|
||||
runtime/ftplugin/asciidoc.vim @saccarosium
|
||||
runtime/ftplugin/astro.vim @romainl
|
||||
runtime/ftplugin/asy.vim @avidseeker
|
||||
runtime/ftplugin/autohotkey.vim @telemachus
|
||||
@@ -180,7 +181,7 @@ runtime/ftplugin/go.vim @dbarnett
|
||||
runtime/ftplugin/goaccess.vim @meonkeys
|
||||
runtime/ftplugin/gomod.vim @yu-yk
|
||||
runtime/ftplugin/gprof.vim @dpelle
|
||||
runtime/ftplugin/graphql.vim @ribru17
|
||||
runtime/ftplugin/graphql.vim @jparise
|
||||
runtime/ftplugin/gyp.vim @ObserverOfTime
|
||||
runtime/ftplugin/haml.vim @tpope
|
||||
runtime/ftplugin/hare.vim @selenebun
|
||||
@@ -202,7 +203,7 @@ runtime/ftplugin/java.vim @zzzyxwvut
|
||||
runtime/ftplugin/javacc.vim @ribru17
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/jj.vim @gpanders
|
||||
runtime/ftplugin/jjdescription.vim @gpanders
|
||||
runtime/ftplugin/json.vim @dbarnett
|
||||
runtime/ftplugin/json5.vim @dkearns
|
||||
runtime/ftplugin/jsonc.vim @izhakjakov
|
||||
@@ -238,6 +239,7 @@ runtime/ftplugin/octave.vim @dkearns
|
||||
runtime/ftplugin/ondir.vim @jparise
|
||||
runtime/ftplugin/opencl.vim @Freed-Wu
|
||||
runtime/ftplugin/openvpn.vim @ObserverOfTime
|
||||
runtime/ftplugin/org.vim @saccarosium
|
||||
runtime/ftplugin/pascal.vim @dkearns
|
||||
runtime/ftplugin/pbtxt.vim @lakshayg
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
@@ -247,6 +249,7 @@ runtime/ftplugin/pod.vim @petdance @dkearns
|
||||
runtime/ftplugin/poefilter.vim @ObserverOfTime
|
||||
runtime/ftplugin/postscr.vim @mrdubya
|
||||
runtime/ftplugin/prisma.vim @ribru17
|
||||
runtime/ftplugin/proto.vim @Limero
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
runtime/ftplugin/ps1xml.vim @heaths
|
||||
runtime/ftplugin/ptx.vim @jiangyinzuo
|
||||
@@ -270,6 +273,7 @@ runtime/ftplugin/scss.vim @tpope
|
||||
runtime/ftplugin/sdoc.vim @gpanders
|
||||
runtime/ftplugin/sed.vim @dkearns
|
||||
runtime/ftplugin/sh.vim @dkearns
|
||||
runtime/ftplugin/shaderslang.vim @mTvare6
|
||||
runtime/ftplugin/slint.vim @ribru17
|
||||
runtime/ftplugin/snakemake.vim @ribru17
|
||||
runtime/ftplugin/solidity.vim @cothi
|
||||
@@ -288,13 +292,14 @@ runtime/ftplugin/tcsh.vim @dkearns
|
||||
runtime/ftplugin/terraform.vim @JannoTjarks
|
||||
runtime/ftplugin/tf.vim @ribru17
|
||||
runtime/ftplugin/thrift.vim @jiangyinzuo
|
||||
runtime/ftplugin/tiasm.vim @Freed-Wu
|
||||
runtime/ftplugin/tidy.vim @dkearns
|
||||
runtime/ftplugin/tmux.vim @ericpruitt
|
||||
runtime/ftplugin/toml.vim @averms
|
||||
runtime/ftplugin/tt2html.vim @petdance
|
||||
runtime/ftplugin/typescript.vim @dkearns
|
||||
runtime/ftplugin/typescriptreact.vim @dkearns
|
||||
runtime/ftplugin/typst.vim @gpanders
|
||||
runtime/ftplugin/typst.vim @saccarosium
|
||||
runtime/ftplugin/unison.vim @chuwy
|
||||
runtime/ftplugin/v.vim @ribru17
|
||||
runtime/ftplugin/vdf.vim @ObserverOfTime
|
||||
@@ -336,6 +341,7 @@ runtime/indent/gitconfig.vim @tpope
|
||||
runtime/indent/gitolite.vim @sitaramc
|
||||
runtime/indent/glsl.vim @gpanders
|
||||
runtime/indent/go.vim @dbarnett
|
||||
runtime/indent/graphql.vim @jparise
|
||||
runtime/indent/gyp.vim @ObserverOfTime
|
||||
runtime/indent/haml.vim @tpope
|
||||
runtime/indent/hare.vim @selenebun
|
||||
@@ -387,7 +393,7 @@ runtime/indent/teraterm.vim @k-takata
|
||||
runtime/indent/terraform.vim @gpanders
|
||||
runtime/indent/thrift.vim @jiangyinzuo
|
||||
runtime/indent/typescript.vim @HerringtonDarkholme
|
||||
runtime/indent/typst.vim @gpanders
|
||||
runtime/indent/typst.vim @saccarosium
|
||||
runtime/indent/vroom.vim @dbarnett
|
||||
runtime/indent/wast.vim @rhysd
|
||||
runtime/indent/xml.vim @chrisbra
|
||||
@@ -478,6 +484,7 @@ runtime/syntax/goaccess.vim @meonkeys
|
||||
runtime/syntax/godoc.vim @dbarnett
|
||||
runtime/syntax/gp.vim @KBelabas
|
||||
runtime/syntax/gprof.vim @dpelle
|
||||
runtime/syntax/graphql.vim @jparise
|
||||
runtime/syntax/groff.vim @jmarshall
|
||||
runtime/syntax/gyp.vim @ObserverOfTime
|
||||
runtime/syntax/haml.vim @tpope
|
||||
@@ -492,6 +499,7 @@ runtime/syntax/hog.vim @wtfbbqhax
|
||||
runtime/syntax/hollywood.vim @sodero
|
||||
runtime/syntax/html.vim @dkearns
|
||||
runtime/syntax/htmlangular.vim @dlvandenberg
|
||||
runtime/syntax/hyprlang.vim @saccarosium
|
||||
runtime/syntax/i3config.vim @hiqua
|
||||
runtime/syntax/icon.vim @dkearns
|
||||
runtime/syntax/indent.vim @dkearns
|
||||
@@ -500,7 +508,7 @@ runtime/syntax/jargon.vim @h3xx
|
||||
runtime/syntax/java.vim @zzzyxwvut
|
||||
runtime/syntax/javascript.vim @fleiner
|
||||
runtime/syntax/jinja.vim @gpanders
|
||||
runtime/syntax/jj.vim @gpanders
|
||||
runtime/syntax/jjdescription.vim @gpanders
|
||||
runtime/syntax/json.vim @vito-c
|
||||
runtime/syntax/jsonc.vim @izhakjakov
|
||||
runtime/syntax/julia.vim @carlobaldassi
|
||||
@@ -541,6 +549,7 @@ runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/ondir.vim @jparise
|
||||
runtime/syntax/opencl.vim @Freed-Wu
|
||||
runtime/syntax/openvpn.vim @ObserverOfTime
|
||||
runtime/syntax/org.vim @saccarosium
|
||||
runtime/syntax/pacmanlog.vim @rpigott
|
||||
runtime/syntax/pascal.vim @dkearns
|
||||
runtime/syntax/pbtxt.vim @lakshayg
|
||||
@@ -583,6 +592,7 @@ runtime/syntax/scss.vim @tpope
|
||||
runtime/syntax/sdoc.vim @gpanders
|
||||
runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/shared/debversions.vim @jamessan
|
||||
runtime/syntax/shaderslang.vim @mTvare6
|
||||
runtime/syntax/solidity.vim @cothi
|
||||
runtime/syntax/spec.vim @ignatenkobrain
|
||||
runtime/syntax/sqloracle.vim @chrisbra
|
||||
@@ -601,6 +611,7 @@ runtime/syntax/tcsh.vim @dkearns
|
||||
runtime/syntax/teraterm.vim @k-takata
|
||||
runtime/syntax/terraform.vim @gpanders
|
||||
runtime/syntax/thrift.vim @jiangyinzuo
|
||||
runtime/syntax/tiasm.vim @Freed-Wu
|
||||
runtime/syntax/tidy.vim @dkearns
|
||||
runtime/syntax/tmux.vim @ericpruitt
|
||||
runtime/syntax/toml.vim @averms
|
||||
|
||||
25
.github/workflows/ci.yml
vendored
25
.github/workflows/ci.yml
vendored
@@ -215,21 +215,6 @@ jobs:
|
||||
sudo usermod -a -G audio "${USER}"
|
||||
sudo bash ci/setup-xvfb.sh
|
||||
|
||||
- name: Set up snd-dummy
|
||||
if: (!(contains(matrix.extra, 'unittests') || contains(matrix.extra, 'vimtags')))
|
||||
env:
|
||||
DEST_DIR: ${{ env.TMPDIR }}/linux-modules-extra-${{ env.LINUX_VERSION }}
|
||||
uses: tecolicom/actions-use-apt-tools@main
|
||||
with:
|
||||
tools: linux-modules-extra-${{ env.LINUX_VERSION }}
|
||||
path: "${DEST_DIR}"
|
||||
|
||||
- name: modprobe snd-dummy
|
||||
if: (!(contains(matrix.extra, 'unittests') || contains(matrix.extra, 'vimtags')))
|
||||
run: |
|
||||
sudo depmod --verbose
|
||||
sudo modprobe --verbose snd-dummy || true
|
||||
|
||||
- name: Check autoconf
|
||||
if: contains(matrix.extra, 'unittests')
|
||||
run: |
|
||||
@@ -323,7 +308,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
features: [tiny, normal, huge]
|
||||
runner: [macos-13, macos-14]
|
||||
runner: [macos-13, macos-15]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
@@ -335,11 +320,11 @@ jobs:
|
||||
brew install lua libtool
|
||||
echo "LUA_PREFIX=$(brew --prefix)" >> $GITHUB_ENV
|
||||
|
||||
- name: Grant microphone access for macos-14
|
||||
if: matrix.features == 'huge' && matrix.runner == 'macos-14'
|
||||
- name: Set up Xcode
|
||||
if: matrix.runner == 'macos-15'
|
||||
run: |
|
||||
# Temporary fix to fix microphone permission issues for macos-14 when playing sound.
|
||||
sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159,NULL,NULL,'UNUSED',1687786159);"
|
||||
# Xcode 16 has compiler bugs which are fixed in 16.2+
|
||||
sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
|
||||
2
Filelist
2
Filelist
@@ -769,6 +769,8 @@ RT_ALL = \
|
||||
runtime/tutor/tutor1 \
|
||||
runtime/tutor/en/vim-01-beginner.tutor \
|
||||
runtime/tutor/en/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/it/vim-01-beginner.tutor \
|
||||
runtime/tutor/it/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/tutor.tutor \
|
||||
runtime/tutor/tutor.tutor.json \
|
||||
runtime/tutor/tutor.vim \
|
||||
|
||||
17
runtime/autoload/dist/ft.vim
vendored
17
runtime/autoload/dist/ft.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2024 May 23
|
||||
# Last Change: 2025 Jan 11
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -32,6 +32,10 @@ enddef
|
||||
# This function checks for the kind of assembly that is wanted by the user, or
|
||||
# can be detected from the first five lines of the file.
|
||||
export def FTasm()
|
||||
# tiasm uses `* commment`
|
||||
if join(getline(1, 10), "\n") =~ '\%(\%(^\|\n\)\*\|Texas Instruments Incorporated\)'
|
||||
setf tiasm
|
||||
endif
|
||||
# make sure b:asmsyntax exists
|
||||
if !exists("b:asmsyntax")
|
||||
b:asmsyntax = ""
|
||||
@@ -433,7 +437,7 @@ export def FThtml()
|
||||
|
||||
while n < 40 && n <= line("$")
|
||||
# Check for Angular
|
||||
if getline(n) =~ '@\(if\|for\|defer\|switch\)\|\*\(ngIf\|ngFor\|ngSwitch\|ngTemplateOutlet\)\|ng-template\|ng-content\|{{.*}}'
|
||||
if getline(n) =~ '@\(if\|for\|defer\|switch\)\|\*\(ngIf\|ngFor\|ngSwitch\|ngTemplateOutlet\)\|ng-template\|ng-content'
|
||||
setf htmlangular
|
||||
return
|
||||
endif
|
||||
@@ -896,6 +900,7 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
return SetFileTypeShell("bash", setft)
|
||||
elseif name =~ '\<sh\>' || name =~ '\<dash\>'
|
||||
# Ubuntu links "sh" to "dash", thus it is expected to work the same way
|
||||
b:is_sh = 1
|
||||
@@ -1002,6 +1007,14 @@ export def SQL()
|
||||
endif
|
||||
enddef
|
||||
|
||||
export def FTsa()
|
||||
if join(getline(1, 4), "\n") =~# '\%(^\|\n\);'
|
||||
setf tiasm
|
||||
return
|
||||
endif
|
||||
setf sather
|
||||
enddef
|
||||
|
||||
# This function checks the first 25 lines of file extension "sc" to resolve
|
||||
# detection between scala and SuperCollider.
|
||||
# NOTE: We don't check for 'Class : Method', as this can easily be confused
|
||||
|
||||
21
runtime/autoload/dist/vimindent.vim
vendored
21
runtime/autoload/dist/vimindent.vim
vendored
@@ -2,11 +2,12 @@ vim9script
|
||||
|
||||
# Language: Vim script
|
||||
# Maintainer: github user lacygoill
|
||||
# Last Change: 2024 Nov 08
|
||||
# Last Change: 2024 Dec 26
|
||||
#
|
||||
# Includes changes from The Vim Project:
|
||||
# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
|
||||
# - 2024 Nov 08: Fix indent after :silent! function (D. Kearns via #16009)
|
||||
# - 2024 Dec 26: Fix indent for enums (Jim Zhou via #16293)
|
||||
|
||||
# NOTE: Whenever you change the code, make sure the tests are still passing:
|
||||
#
|
||||
@@ -172,6 +173,7 @@ const MODIFIERS: dict<string> = {
|
||||
def: ['export', 'static'],
|
||||
class: ['export', 'abstract', 'export abstract'],
|
||||
interface: ['export'],
|
||||
enum: ['export'],
|
||||
}
|
||||
# ...
|
||||
# class: ['export', 'abstract', 'export abstract'],
|
||||
@@ -634,6 +636,7 @@ def Offset( # {{{2
|
||||
elseif !line_A.isfirst
|
||||
&& (line_B->EndsWithLineContinuation()
|
||||
|| line_A.text =~ LINE_CONTINUATION_AT_SOL)
|
||||
&& !(line_B->EndsWithComma() && line_A.lnum->IsInside('EnumBlock'))
|
||||
return shiftwidth()
|
||||
endif
|
||||
|
||||
@@ -1051,6 +1054,22 @@ def ContinuesBelowBracketBlock( # {{{3
|
||||
enddef
|
||||
|
||||
def IsInside(lnum: number, syntax: string): bool # {{{3
|
||||
if syntax == 'EnumBlock'
|
||||
var cur_pos = getpos('.')
|
||||
cursor(lnum, 1)
|
||||
var enum_pos = search('^\C\s*\%(export\s\)\=\s*enum\s\+\S\+', 'bnW')
|
||||
var endenum_pos = search('^\C\s*endenum\>', 'bnW')
|
||||
setpos('.', cur_pos)
|
||||
|
||||
if enum_pos == 0 && endenum_pos == 0
|
||||
return false
|
||||
endif
|
||||
if (enum_pos > 0 && (endenum_pos == 0 || enum_pos > endenum_pos))
|
||||
return true
|
||||
endif
|
||||
return false
|
||||
endif
|
||||
|
||||
if !exists('b:vimindent')
|
||||
|| !b:vimindent->has_key($'is_{syntax}')
|
||||
return false
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,51 @@
|
||||
" Default pre- and post-compiler actions for SpotBugs
|
||||
" Default pre- and post-compiler actions and commands for SpotBugs
|
||||
" Maintainers: @konfekt and @zzzyxwvut
|
||||
" Last Change: 2024 Nov 27
|
||||
" Last Change: 2024 Dec 08
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Look for the setting of "g:spotbugs#state" in "ftplugin/java.vim".
|
||||
let s:state = get(g:, 'spotbugs#state', {})
|
||||
let s:commands = get(s:state, 'commands', {})
|
||||
let s:compiler = get(s:state, 'compiler', '')
|
||||
let s:readable = filereadable($VIMRUNTIME . '/compiler/' . s:compiler . '.vim')
|
||||
|
||||
if has_key(s:commands, 'DefaultPreCompilerCommand')
|
||||
let g:SpotBugsPreCompilerCommand = s:commands.DefaultPreCompilerCommand
|
||||
else
|
||||
|
||||
function! s:DefaultPreCompilerCommand(arguments) abort
|
||||
execute 'make ' . a:arguments
|
||||
cc
|
||||
endfunction
|
||||
|
||||
let g:SpotBugsPreCompilerCommand = function('s:DefaultPreCompilerCommand')
|
||||
endif
|
||||
|
||||
if has_key(s:commands, 'DefaultPreCompilerTestCommand')
|
||||
let g:SpotBugsPreCompilerTestCommand = s:commands.DefaultPreCompilerTestCommand
|
||||
else
|
||||
|
||||
function! s:DefaultPreCompilerTestCommand(arguments) abort
|
||||
execute 'make ' . a:arguments
|
||||
cc
|
||||
endfunction
|
||||
|
||||
let g:SpotBugsPreCompilerTestCommand = function('s:DefaultPreCompilerTestCommand')
|
||||
endif
|
||||
|
||||
if has_key(s:commands, 'DefaultPostCompilerCommand')
|
||||
let g:SpotBugsPostCompilerCommand = s:commands.DefaultPostCompilerCommand
|
||||
else
|
||||
|
||||
function! s:DefaultPostCompilerCommand(arguments) abort
|
||||
execute 'make ' . a:arguments
|
||||
endfunction
|
||||
|
||||
let g:SpotBugsPostCompilerCommand = function('s:DefaultPostCompilerCommand')
|
||||
endif
|
||||
|
||||
if v:version > 900
|
||||
|
||||
function! spotbugs#DeleteClassFiles() abort
|
||||
@@ -127,25 +168,21 @@ endif
|
||||
|
||||
function! spotbugs#DefaultPostCompilerAction() abort
|
||||
" Since v7.4.191.
|
||||
make %:S
|
||||
call call(g:SpotBugsPostCompilerCommand, ['%:S'])
|
||||
endfunction
|
||||
|
||||
" Look for "spotbugs#compiler" in "ftplugin/java.vim".
|
||||
let s:compiler = exists('spotbugs#compiler') ? spotbugs#compiler : ''
|
||||
let s:readable = filereadable($VIMRUNTIME . '/compiler/' . s:compiler . '.vim')
|
||||
|
||||
if s:readable && s:compiler ==# 'maven' && executable('mvn')
|
||||
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler maven
|
||||
make compile
|
||||
call call(g:SpotBugsPreCompilerCommand, ['compile'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultPreCompilerTestAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler maven
|
||||
make test-compile
|
||||
call call(g:SpotBugsPreCompilerTestCommand, ['test-compile'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultProperties() abort
|
||||
@@ -156,10 +193,10 @@ if s:readable && s:compiler ==# 'maven' && executable('mvn')
|
||||
\ function('spotbugs#DefaultPreCompilerTestAction'),
|
||||
\ 'PostCompilerAction':
|
||||
\ function('spotbugs#DefaultPostCompilerAction'),
|
||||
\ 'sourceDirPath': 'src/main/java',
|
||||
\ 'classDirPath': 'target/classes',
|
||||
\ 'testSourceDirPath': 'src/test/java',
|
||||
\ 'testClassDirPath': 'target/test-classes',
|
||||
\ 'sourceDirPath': ['src/main/java'],
|
||||
\ 'classDirPath': ['target/classes'],
|
||||
\ 'testSourceDirPath': ['src/test/java'],
|
||||
\ 'testClassDirPath': ['target/test-classes'],
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
@@ -169,13 +206,13 @@ elseif s:readable && s:compiler ==# 'ant' && executable('ant')
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler ant
|
||||
make compile
|
||||
call call(g:SpotBugsPreCompilerCommand, ['compile'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultPreCompilerTestAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler ant
|
||||
make compile-test
|
||||
call call(g:SpotBugsPreCompilerTestCommand, ['compile-test'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultProperties() abort
|
||||
@@ -186,28 +223,55 @@ elseif s:readable && s:compiler ==# 'ant' && executable('ant')
|
||||
\ function('spotbugs#DefaultPreCompilerTestAction'),
|
||||
\ 'PostCompilerAction':
|
||||
\ function('spotbugs#DefaultPostCompilerAction'),
|
||||
\ 'sourceDirPath': 'src',
|
||||
\ 'classDirPath': 'build/classes',
|
||||
\ 'testSourceDirPath': 'test',
|
||||
\ 'testClassDirPath': 'build/test/classes',
|
||||
\ 'sourceDirPath': ['src'],
|
||||
\ 'classDirPath': ['build/classes'],
|
||||
\ 'testSourceDirPath': ['test'],
|
||||
\ 'testClassDirPath': ['build/test/classes'],
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
unlet s:readable s:compiler
|
||||
elseif s:readable && s:compiler ==# 'javac' && executable('javac')
|
||||
let s:filename = tempname()
|
||||
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler javac
|
||||
|
||||
if get(b:, 'javac_makeprg_params', get(g:, 'javac_makeprg_params', '')) =~ '\s@\S'
|
||||
" Read options and filenames from @options [@sources ...].
|
||||
make
|
||||
" Only read options and filenames from @options [@sources ...] and do
|
||||
" not update these files when filelists change.
|
||||
call call(g:SpotBugsPreCompilerCommand, [''])
|
||||
else
|
||||
" Let Javac figure out what files to compile.
|
||||
execute 'make ' . join(map(filter(copy(v:argv),
|
||||
\ "v:val =~# '\\.java\\=$'"),
|
||||
\ 'shellescape(v:val)'), ' ')
|
||||
" Collect filenames so that Javac can figure out what to compile.
|
||||
let filelist = []
|
||||
|
||||
for arg_num in range(argc(-1))
|
||||
let arg_name = argv(arg_num)
|
||||
|
||||
if arg_name =~# '\.java\=$'
|
||||
call add(filelist, fnamemodify(arg_name, ':p:S'))
|
||||
endif
|
||||
endfor
|
||||
|
||||
for buf_num in range(1, bufnr('$'))
|
||||
if !buflisted(buf_num)
|
||||
continue
|
||||
endif
|
||||
|
||||
let buf_name = bufname(buf_num)
|
||||
|
||||
if buf_name =~# '\.java\=$'
|
||||
let buf_name = fnamemodify(buf_name, ':p:S')
|
||||
|
||||
if index(filelist, buf_name) < 0
|
||||
call add(filelist, buf_name)
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
noautocmd call writefile(filelist, s:filename)
|
||||
call call(g:SpotBugsPreCompilerCommand, [shellescape('@' . s:filename)])
|
||||
endif
|
||||
endfunction
|
||||
|
||||
@@ -219,14 +283,13 @@ elseif s:readable && s:compiler ==# 'javac' && executable('javac')
|
||||
return {
|
||||
\ 'PreCompilerAction':
|
||||
\ function('spotbugs#DefaultPreCompilerAction'),
|
||||
\ 'PreCompilerTestAction':
|
||||
\ function('spotbugs#DefaultPreCompilerTestAction'),
|
||||
\ 'PostCompilerAction':
|
||||
\ function('spotbugs#DefaultPostCompilerAction'),
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
unlet s:readable s:compiler
|
||||
unlet s:readable s:compiler g:SpotBugsPreCompilerTestCommand
|
||||
delfunction! s:DefaultPreCompilerTestCommand
|
||||
else
|
||||
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
@@ -241,10 +304,49 @@ else
|
||||
return {}
|
||||
endfunction
|
||||
|
||||
unlet s:readable
|
||||
" XXX: Keep "s:compiler" around for "spotbugs#DefaultPreCompilerAction()",
|
||||
" "s:DefaultPostCompilerCommand" -- "spotbugs#DefaultPostCompilerAction()".
|
||||
unlet s:readable g:SpotBugsPreCompilerCommand g:SpotBugsPreCompilerTestCommand
|
||||
delfunction! s:DefaultPreCompilerCommand
|
||||
delfunction! s:DefaultPreCompilerTestCommand
|
||||
endif
|
||||
|
||||
function! s:DefineBufferAutocmd(event, ...) abort
|
||||
if !exists('#java_spotbugs#User')
|
||||
return 1
|
||||
endif
|
||||
|
||||
for l:event in insert(copy(a:000), a:event)
|
||||
if l:event != 'User'
|
||||
execute printf('silent! autocmd! java_spotbugs %s <buffer>', l:event)
|
||||
execute printf('autocmd java_spotbugs %s <buffer> doautocmd User', l:event)
|
||||
endif
|
||||
endfor
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:RemoveBufferAutocmd(event, ...) abort
|
||||
if !exists('#java_spotbugs')
|
||||
return 1
|
||||
endif
|
||||
|
||||
for l:event in insert(copy(a:000), a:event)
|
||||
if l:event != 'User'
|
||||
execute printf('silent! autocmd! java_spotbugs %s <buffer>', l:event)
|
||||
endif
|
||||
endfor
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Documented in ":help compiler-spotbugs".
|
||||
command! -bar -nargs=+ -complete=event SpotBugsDefineBufferAutocmd
|
||||
\ call s:DefineBufferAutocmd(<f-args>)
|
||||
command! -bar -nargs=+ -complete=event SpotBugsRemoveBufferAutocmd
|
||||
\ call s:RemoveBufferAutocmd(<f-args>)
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
unlet s:commands s:state s:save_cpo
|
||||
|
||||
" vim: set foldmethod=syntax shiftwidth=2 expandtab:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Language: Typst
|
||||
" Maintainer: Gregory Anders
|
||||
" Last Change: 2024 Nov 02
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Last Change: 2024 Dec 09
|
||||
" Based on: https://github.com/kaarmu/typst.vim
|
||||
|
||||
function! typst#indentexpr() abort
|
||||
|
||||
12
runtime/compiler/bash.vim
Normal file
12
runtime/compiler/bash.vim
Normal file
@@ -0,0 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Bash Syntax Checker
|
||||
" Maintainer: @konfekt
|
||||
" Last Change: 2024 Dec 27
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "bash"
|
||||
|
||||
CompilerSet makeprg=bash\ -n
|
||||
CompilerSet errorformat=%f:\ line\ %l:\ %m
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Spotbugs (Java static checker; needs javac compiled classes)
|
||||
" Maintainer: @konfekt and @zzzyxwvut
|
||||
" Last Change: 2024 Nov 27
|
||||
" Maintainers: @konfekt and @zzzyxwvut
|
||||
" Last Change: 2024 Dec 20
|
||||
|
||||
if exists('g:current_compiler') || bufname() !~# '\.java\=$' || wordcount().chars < 9
|
||||
finish
|
||||
@@ -24,8 +24,9 @@ let s:type_names = '\C\<\%(\.\@1<!class\|@\=interface\|enum\|record\)\s*\(\K\k*\
|
||||
let s:package_names = '\C\<package\s*\(\K\%(\k*\.\=\)\+;\)'
|
||||
let s:package = ''
|
||||
|
||||
if has('syntax') && exists('g:syntax_on') && exists('b:current_syntax') &&
|
||||
\ b:current_syntax == 'java' && hlexists('javaClassDecl')
|
||||
if has('syntax') && exists('g:syntax_on') &&
|
||||
\ exists('b:current_syntax') && b:current_syntax == 'java' &&
|
||||
\ hlexists('javaClassDecl') && hlexists('javaExternal')
|
||||
|
||||
function! s:GetDeclaredTypeNames() abort
|
||||
if bufname() =~# '\<\%(module\|package\)-info\.java\=$'
|
||||
@@ -105,53 +106,113 @@ else
|
||||
endfunction
|
||||
endif
|
||||
|
||||
if exists('g:spotbugs_properties') &&
|
||||
\ (has_key(g:spotbugs_properties, 'sourceDirPath') &&
|
||||
\ has_key(g:spotbugs_properties, 'classDirPath')) ||
|
||||
\ (has_key(g:spotbugs_properties, 'testSourceDirPath') &&
|
||||
\ has_key(g:spotbugs_properties, 'testClassDirPath'))
|
||||
if exists('b:spotbugs_properties')
|
||||
" Let "ftplugin/java.vim" merge global entries, if any, in buffer-local
|
||||
" entries
|
||||
|
||||
function! s:FindClassFiles(src_type_name) abort
|
||||
let class_files = []
|
||||
" Match pairwise the components of source and class pathnames
|
||||
for [src_dir, bin_dir] in filter([
|
||||
\ [get(g:spotbugs_properties, 'sourceDirPath', ''),
|
||||
\ get(g:spotbugs_properties, 'classDirPath', '')],
|
||||
\ [get(g:spotbugs_properties, 'testSourceDirPath', ''),
|
||||
\ get(g:spotbugs_properties, 'testClassDirPath', '')]],
|
||||
\ '!(empty(v:val[0]) || empty(v:val[1]))')
|
||||
" Since only the rightmost "src" is sought, while there can be any number of
|
||||
" such filenames, no "fnamemodify(a:src_type_name, ':p:s?src?bin?')" is used
|
||||
let tail_idx = strridx(a:src_type_name, src_dir)
|
||||
" No such directory or no such inner type (i.e. without "$")
|
||||
if tail_idx < 0 | continue | endif
|
||||
" Substitute "bin_dir" for the rightmost "src_dir"
|
||||
let candidate_type_name = strpart(a:src_type_name, 0, tail_idx)..
|
||||
\ bin_dir..
|
||||
\ strpart(a:src_type_name, (tail_idx + strlen(src_dir)))
|
||||
for candidate in insert(s:GlobClassFiles(candidate_type_name),
|
||||
\ candidate_type_name..'.class')
|
||||
if filereadable(candidate) | call add(class_files, shellescape(candidate)) | endif
|
||||
endfor
|
||||
if !empty(class_files) | break | endif
|
||||
endfor
|
||||
return class_files
|
||||
endfunction
|
||||
function! s:GetProperty(name, default) abort
|
||||
return get(b:spotbugs_properties, a:name, a:default)
|
||||
endfunction
|
||||
|
||||
elseif exists('g:spotbugs_properties')
|
||||
|
||||
function! s:GetProperty(name, default) abort
|
||||
return get(g:spotbugs_properties, a:name, a:default)
|
||||
endfunction
|
||||
|
||||
else
|
||||
function! s:FindClassFiles(src_type_name) abort
|
||||
let class_files = []
|
||||
for candidate in insert(s:GlobClassFiles(a:src_type_name),
|
||||
function! s:GetProperty(dummy, default) abort
|
||||
return a:default
|
||||
endfunction
|
||||
endif
|
||||
|
||||
if (exists('g:spotbugs_properties') || exists('b:spotbugs_properties')) &&
|
||||
\ ((!empty(s:GetProperty('sourceDirPath', [])) &&
|
||||
\ !empty(s:GetProperty('classDirPath', []))) ||
|
||||
\ (!empty(s:GetProperty('testSourceDirPath', [])) &&
|
||||
\ !empty(s:GetProperty('testClassDirPath', []))))
|
||||
|
||||
function! s:CommonIdxsAndDirs() abort
|
||||
let src_dir_path = s:GetProperty('sourceDirPath', [])
|
||||
let bin_dir_path = s:GetProperty('classDirPath', [])
|
||||
let test_src_dir_path = s:GetProperty('testSourceDirPath', [])
|
||||
let test_bin_dir_path = s:GetProperty('testClassDirPath', [])
|
||||
let dir_cnt = min([len(src_dir_path), len(bin_dir_path)])
|
||||
let test_dir_cnt = min([len(test_src_dir_path), len(test_bin_dir_path)])
|
||||
" Do not break up path pairs with filtering!
|
||||
return [[range(dir_cnt),
|
||||
\ src_dir_path[0 : dir_cnt - 1],
|
||||
\ bin_dir_path[0 : dir_cnt - 1]],
|
||||
\ [range(test_dir_cnt),
|
||||
\ test_src_dir_path[0 : test_dir_cnt - 1],
|
||||
\ test_bin_dir_path[0 : test_dir_cnt - 1]]]
|
||||
endfunction
|
||||
|
||||
let s:common_idxs_and_dirs = s:CommonIdxsAndDirs()
|
||||
delfunction s:CommonIdxsAndDirs
|
||||
|
||||
function! s:FindClassFiles(src_type_name) abort
|
||||
let class_files = []
|
||||
" Match pairwise the components of source and class pathnames
|
||||
for [idxs, src_dirs, bin_dirs] in s:common_idxs_and_dirs
|
||||
" Do not use "fnamemodify(a:src_type_name, ':p:s?src?bin?')" because
|
||||
" only the rightmost "src" is looked for
|
||||
for idx in idxs
|
||||
let tail_idx = strridx(a:src_type_name, src_dirs[idx])
|
||||
" No such directory or no such inner type (i.e. without "$")
|
||||
if tail_idx < 0 | continue | endif
|
||||
" Substitute "bin_dirs[idx]" for the rightmost "src_dirs[idx]"
|
||||
let candidate_type_name = strpart(a:src_type_name, 0, tail_idx)..
|
||||
\ bin_dirs[idx]..
|
||||
\ strpart(a:src_type_name, (tail_idx + strlen(src_dirs[idx])))
|
||||
for candidate in insert(s:GlobClassFiles(candidate_type_name),
|
||||
\ candidate_type_name..'.class')
|
||||
if filereadable(candidate) | call add(class_files, shellescape(candidate)) | endif
|
||||
endfor
|
||||
if !empty(class_files) | break | endif
|
||||
endfor
|
||||
if !empty(class_files) | break | endif
|
||||
endfor
|
||||
return class_files
|
||||
endfunction
|
||||
|
||||
else
|
||||
function! s:FindClassFiles(src_type_name) abort
|
||||
let class_files = []
|
||||
for candidate in insert(s:GlobClassFiles(a:src_type_name),
|
||||
\ a:src_type_name..'.class')
|
||||
if filereadable(candidate) | call add(class_files, shellescape(candidate)) | endif
|
||||
endfor
|
||||
return class_files
|
||||
endfunction
|
||||
if filereadable(candidate) | call add(class_files, shellescape(candidate)) | endif
|
||||
endfor
|
||||
return class_files
|
||||
endfunction
|
||||
endif
|
||||
|
||||
if exists('g:spotbugs_alternative_path') &&
|
||||
\ !empty(get(g:spotbugs_alternative_path, 'fromPath', '')) &&
|
||||
\ !empty(get(g:spotbugs_alternative_path, 'toPath', ''))
|
||||
|
||||
" See https://github.com/spotbugs/spotbugs/issues/909
|
||||
function! s:ResolveAbsolutePathname() abort
|
||||
let pathname = expand('%:p')
|
||||
let head_idx = stridx(pathname, g:spotbugs_alternative_path.toPath)
|
||||
" No such file: a mismatched path request for a project
|
||||
if head_idx < 0 | return pathname | endif
|
||||
" Settle for failure with file readability tests _in s:FindClassFiles()_
|
||||
return strpart(pathname, 0, head_idx)..
|
||||
\ g:spotbugs_alternative_path.fromPath..
|
||||
\ strpart(pathname, (head_idx + strlen(g:spotbugs_alternative_path.toPath)))
|
||||
endfunction
|
||||
|
||||
else
|
||||
function! s:ResolveAbsolutePathname() abort
|
||||
return expand('%:p')
|
||||
endfunction
|
||||
endif
|
||||
|
||||
function! s:CollectClassFiles() abort
|
||||
" Possibly obtain a symlinked path for an unsupported directory name
|
||||
let pathname = s:ResolveAbsolutePathname()
|
||||
" Get a platform-independent pathname prefix, cf. "expand('%:p:h')..'/'"
|
||||
let pathname = expand('%:p')
|
||||
let tail_idx = strridx(pathname, expand('%:t'))
|
||||
let src_pathname = strpart(pathname, 0, tail_idx)
|
||||
let all_class_files = []
|
||||
@@ -166,11 +227,12 @@ endfunction
|
||||
" Expose class files for removal etc.
|
||||
let b:spotbugs_class_files = s:CollectClassFiles()
|
||||
let s:package_dir_heads = repeat(':h', (1 + strlen(substitute(s:package, '[^.;]', '', 'g'))))
|
||||
let s:package_root_dir = fnamemodify(s:ResolveAbsolutePathname(), s:package_dir_heads..':S')
|
||||
let g:current_compiler = 'spotbugs'
|
||||
" CompilerSet makeprg=spotbugs
|
||||
let &l:makeprg = 'spotbugs'..(has('win32') ? '.bat' : '')..' '..
|
||||
\ get(b:, 'spotbugs_makeprg_params', get(g:, 'spotbugs_makeprg_params', '-workHard -experimental'))..
|
||||
\ ' -textui -emacs -auxclasspath %:p'..s:package_dir_heads..':S -sourcepath %:p'..s:package_dir_heads..':S '..
|
||||
\ ' -textui -emacs -auxclasspath '..s:package_root_dir..' -sourcepath '..s:package_root_dir..' '..
|
||||
\ join(b:spotbugs_class_files, ' ')
|
||||
" Emacs expects doubled line numbers
|
||||
setlocal errorformat=%f:%l:%*[0-9]\ %m,%f:-%*[0-9]:-%*[0-9]\ %m
|
||||
@@ -180,10 +242,13 @@ setlocal errorformat=%f:%l:%*[0-9]\ %m,%f:-%*[0-9]:-%*[0-9]\ %m
|
||||
" exe 'CompilerSet errorformat='..escape(&l:errorformat, ' \|"')
|
||||
|
||||
delfunction s:CollectClassFiles
|
||||
delfunction s:ResolveAbsolutePathname
|
||||
delfunction s:FindClassFiles
|
||||
delfunction s:GetProperty
|
||||
delfunction s:GlobClassFiles
|
||||
delfunction s:GetDeclaredTypeNames
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:package_dir_heads s:package s:package_names s:type_names s:keywords s:cpo_save
|
||||
unlet! s:package_root_dir s:package_dir_heads s:common_idxs_and_dirs s:package
|
||||
unlet! s:package_names s:type_names s:keywords s:cpo_save
|
||||
|
||||
" vim: set foldmethod=syntax shiftwidth=2 expandtab:
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Language: Typst
|
||||
" Maintainer: Gregory Anders
|
||||
" Last Change: 2024-07-14
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Last Change: 2024 Dec 09
|
||||
" Based on: https://github.com/kaarmu/typst.vim
|
||||
|
||||
if exists('current_compiler')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2024 Dec 03
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Jan 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -67,6 +67,8 @@ autocmd_get([{opts}]) List return a list of autocmds
|
||||
balloon_gettext() String current text in the balloon
|
||||
balloon_show({expr}) none show {expr} inside the balloon
|
||||
balloon_split({msg}) List split {msg} as used for a balloon
|
||||
base64_decode({string}) Blob base64 decode {string} characters
|
||||
base64_encode({blob}) String base64 encode the bytes in {blob}
|
||||
bindtextdomain({package}, {path})
|
||||
Bool bind text domain to specified path
|
||||
blob2list({blob}) List convert {blob} into a list of numbers
|
||||
@@ -277,6 +279,7 @@ getregionpos({pos1}, {pos2} [, {opts}])
|
||||
List get a list of positions for a region
|
||||
getregtype([{regname}]) String type of a register
|
||||
getscriptinfo([{opts}]) List list of sourced scripts
|
||||
getstacktrace() List get current stack trace of Vim scripts
|
||||
gettabinfo([{expr}]) List list of tab pages
|
||||
gettabvar({nr}, {varname} [, {def}])
|
||||
any variable {varname} in tab {nr} or {def}
|
||||
@@ -1225,6 +1228,43 @@ balloon_split({msg}) *balloon_split()*
|
||||
|
||||
Return type: list<any> or list<string>
|
||||
|
||||
base64_decode({string}) *base64_decode()*
|
||||
Return a Blob containing the bytes decoded from the base64
|
||||
encoded characters in {string}.
|
||||
|
||||
The {string} argument should contain only base64-encoded
|
||||
characters and should have a length that is a multiple of 4.
|
||||
|
||||
Returns an empty blob on error.
|
||||
|
||||
Examples: >
|
||||
" Write the decoded contents to a binary file
|
||||
call writefile(base64_decode(s), 'tools.bmp')
|
||||
" Decode a base64-encoded string
|
||||
echo list2str(blob2list(base64_decode(encodedstr)))
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetEncodedString()->base64_decode()
|
||||
<
|
||||
Return type: |Blob|
|
||||
|
||||
|
||||
base64_encode({blob}) *base64_encode()*
|
||||
Return a base64-encoded String representing the bytes in
|
||||
{blob}. The base64 alphabet defined in RFC 4648 is used.
|
||||
|
||||
Examples: >
|
||||
" Encode the contents of a binary file
|
||||
echo base64_encode(readblob('somefile.bin'))
|
||||
" Encode a string
|
||||
echo base64_encode(list2blob(str2list(somestr)))
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetBinaryData()->base64_encode()
|
||||
<
|
||||
Return type: |String|
|
||||
|
||||
|
||||
bindtextdomain({package}, {path}) *bindtextdomain()*
|
||||
Bind a specific {package} to a {path} so that the
|
||||
|gettext()| function can be used to get language-specific
|
||||
@@ -1857,10 +1897,15 @@ complete_info([{what}]) *complete_info()*
|
||||
See |complete_info_mode| for the values.
|
||||
pum_visible |TRUE| if popup menu is visible.
|
||||
See |pumvisible()|.
|
||||
items List of completion matches. Each item is a
|
||||
dictionary containing the entries "word",
|
||||
items List of all completion candidates. Each item
|
||||
is a dictionary containing the entries "word",
|
||||
"abbr", "menu", "kind", "info" and "user_data".
|
||||
See |complete-items|.
|
||||
matches Same as "items", but only returns items that
|
||||
are matching current query. If both "matches"
|
||||
and "items" are in "what", the returned list
|
||||
will still be named "items", but each item
|
||||
will have an additional "match" field.
|
||||
selected Selected item index. First index is zero.
|
||||
Index is -1 if no item is selected (showing
|
||||
typed text only, or the last completion after
|
||||
@@ -4953,6 +4998,21 @@ getscriptinfo([{opts}]) *getscriptinfo()*
|
||||
Return type: list<dict<any>>
|
||||
|
||||
|
||||
getstacktrace() *getstacktrace()*
|
||||
Returns the current stack trace of Vim scripts.
|
||||
Stack trace is a |List|, of which each item is a |Dictionary|
|
||||
with the following items:
|
||||
funcref The funcref if the stack is at a function,
|
||||
otherwise this item is omitted.
|
||||
event The string of the event description if the
|
||||
stack is at an autocmd event, otherwise this
|
||||
item is omitted.
|
||||
lnum The line number in the script on the stack.
|
||||
filepath The file path of the script on the stack.
|
||||
|
||||
Return type: list<dict<any>>
|
||||
|
||||
|
||||
gettabinfo([{tabnr}]) *gettabinfo()*
|
||||
If {tabnr} is not specified, then information about all the
|
||||
tab pages is returned as a |List|. Each List item is a
|
||||
@@ -8978,7 +9038,7 @@ search({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
|
||||
's' Set the ' mark at the previous location of the cursor
|
||||
'w' Wrap around the end of the file
|
||||
'W' don't Wrap around the end of the file
|
||||
'z' start searching at the cursor column instead of zero
|
||||
'z' start searching at the cursor column instead of Zero
|
||||
If neither 'w' or 'W' is given, the 'wrapscan' option applies.
|
||||
|
||||
If the 's' flag is supplied, the ' mark is set, only if the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.1. Last change: 2024 Nov 12
|
||||
*change.txt* For Vim version 9.1. Last change: 2024 Dec 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1512,18 +1512,17 @@ since formatting is highly dependent on the type of file. It makes
|
||||
sense to use an |autoload| script, so the corresponding script is only loaded
|
||||
when actually needed and the script should be called <filetype>format.vim.
|
||||
|
||||
For example, the XML filetype plugin distributed with Vim in the $VIMRUNTIME
|
||||
directory, sets the 'formatexpr' option to: >
|
||||
For example, the XML filetype plugin distributed with Vim in the
|
||||
$VIMRUNTIME/ftplugin directory, sets the 'formatexpr' option to: >
|
||||
|
||||
setlocal formatexpr=xmlformat#Format()
|
||||
|
||||
That means, you will find the corresponding script, defining the
|
||||
xmlformat#Format() function, in the directory:
|
||||
`$VIMRUNTIME/autoload/xmlformat.vim`
|
||||
xmlformat#Format() function, in the file `$VIMRUNTIME/autoload/xmlformat.vim`
|
||||
|
||||
Here is an example script that removes trailing whitespace from the selected
|
||||
text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
|
||||
|
||||
text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim:
|
||||
>vim
|
||||
func! format#Format()
|
||||
" only reformat on explicit gq command
|
||||
if mode() != 'n'
|
||||
@@ -1556,7 +1555,7 @@ debugging it helps to set the 'debug' option.
|
||||
|
||||
*right-justify*
|
||||
There is no command in Vim to right justify text. You can do it with
|
||||
an external command, like "par" (e.g.: "!}par" to format until the end of the
|
||||
an external command, like "par" (e.g.: `:.,}!par` to format until the end of the
|
||||
paragraph) or set 'formatprg' to "par".
|
||||
|
||||
*format-comments*
|
||||
@@ -1622,7 +1621,7 @@ type of comment string. A part consists of:
|
||||
some indent for the start or end part that can be removed.
|
||||
|
||||
When a string has none of the 'f', 's', 'm' or 'e' flags, Vim assumes the
|
||||
comment string repeats at the start of each line. The flags field may be
|
||||
comment string repeats at the start of each line. The {flags} field may be
|
||||
empty.
|
||||
|
||||
Any blank space in the text before and after the {string} is part of the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 9.1. Last change: 2024 Nov 11
|
||||
*develop.txt* For Vim version 9.1. Last change: 2024 Dec 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -191,6 +191,12 @@ The basic steps to make changes to the code:
|
||||
For any non-trivial change, please always create a pull request on github,
|
||||
since this triggers the test suite.
|
||||
|
||||
*style-clang-format*
|
||||
sound.c and sign.c can be (semi-) automatically formated using the
|
||||
`clang-format` formatter according to the distributed .clang-format file.
|
||||
Other source files do not yet correspond to the .clang-format file. This may
|
||||
change in the future and they may be reformatted as well.
|
||||
|
||||
|
||||
C COMPILER *style-compiler* *ANSI-C* *C89* *C99*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.1. Last change: 2024 Nov 02
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Jan 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -797,7 +797,7 @@ length minus one is used: >
|
||||
|
||||
|
||||
Blob modification ~
|
||||
*blob-modification* *E1182* *E1184*
|
||||
*blob-modification* *E1184*
|
||||
To change a specific byte of a blob use |:let| this way: >
|
||||
:let blob[4] = 0x44
|
||||
|
||||
@@ -1953,7 +1953,8 @@ variables for each buffer. Use local buffer variables instead |b:var|.
|
||||
|
||||
PREDEFINED VIM VARIABLES *vim-variable* *v:var* *v:*
|
||||
*E963* *E1063*
|
||||
Some variables can be set by the user, but the type cannot be changed.
|
||||
Most variables are read-only, when a variable can be set by the user, it will
|
||||
be mentioned at the variable description below. The type cannot be changed.
|
||||
|
||||
*v:argv* *argv-variable*
|
||||
v:argv The command line arguments Vim was invoked with. This is a
|
||||
@@ -2172,7 +2173,8 @@ v:event Dictionary containing information about the current
|
||||
<
|
||||
*v:exception* *exception-variable*
|
||||
v:exception The value of the exception most recently caught and not
|
||||
finished. See also |v:throwpoint| and |throw-variables|.
|
||||
finished. See also |v:stacktrace|, |v:throwpoint|, and
|
||||
|throw-variables|.
|
||||
Example: >
|
||||
:try
|
||||
: throw "oops"
|
||||
@@ -2548,6 +2550,12 @@ v:sizeofpointer Number of bytes in a pointer. Depends on how Vim was compiled.
|
||||
This is only useful for deciding whether a test will give the
|
||||
expected result.
|
||||
|
||||
*v:stacktrace* *stacktrace-variable*
|
||||
v:stacktrace The stack trace of the exception most recently caught and
|
||||
not finished. Refer to |getstacktrace()| for the structure of
|
||||
stack trace. See also |v:exception|, |v:throwpoint|, and
|
||||
|throw-variables|.
|
||||
|
||||
*v:statusmsg* *statusmsg-variable*
|
||||
v:statusmsg Last given status message. It's allowed to set this variable.
|
||||
|
||||
@@ -2676,7 +2684,7 @@ v:this_session Full filename of the last loaded or saved session file. See
|
||||
*v:throwpoint* *throwpoint-variable*
|
||||
v:throwpoint The point where the exception most recently caught and not
|
||||
finished was thrown. Not set when commands are typed. See
|
||||
also |v:exception| and |throw-variables|.
|
||||
also |v:exception|, |v:stacktrace|, and |throw-variables|.
|
||||
Example: >
|
||||
:try
|
||||
: throw "oops"
|
||||
@@ -3856,7 +3864,8 @@ in the variable |v:exception|: >
|
||||
: echo "Number thrown. Value is" v:exception
|
||||
|
||||
You may also be interested where an exception was thrown. This is stored in
|
||||
|v:throwpoint|. Note that "v:exception" and "v:throwpoint" are valid for the
|
||||
|v:throwpoint|. And you can obtain the stack trace from |v:stacktrace|.
|
||||
Note that "v:exception", "v:stacktrace" and "v:throwpoint" are valid for the
|
||||
exception most recently caught as long it is not finished.
|
||||
Example: >
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 9.1. Last change: 2023 Mar 24
|
||||
*fold.txt* For Vim version 9.1. Last change: 2024 Dec 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -87,9 +87,11 @@ The most efficient is to call a compiled function without arguments: >
|
||||
The function must use v:lnum. See |expr-option-function|.
|
||||
|
||||
These are the conditions with which the expression is evaluated:
|
||||
|
||||
- The current buffer and window are set for the line.
|
||||
- The variable "v:lnum" is set to the line number.
|
||||
- The result is used for the fold level in this way:
|
||||
|
||||
The result of foldexpr then determines the fold level as follows:
|
||||
value meaning ~
|
||||
0 the line is not in a fold
|
||||
1, 2, .. the line is in a fold with this level
|
||||
@@ -104,6 +106,9 @@ These are the conditions with which the expression is evaluated:
|
||||
"<1", "<2", .. a fold with this level ends at this line
|
||||
">1", ">2", .. a fold with this level starts at this line
|
||||
|
||||
The result values "=", "s" and "a" are more expensive, please see
|
||||
|fold-expr-slow|.
|
||||
|
||||
It is not required to mark the start (end) of a fold with ">1" ("<1"), a fold
|
||||
will also start (end) when the fold level is higher (lower) than the fold
|
||||
level of the previous line.
|
||||
@@ -117,14 +122,8 @@ recognized, there is no error message and the fold level will be zero.
|
||||
For debugging the 'debug' option can be set to "msg", the error messages will
|
||||
be visible then.
|
||||
|
||||
Note: Since the expression has to be evaluated for every line, this fold
|
||||
method can be very slow!
|
||||
|
||||
Try to avoid the "=", "a" and "s" return values, since Vim often has to search
|
||||
backwards for a line for which the fold level is defined. This can be slow.
|
||||
|
||||
If the 'foldexpr' expression starts with s: or |<SID>|, then it is replaced
|
||||
with the script ID (|local-function|). Examples: >
|
||||
with the script ID (|local-function|). Examples: >
|
||||
set foldexpr=s:MyFoldExpr()
|
||||
set foldexpr=<SID>SomeFoldExpr()
|
||||
<
|
||||
@@ -148,6 +147,39 @@ end in that line.
|
||||
It may happen that folds are not updated properly. You can use |zx| or |zX|
|
||||
to force updating folds.
|
||||
|
||||
MINIMIZING COMPUTATIONAL COST *fold-expr-slow*
|
||||
|
||||
Due to its computational cost, this fold method can make Vim unresponsive,
|
||||
especially when the fold level of all lines have to be initially computed.
|
||||
Afterwards, after each change, Vim restricts the computation of foldlevels
|
||||
to those lines whose fold level was affected by it (and reuses the known
|
||||
foldlevels of all the others).
|
||||
|
||||
The fold expression should therefore strive to minimize the number of
|
||||
dependent lines needed for the computation of a given line: For example, try
|
||||
to avoid the "=", "a" and "s" return values, because these will require the
|
||||
evaluation of the fold levels on previous lines until an independent fold
|
||||
level is found.
|
||||
|
||||
If this proves difficult, the next best thing could be to cache all fold
|
||||
levels in a buffer-local variable (b:foldlevels) that is only updated on
|
||||
|b:changedtick|:
|
||||
>vim
|
||||
vim9script
|
||||
def MyFoldFunc(): number
|
||||
if b:lasttick == b:changedtick
|
||||
return b:foldlevels[v:lnum - 1]
|
||||
endif
|
||||
b:lasttick = b:changedtick
|
||||
b:foldlevels = []
|
||||
# compute foldlevels ...
|
||||
return b:foldlevels[v:lnum - 1]
|
||||
enddef
|
||||
set foldexpr=s:MyFoldFunc()
|
||||
<
|
||||
In above example further speedup was gained by using a precompiled Vim9 script
|
||||
function without arguments (that must still use v:lnum). See
|
||||
|expr-option-function|.
|
||||
|
||||
SYNTAX *fold-syntax*
|
||||
|
||||
@@ -384,8 +416,8 @@ zX Undo manually opened and closed folds: re-apply 'foldlevel'.
|
||||
Also forces recomputing folds, like |zx|.
|
||||
|
||||
*zm*
|
||||
zm Fold more: Subtract |v:count1| from 'foldlevel'. If 'foldlevel' was
|
||||
already zero nothing happens.
|
||||
zm Fold more: Subtract |v:count1| from 'foldlevel'. If
|
||||
'foldlevel' was already zero nothing happens.
|
||||
'foldenable' will be set.
|
||||
|
||||
*zM*
|
||||
@@ -449,7 +481,7 @@ zk Move upwards to the end of the previous fold. A closed fold
|
||||
|
||||
EXECUTING COMMANDS ON FOLDS ~
|
||||
|
||||
:[range]foldd[oopen] {cmd} *:foldd* *:folddo* *:folddoopen*
|
||||
:[range]foldd[oopen] {cmd} *:foldd* *:folddo* *:folddoopen*
|
||||
Execute {cmd} on all lines that are not in a closed fold.
|
||||
When [range] is given, only these lines are used.
|
||||
Each time {cmd} is executed the cursor is positioned on the
|
||||
@@ -539,7 +571,7 @@ When there is room after the text, it is filled with the character specified
|
||||
by 'fillchars'.
|
||||
|
||||
If the 'foldtext' expression starts with s: or |<SID>|, then it is replaced
|
||||
with the script ID (|local-function|). Examples: >
|
||||
with the script ID (|local-function|). Examples: >
|
||||
set foldtext=s:MyFoldText()
|
||||
set foldtext=<SID>SomeFoldText()
|
||||
<
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2024 Nov 19
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -247,10 +247,10 @@ command: >
|
||||
(requires write permission there): >
|
||||
:helptags $VIMRUNTIME/doc
|
||||
<
|
||||
*:HelpToc* *help-TOC* *help-toc-install*
|
||||
*:HelpToc* *help-TOC* *help-toc-install* *package-helptoc*
|
||||
|
||||
If you want to access an interactive table of contents, from any position in
|
||||
the file, you can use the helptoc plugin. Load the plugin with: >
|
||||
the file, you can use the helptoc plugin. Load the plugin with: >vim
|
||||
|
||||
packadd helptoc
|
||||
|
||||
@@ -433,11 +433,31 @@ To quote a block of ex-commands verbatim, place a greater than (>) character
|
||||
at the end of the line before the block and a less than (<) character as the
|
||||
first non-blank on a line following the block. Any line starting in column 1
|
||||
also implicitly stops the block of ex-commands before it. E.g. >
|
||||
function Example_Func()
|
||||
echo "Example"
|
||||
endfunction
|
||||
function Example_Func()
|
||||
echo "Example"
|
||||
endfunction
|
||||
<
|
||||
To enable syntax highlighting for a block of code, place a language name
|
||||
annotation (e.g. "vim") after a greater than (>) character. E.g. >vim
|
||||
function Example_Func()
|
||||
echo "Example"
|
||||
endfunction
|
||||
<
|
||||
*g:help_example_languages*
|
||||
By default, help files only support Vim script highlighting. If you need
|
||||
syntax highlighting for other languages, add to your |vimrc|: >
|
||||
:let g:help_example_languages = { "vim": "vim", "sh": "bash" }
|
||||
The key represents the annotation marker name, and the value is the 'syntax'
|
||||
name.
|
||||
|
||||
Note: If you do not include "vim" in "g:help_example_languages", its syntax
|
||||
highlighting will not be enabled. If you set "g:help_example_languages" to an
|
||||
empty value, syntax highlighting for embedded languages will be disabled.
|
||||
|
||||
Further note: Including arbitrary syntax languages into help files may not
|
||||
always work perfectly, if the included 'syntax' script does not account for
|
||||
such an import.
|
||||
*help-notation*
|
||||
The following are highlighted differently in a Vim help file:
|
||||
- a special key name expressed either in <> notation as in <PageDown>, or
|
||||
as a Ctrl character as in CTRL-X
|
||||
@@ -454,15 +474,15 @@ You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||
GENDER NEUTRAL LANGUAGE
|
||||
|
||||
*gender-neutral* *inclusion*
|
||||
Vim is for everybody, no matter race, gender or anything. For new or updated
|
||||
help text, gender neutral language is recommended. Some of the help text is
|
||||
many years old and there is no need to change it. We do not make any
|
||||
Vim is for everybody, no matter race, gender or anything. For new or updated
|
||||
help text, gender neutral language is recommended. Some of the help text is
|
||||
many years old and there is no need to change it. We do not make any
|
||||
assumptions about the gender of the user, no matter how the text is phrased.
|
||||
The goal is that the reader understands how Vim works, the exact wording is
|
||||
secondary.
|
||||
|
||||
Many online technical style guides include sections about gender neutral
|
||||
language. Here are a few: >
|
||||
language. Here are a few: >
|
||||
|
||||
https://developers.google.com/style/pronouns
|
||||
https://techwhirl.com/gender-neutral-technical-writing/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*indent.txt* For Vim version 9.1. Last change: 2024 Nov 12
|
||||
*indent.txt* For Vim version 9.1. Last change: 2024 Dec 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 9.1. Last change: 2023 Jul 14
|
||||
*index.txt* For Vim version 9.1. Last change: 2025 Jan 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1185,6 +1185,7 @@ tag command action ~
|
||||
|:abbreviate| :ab[breviate] enter abbreviation
|
||||
|:abclear| :abc[lear] remove all abbreviations
|
||||
|:aboveleft| :abo[veleft] make split window appear left or above
|
||||
|:abstract| :abstract declare a Vim9 abstract class
|
||||
|:all| :al[l] open a window for each file in the argument
|
||||
list
|
||||
|:amenu| :am[enu] enter new menu item for all modes
|
||||
@@ -1224,7 +1225,7 @@ tag command action ~
|
||||
|:breakdel| :breakd[el] delete a debugger breakpoint
|
||||
|:breaklist| :breakl[ist] list debugger breakpoints
|
||||
|:browse| :bro[wse] use file selection dialog
|
||||
|:bufdo| :bufdo execute command in each listed buffer
|
||||
|:bufdo| :bufd[o] execute command in each listed buffer
|
||||
|:buffers| :buffers list all files in the buffer list
|
||||
|:bunload| :bun[load] unload a specific buffer
|
||||
|:bwipeout| :bw[ipeout] really delete a buffer
|
||||
@@ -1240,7 +1241,7 @@ tag command action ~
|
||||
|:cafter| :caf[ter] go to error after current cursor
|
||||
|:call| :cal[l] call a function
|
||||
|:catch| :cat[ch] part of a :try command
|
||||
|:cbefore| :cbef[ore] go to error before current cursor
|
||||
|:cbefore| :cbe[fore] go to error before current cursor
|
||||
|:cbelow| :cbel[ow] go to error below current line
|
||||
|:cbottom| :cbo[ttom] scroll to the bottom of the quickfix window
|
||||
|:cbuffer| :cb[uffer] parse error messages and jump to first error
|
||||
@@ -1261,7 +1262,7 @@ tag command action ~
|
||||
|:checkpath| :che[ckpath] list included files
|
||||
|:checktime| :checkt[ime] check timestamp of loaded buffers
|
||||
|:chistory| :chi[story] list the error lists
|
||||
|:class| :class start of a class specification
|
||||
|:class| :class start of a class declaration
|
||||
|:clast| :cla[st] go to the specified error, default last one
|
||||
|:clearjumps| :cle[arjumps] clear the jump list
|
||||
|:clist| :cl[ist] list all errors
|
||||
@@ -1300,7 +1301,7 @@ tag command action ~
|
||||
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|
||||
|:def| :def define a Vim9 user function
|
||||
|:defcompile| :defc[ompile] compile Vim9 user functions in current script
|
||||
|:defer| :defer call function when current function is done
|
||||
|:defer| :defe[r] call function when current function is done
|
||||
|:delcommand| :delc[ommand] delete user-defined command
|
||||
|:delfunction| :delf[unction] delete a user function
|
||||
|:delmarks| :delm[arks] delete marks
|
||||
@@ -1310,7 +1311,7 @@ tag command action ~
|
||||
|:diffpatch| :diffp[atch] apply a patch and show differences
|
||||
|:diffput| :diffpu[t] remove differences in other buffer
|
||||
|:diffsplit| :diffs[plit] show differences with another file
|
||||
|:diffthis| :diffthis make current window a diff window
|
||||
|:diffthis| :difft[his] make current window a diff window
|
||||
|:digraphs| :dig[raphs] show or enter digraphs
|
||||
|:display| :di[splay] display registers
|
||||
|:disassemble| :disa[ssemble] disassemble Vim9 user function
|
||||
@@ -1336,14 +1337,17 @@ tag command action ~
|
||||
|:else| :el[se] part of an :if command
|
||||
|:elseif| :elsei[f] part of an :if command
|
||||
|:emenu| :em[enu] execute a menu by name
|
||||
|:endclass| :endclass end of a class specification
|
||||
|:endclass| :endclass end of a class declaration
|
||||
|:enddef| :enddef end of a user function started with :def
|
||||
|:endenum| :endenum end of an enum declaration
|
||||
|:endif| :en[dif] end previous :if
|
||||
|:endinterface| :endinterface end of an interface declaration
|
||||
|:endfor| :endfo[r] end previous :for
|
||||
|:endfunction| :endf[unction] end of a user function started with :function
|
||||
|:endtry| :endt[ry] end previous :try
|
||||
|:endwhile| :endw[hile] end previous :while
|
||||
|:enew| :ene[w] edit a new, unnamed buffer
|
||||
|:enum| :enum start of an enum declaration
|
||||
|:eval| :ev[al] evaluate an expression and discard the result
|
||||
|:ex| :ex same as ":edit"
|
||||
|:execute| :exe[cute] execute result of expressions
|
||||
@@ -1397,6 +1401,7 @@ tag command action ~
|
||||
|:inoreabbrev| :inorea[bbrev] like ":noreabbrev" but for Insert mode
|
||||
|:inoremenu| :inoreme[nu] like ":noremenu" but for Insert mode
|
||||
|:intro| :int[ro] print the introductory message
|
||||
|:interface| :interface start of an interface declaration
|
||||
|:isearch| :is[earch] list one line where identifier matches
|
||||
|:isplit| :isp[lit] split window and jump to definition of
|
||||
identifier
|
||||
@@ -1421,7 +1426,7 @@ tag command action ~
|
||||
|:last| :la[st] go to the last file in the argument list
|
||||
|:language| :lan[guage] set the language (locale)
|
||||
|:later| :lat[er] go to newer change, redo
|
||||
|:lbefore| :lbef[ore] go to location before current cursor
|
||||
|:lbefore| :lbe[fore] go to location before current cursor
|
||||
|:lbelow| :lbel[ow] go to location below current line
|
||||
|:lbottom| :lbo[ttom] scroll to the bottom of the location window
|
||||
|:lbuffer| :lb[uffer] parse locations and jump to first location
|
||||
@@ -1461,7 +1466,7 @@ tag command action ~
|
||||
|:lockmarks| :loc[kmarks] following command keeps marks where they are
|
||||
|:lockvar| :lockv[ar] lock variables
|
||||
|:lolder| :lol[der] go to older location list
|
||||
|:lopen| :lope[n] open location window
|
||||
|:lopen| :lop[en] open location window
|
||||
|:lprevious| :lp[revious] go to previous location
|
||||
|:lpfile| :lpf[ile] go to last location in previous file
|
||||
|:lrewind| :lr[ewind] go to the specified location, default first one
|
||||
@@ -1496,7 +1501,7 @@ tag command action ~
|
||||
|:mzfile| :mzf[ile] execute MzScheme script file
|
||||
|:nbclose| :nbc[lose] close the current Netbeans session
|
||||
|:nbkey| :nb[key] pass a key to Netbeans
|
||||
|:nbstart| :nbs[art] start a new Netbeans session
|
||||
|:nbstart| :nbs[tart] start a new Netbeans session
|
||||
|:next| :n[ext] go to next file in the argument list
|
||||
|:new| :new create a new empty window
|
||||
|:nmap| :nm[ap] like ":map" but for Normal mode
|
||||
@@ -1529,6 +1534,7 @@ tag command action ~
|
||||
|:ownsyntax| :ow[nsyntax] set new local syntax highlight for this window
|
||||
|:packadd| :pa[ckadd] add a plugin from 'packpath'
|
||||
|:packloadall| :packl[oadall] load all packages under 'packpath'
|
||||
|:pbuffer| :pb[uffer] edit buffer in the preview window
|
||||
|:pclose| :pc[lose] close preview window
|
||||
|:pedit| :ped[it] edit file in the preview window
|
||||
|:perl| :pe[rl] execute Perl command
|
||||
@@ -1681,7 +1687,7 @@ tag command action ~
|
||||
|:tNext| :tN[ext] jump to previous matching tag
|
||||
|:tabNext| :tabN[ext] go to previous tab page
|
||||
|:tabclose| :tabc[lose] close current tab page
|
||||
|:tabdo| :tabdo execute command in each tab page
|
||||
|:tabdo| :tabd[o] execute command in each tab page
|
||||
|:tabedit| :tabe[dit] edit a file in a new tab page
|
||||
|:tabfind| :tabf[ind] find file in 'path', edit it in a new tab page
|
||||
|:tabfirst| :tabfir[st] go to first tab page
|
||||
@@ -1705,6 +1711,8 @@ tag command action ~
|
||||
|:terminal| :ter[minal] open a terminal window
|
||||
|:tfirst| :tf[irst] jump to first matching tag
|
||||
|:throw| :th[row] throw an exception
|
||||
|:this| :this prefix for an object member during
|
||||
initialization (e.g. on |new()|)
|
||||
|:tjump| :tj[ump] like ":tselect", but jump directly when there
|
||||
is only one match
|
||||
|:tlast| :tl[ast] jump to last matching tag
|
||||
@@ -1723,6 +1731,7 @@ tag command action ~
|
||||
|:tselect| :ts[elect] list matching tags and select one
|
||||
|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|
||||
|:tunmenu| :tu[nmenu] remove menu tooltip
|
||||
|:type| :type create a type alias
|
||||
|:undo| :u[ndo] undo last change(s)
|
||||
|:undojoin| :undoj[oin] join next change with previous undo block
|
||||
|:undolist| :undol[ist] list leafs of the undo tree
|
||||
@@ -1756,7 +1765,7 @@ tag command action ~
|
||||
|:vsplit| :vs[plit] split current window vertically
|
||||
|:vunmap| :vu[nmap] like ":unmap" but for Visual+Select mode
|
||||
|:vunmenu| :vunme[nu] remove menu for Visual+Select mode
|
||||
|:windo| :windo execute command in each window
|
||||
|:windo| :wind[o] execute command in each window
|
||||
|:write| :w[rite] write to a file
|
||||
|:wNext| :wN[ext] write to a file and go to previous file in
|
||||
argument list
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.1. Last change: 2024 Oct 08
|
||||
*insert.txt* For Vim version 9.1. Last change: 2024 Dec 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1195,6 +1195,7 @@ items:
|
||||
|hl-PmenuKind| highlight group, allowing for the
|
||||
customization of ctermfg and guifg properties for the
|
||||
completion kind
|
||||
match See "matches" in |complete_info()|.
|
||||
|
||||
All of these except "icase", "equal", "dup" and "empty" must be a string. If
|
||||
an item does not meet these requirements then an error message is given and
|
||||
@@ -2090,7 +2091,7 @@ the cursor is, or below the specified line. To insert text above the first
|
||||
line use the command ":0r {name}".
|
||||
|
||||
After the ":read" command, the cursor is left on the first non-blank in the
|
||||
first new line. Unless in Ex mode, then the cursor is left on the last new
|
||||
first new line. If in Ex mode, then the cursor is left on the last new
|
||||
line (sorry, this is Vi compatible).
|
||||
|
||||
If a file name is given with ":r", it becomes the alternate file. This can be
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.1. Last change: 2024 Oct 06
|
||||
*motion.txt* For Vim version 9.1. Last change: 2024 Dec 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -122,6 +122,12 @@ This cannot be repeated: >
|
||||
endif<CR>
|
||||
Note that when using ":" any motion becomes characterwise exclusive.
|
||||
|
||||
*inclusive-motion-selection-exclusive*
|
||||
When 'selection' is "exclusive", |Visual| mode is active and an inclusive
|
||||
motion has been used, the cursor position will be adjusted by another
|
||||
character to the right, so that the Visual selection includes the expected
|
||||
text and can be acted upon.
|
||||
|
||||
*forced-motion*
|
||||
FORCING A MOTION TO BE LINEWISE, CHARACTERWISE OR BLOCKWISE
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.1. Last change: 2024 Dec 07
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Jan 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -4348,7 +4348,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
#:TabLineSel,_:TabLineFill,!:CursorColumn,
|
||||
.:CursorLine,o:ColorColumn,q:QuickFixLine,
|
||||
z:StatusLineTerm,Z:StatusLineTermNC,
|
||||
g:MsgArea")
|
||||
g:MsgArea,h:ComplMatchIns")
|
||||
global
|
||||
This option can be used to set highlighting mode for various
|
||||
occasions. It is a comma-separated list of character pairs. The
|
||||
@@ -4368,6 +4368,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-MoreMsg| m |more-prompt|
|
||||
|hl-ModeMsg| M Mode (e.g., "-- INSERT --")
|
||||
|hl-MsgArea| g |Command-line| and message area
|
||||
|hl-ComplMatchIns| h matched text of currently inserted completion
|
||||
|hl-LineNr| n line number for ":number" and ":#" commands, and
|
||||
when 'number' or 'relativenumber' option is set.
|
||||
|hl-LineNrAbove| a line number above the cursor for when the
|
||||
@@ -5072,11 +5073,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
a pattern that is matched against the 'term' option, a colon and the
|
||||
protocol name to be used. To illustrate this, the default value would
|
||||
be set with: >
|
||||
set keyprotocol=kitty:kitty,foot:kitty,wezterm:kitty,xterm:mok2
|
||||
set keyprotocol=kitty:kitty,foot:kitty,ghostty:kitty,wezterm:kitty
|
||||
set keyprotocol+=xterm:mok2
|
||||
|
||||
< This means that when 'term' contains "kitty, "foot" or "wezterm"
|
||||
somewhere then the "kitty" protocol is used. When 'term' contains
|
||||
"xterm" somewhere, then the "mok2" protocol is used.
|
||||
< This means that when 'term' contains "kitty, "foot", "ghostty" or
|
||||
"wezterm" somewhere, then the "kitty" protocol is used. When 'term'
|
||||
contains "xterm" somewhere, then the "mok2" protocol is used.
|
||||
|
||||
The first match is used, thus if you want to have "kitty" use the
|
||||
kitty protocol, but "badkitty" not, then you should match "badkitty"
|
||||
@@ -5638,22 +5640,24 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'messagesopt' 'mopt' string (default "hit-enter,history:500")
|
||||
global
|
||||
|
||||
Option settings when outputting messages. It can consist of the
|
||||
Option settings for outputting messages. It can consist of the
|
||||
following items. Items must be separated by a comma.
|
||||
|
||||
hit-enter Use |hit-enter| prompt when the message is longer than
|
||||
hit-enter Use a |hit-enter| prompt when the message is longer than
|
||||
'cmdheight' size.
|
||||
|
||||
wait:{n} Ignored when "hit-enter" is present. Instead of using
|
||||
|hit-enter| prompt, will simply wait for {n}
|
||||
milliseconds so the user has a chance to read the
|
||||
message, use 0 to disable sleep (but then the user may
|
||||
miss an important message).
|
||||
The maximum value is 10000.
|
||||
wait:{n} Instead of using a |hit-enter| prompt, simply wait for
|
||||
{n} milliseconds so that the user has a chance to read
|
||||
the message. The maximum value of {n} is 10000. Use
|
||||
0 to disable the wait (but then the user may miss an
|
||||
important message).
|
||||
This item is ignored when "hit-enter" is present, but
|
||||
required when "hit-enter" is not present.
|
||||
|
||||
history:{n} Determines how many entries are remembered in the
|
||||
|:messages| history. The maximum value is 10000.
|
||||
Setting it to zero clears the message history.
|
||||
This item must always be present.
|
||||
|
||||
*'mkspellmem'* *'msm'*
|
||||
'mkspellmem' 'msm' string (default "460000,2000,500")
|
||||
@@ -7016,6 +7020,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
selection.
|
||||
When "old" is used and 'virtualedit' allows the cursor to move past
|
||||
the end of line the line break still isn't included.
|
||||
When "exclusive" is used, cursor position in visual mode will be
|
||||
adjusted for inclusive motions |inclusive-motion-selection-exclusive|.
|
||||
Note that when "exclusive" is used and selecting from the end
|
||||
backwards, you cannot include the last character of a line, when
|
||||
starting in Normal mode and 'virtualedit' empty.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_dos.txt* For Vim version 9.1. Last change: 2024 Sep 24
|
||||
*os_dos.txt* For Vim version 9.1. Last change: 2024 Dec 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -292,9 +292,9 @@ should be:
|
||||
'shellquote' "
|
||||
'shellxquote' "
|
||||
|
||||
For Dos 16 bit this starts the shell as:
|
||||
For Dos 16 bit this starts the shell as: >
|
||||
<shell> -c "command name" >file
|
||||
For Win32 as:
|
||||
For Win32 as: >
|
||||
<shell> -c "command name >file"
|
||||
For DOS 32 bit, DJGPP does this internally somehow.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2024 Nov 09
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2024 Dec 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1504,6 +1504,7 @@ criteria:
|
||||
- Matches at a camel case character (e.g. Case in CamelCase)
|
||||
- Matches after a path separator or a hyphen.
|
||||
- The number of unmatched characters in a string.
|
||||
- A full/exact match is preferred.
|
||||
The matching string with the highest score is returned first.
|
||||
|
||||
For example, when you search for the "get pat" string using fuzzy matching, it
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_tutor.txt* For Vim version 9.1. Last change: 2024 Nov 09
|
||||
*pi_tutor.txt* For Vim version 9.1. Last change: 2024 Dec 17
|
||||
|
||||
INTERACTIVE TUTORIALS FOR VIM *vim-tutor-mode*
|
||||
|
||||
@@ -16,21 +16,28 @@ by double-clicking them.
|
||||
1.1 Commands
|
||||
------------
|
||||
*:Tutor*
|
||||
:Tutor {tutorial} Opens a tutorial. Command-line completion for
|
||||
{tutorial} is provided, the candidates are a list of
|
||||
'.tutor' files found in the 'tutor/' folder in
|
||||
the 'runtimepath'. Tutorials prefixed with 'vim-'
|
||||
:Tutor [tutorial] Opens a tutorial. Command-line completion for
|
||||
[tutorial] is provided, the candidates are a list of
|
||||
".tutor" files found in the "tutor/<lang>/" folder in
|
||||
the 'runtimepath'. Tutorials prefixed with "vim-"
|
||||
will always be shown first.
|
||||
|
||||
If no {tutorial} is provided, the command starts the
|
||||
'vim-01-beginner' tutorial, which is equivalent to
|
||||
Vim's `vimtutor`.
|
||||
If no [tutorial] is provided, the command starts the
|
||||
"vim-01-beginner" tutorial, which is equivalent to
|
||||
Vim's `vimtutor`, chapter 1.
|
||||
|
||||
Uses the translated tutorial for the current message
|
||||
language if possible (|v:lang|), e.g. to open the
|
||||
chapter 1 of the Italian tutor, use: >
|
||||
|
||||
:lang it_IT.UTF-8
|
||||
:Tutor
|
||||
<
|
||||
=============================================================================
|
||||
2. Creating tutorials *vim-tutor-create*
|
||||
|
||||
Writing vim-tutor-mode tutorials is easy. For an overview of the format used,
|
||||
please consult the 'tutor.tutor' file: >
|
||||
please consult the "tutor.tutor" file: >
|
||||
|
||||
:Tutor tutor
|
||||
<
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 9.1. Last change: 2024 Jun 16
|
||||
*popup.txt* For Vim version 9.1. Last change: 2025 Jan 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -257,8 +257,8 @@ popup_clear([{force}])
|
||||
|
||||
|
||||
popup_close({id} [, {result}]) *popup_close()*
|
||||
Close popup {id}. The window and the associated buffer will
|
||||
be deleted.
|
||||
Close popup {id}. The window will be deleted. The associated
|
||||
buffer will be deleted, if the popup created a new buffer.
|
||||
|
||||
If the popup has a callback it will be called just before the
|
||||
popup window is deleted. If the optional {result} is present
|
||||
@@ -705,7 +705,6 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
present. Use zero to reset.
|
||||
fixed When FALSE (the default), and:
|
||||
- "pos" is "botleft" or "topleft", and
|
||||
- "wrap" is off, and
|
||||
- the popup would be truncated at the right edge of
|
||||
the screen, then
|
||||
the popup is moved to the left so as to fit the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2024 Nov 28
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -550,9 +550,9 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
||||
< Otherwise it works the same as `:ldo`.
|
||||
|
||||
FILTERING A QUICKFIX OR LOCATION LIST:
|
||||
*cfilter-plugin* *:Cfilter* *:Lfilter*
|
||||
*cfilter-plugin* *:Cfilter* *:Lfilter* *package-cfilter*
|
||||
If you have too many entries in a quickfix list, you can use the cfilter
|
||||
plugin to reduce the number of entries. Load the plugin with: >
|
||||
plugin to reduce the number of entries. Load the plugin with: >vim
|
||||
|
||||
packadd cfilter
|
||||
|
||||
@@ -1349,7 +1349,7 @@ It scans the Java bytecode of all classes in the currently open buffer.
|
||||
(Therefore, `:compiler! spotbugs` is not supported.)
|
||||
|
||||
Commonly used compiler options can be added to 'makeprg' by setting the
|
||||
"b:" or "g:spotbugs_makeprg_params" variable. For example: >
|
||||
"b:" or "g:spotbugs_makeprg_params" variable. For example: >vim
|
||||
|
||||
let b:spotbugs_makeprg_params = "-longBugCodes -effort:max -low"
|
||||
|
||||
@@ -1359,22 +1359,25 @@ By default, the class files are searched in the directory where the source
|
||||
files are placed. However, typical Java projects use distinct directories
|
||||
for source files and class files. To make both known to SpotBugs, assign
|
||||
their paths (distinct and relative to their common root directory) to the
|
||||
following properties (using the example of a common Maven project): >
|
||||
following properties (using the example of a common Maven project): >vim
|
||||
|
||||
let g:spotbugs_properties = {
|
||||
\ 'sourceDirPath': 'src/main/java',
|
||||
\ 'classDirPath': 'target/classes',
|
||||
\ 'testSourceDirPath': 'src/test/java',
|
||||
\ 'testClassDirPath': 'target/test-classes',
|
||||
\ 'sourceDirPath': ['src/main/java'],
|
||||
\ 'classDirPath': ['target/classes'],
|
||||
\ 'testSourceDirPath': ['src/test/java'],
|
||||
\ 'testClassDirPath': ['target/test-classes'],
|
||||
\ }
|
||||
|
||||
Note that source and class path entries are expected to come in pairs: define
|
||||
both "sourceDirPath" and "classDirPath" when you are considering at least one,
|
||||
and apply the same logic to "testSourceDirPath" and "testClassDirPath".
|
||||
Note that values for the path keys describe only for SpotBugs where to look
|
||||
for files; refer to the documentation for particular compiler plugins for more
|
||||
information.
|
||||
|
||||
The default pre- and post-compiler actions are provided for Ant, Maven, and
|
||||
Javac compiler plugins and can be selected by assigning the name of a compiler
|
||||
plugin to the "compiler" key: >
|
||||
plugin (`ant`, `maven`, or `javac`) to the "compiler" key: >vim
|
||||
|
||||
let g:spotbugs_properties = {
|
||||
\ 'compiler': 'maven',
|
||||
@@ -1384,7 +1387,7 @@ This single setting is essentially equivalent to all the settings below, with
|
||||
the exception made for the "PreCompilerAction" and "PreCompilerTestAction"
|
||||
values: their listed |Funcref|s will obtain no-op implementations whereas the
|
||||
implicit Funcrefs of the "compiler" key will obtain the requested defaults if
|
||||
available. >
|
||||
available. >vim
|
||||
|
||||
let g:spotbugs_properties = {
|
||||
\ 'PreCompilerAction':
|
||||
@@ -1393,10 +1396,10 @@ available. >
|
||||
\ function('spotbugs#DefaultPreCompilerTestAction'),
|
||||
\ 'PostCompilerAction':
|
||||
\ function('spotbugs#DefaultPostCompilerAction'),
|
||||
\ 'sourceDirPath': 'src/main/java',
|
||||
\ 'classDirPath': 'target/classes',
|
||||
\ 'testSourceDirPath': 'src/test/java',
|
||||
\ 'testClassDirPath': 'target/test-classes',
|
||||
\ 'sourceDirPath': ['src/main/java'],
|
||||
\ 'classDirPath': ['target/classes'],
|
||||
\ 'testSourceDirPath': ['src/test/java'],
|
||||
\ 'testClassDirPath': ['target/test-classes'],
|
||||
\ }
|
||||
|
||||
With default actions, the compiler of choice will attempt to rebuild the class
|
||||
@@ -1404,23 +1407,106 @@ files for the buffer (and possibly for the whole project) as soon as a Java
|
||||
syntax file is loaded; then, `spotbugs` will attempt to analyze the quality of
|
||||
the compilation unit of the buffer.
|
||||
|
||||
When default actions are not suited to a desired workflow, consider writing
|
||||
arbitrary functions yourself and matching their |Funcref|s to the supported
|
||||
Vim commands proficient in 'makeprg' [0] can be composed with default actions.
|
||||
Begin by considering which of the supported keys, "DefaultPreCompilerCommand",
|
||||
"DefaultPreCompilerTestCommand", or "DefaultPostCompilerCommand", you need to
|
||||
write an implementation for, observing that each of these keys corresponds to
|
||||
a particular "*Action" key. Follow it by defining a new function that always
|
||||
declares an only parameter of type string and puts to use a command equivalent
|
||||
of |:make|, and assigning its |Funcref| to the selected key. For example:
|
||||
>vim
|
||||
function! GenericPostCompilerCommand(arguments) abort
|
||||
execute 'make ' . a:arguments
|
||||
endfunction
|
||||
|
||||
let g:spotbugs_properties = {
|
||||
\ 'DefaultPostCompilerCommand':
|
||||
\ function('GenericPostCompilerCommand'),
|
||||
\ }
|
||||
|
||||
When "PostCompilerAction" is available, "PostCompilerActionExecutor" is also
|
||||
supported. Its value must be a Funcref pointing to a function that always
|
||||
declares a single parameter of type string and decides whether |:execute| can
|
||||
be dispatched on its argument, containing a pending post-compiler action,
|
||||
after ascertaining the current status of |:cc| (or |:ll|): >vim
|
||||
|
||||
function! GenericPostCompilerActionExecutor(action) abort
|
||||
try
|
||||
cc
|
||||
catch /\<E42:/
|
||||
execute a:action
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
Complementary, some or all of the available "Pre*Action"s (or "*Pre*Command"s)
|
||||
may run `:doautocmd java_spotbugs_post User` in their implementations before
|
||||
|:make| (or its equivalent) to define a once-only |ShellCmdPost| `:autocmd`
|
||||
that will arrange for "PostCompilerActionExecutor" to be invoked; and then run
|
||||
`:doautocmd java_spotbugs_post ShellCmdPost` to consume this event: >vim
|
||||
|
||||
function! GenericPreCompilerCommand(arguments) abort
|
||||
if !exists('g:spotbugs_compilation_done')
|
||||
doautocmd java_spotbugs_post User
|
||||
execute 'make ' . a:arguments
|
||||
" only run doautocmd when :make was synchronous
|
||||
" see note below
|
||||
doautocmd java_spotbugs_post ShellCmdPost " XXX: (a)
|
||||
let g:spotbugs_compilation_done = 1
|
||||
else
|
||||
cc
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! GenericPreCompilerTestCommand(arguments) abort
|
||||
if !exists('g:spotbugs_test_compilation_done')
|
||||
doautocmd java_spotbugs_post User
|
||||
execute 'make ' . a:arguments
|
||||
" only run doautocmd when :make was synchronous
|
||||
" see note below
|
||||
doautocmd java_spotbugs_post ShellCmdPost " XXX: (b)
|
||||
let g:spotbugs_test_compilation_done = 1
|
||||
else
|
||||
cc
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let g:spotbugs_properties = {
|
||||
\ 'compiler': 'maven',
|
||||
\ 'DefaultPreCompilerCommand':
|
||||
\ function('GenericPreCompilerCommand'),
|
||||
\ 'DefaultPreCompilerTestCommand':
|
||||
\ function('GenericPreCompilerTestCommand'),
|
||||
\ 'PostCompilerActionExecutor':
|
||||
\ function('GenericPostCompilerActionExecutor'),
|
||||
\ }
|
||||
|
||||
If a command equivalent of `:make` is capable of asynchronous execution and
|
||||
consuming `ShellCmdPost` events, `:doautocmd java_spotbugs_post ShellCmdPost`
|
||||
must be removed from such "*Action" (or "*Command") implementations (i.e. the
|
||||
lines `(a)` and `(b)` in the listed examples) to retain a sequential order for
|
||||
non-blocking execution, and any notification (see below) must be suppressed.
|
||||
A `ShellCmdPost` `:autocmd` can be associated with any |:augroup| by assigning
|
||||
its name to the "augroupForPostCompilerAction" key.
|
||||
|
||||
When default actions are not suited to a desired workflow, proceed by writing
|
||||
arbitrary functions yourself and matching their Funcrefs to the supported
|
||||
keys: "PreCompilerAction", "PreCompilerTestAction", and "PostCompilerAction".
|
||||
|
||||
The next example re-implements the default pre-compiler actions for a Maven
|
||||
project and requests other default Maven settings with the "compiler" entry: >
|
||||
|
||||
project and requests other default Maven settings with the "compiler" entry:
|
||||
>vim
|
||||
function! MavenPreCompilerAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler maven
|
||||
make compile
|
||||
cc
|
||||
endfunction
|
||||
|
||||
function! MavenPreCompilerTestAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler maven
|
||||
make test-compile
|
||||
cc
|
||||
endfunction
|
||||
|
||||
let g:spotbugs_properties = {
|
||||
@@ -1433,14 +1519,46 @@ project and requests other default Maven settings with the "compiler" entry: >
|
||||
|
||||
Note that all entered custom settings will take precedence over the matching
|
||||
default settings in "g:spotbugs_properties".
|
||||
Note that it is necessary to notify the plugin of the result of a pre-compiler
|
||||
action before further work can be undertaken. Using |:cc| after |:make| (or
|
||||
|:ll| after |:lmake|) as the last command of an action is the supported means
|
||||
of such communication.
|
||||
|
||||
Two commands, "SpotBugsRemoveBufferAutocmd" and "SpotBugsDefineBufferAutocmd",
|
||||
are provided to toggle actions for buffer-local autocommands. For example, to
|
||||
also run actions on any |BufWritePost| and |SigUSR1| event, add these lines to
|
||||
`~/.vim/after/ftplugin/java.vim`: >vim
|
||||
|
||||
if exists(':SpotBugsDefineBufferAutocmd') == 2
|
||||
SpotBugsDefineBufferAutocmd BufWritePost SigUSR1
|
||||
endif
|
||||
|
||||
Otherwise, you can turn to `:doautocmd java_spotbugs User` at any time.
|
||||
|
||||
The "g:spotbugs_properties" variable is consulted by the Java filetype plugin
|
||||
(|ft-java-plugin|) to arrange for the described automation, and, therefore, it
|
||||
must be defined before |FileType| events can take place for the buffers loaded
|
||||
with Java source files. It could, for example, be set in a project-local
|
||||
|vimrc| loaded by [0].
|
||||
|vimrc| loaded by [1].
|
||||
|
||||
[0] https://github.com/MarcWeber/vim-addon-local-vimrc/
|
||||
Both "g:spotbugs_properties" and "b:spotbugs_properties" are recognized and
|
||||
must be modifiable (|:unlockvar|). The "*Command" entries are always treated
|
||||
as global functions to be shared among all Java buffers.
|
||||
|
||||
The SpotBugs Java library and, by extension, its distributed shell scripts do
|
||||
not support in the `-textui` mode listed pathnames with directory filenames
|
||||
that contain blank characters [2]. To work around this limitation, consider
|
||||
making a symbolic link to such a directory from a directory that does not have
|
||||
blank characters in its name and passing this information to SpotBugs: >vim
|
||||
|
||||
let g:spotbugs_alternative_path = {
|
||||
\ 'fromPath': 'path/to/dir_without_blanks',
|
||||
\ 'toPath': 'path/to/dir with blanks',
|
||||
\ }
|
||||
|
||||
[0] https://github.com/Konfekt/vim-compilers
|
||||
[1] https://github.com/MarcWeber/vim-addon-local-vimrc
|
||||
[2] https://github.com/spotbugs/spotbugs/issues/909
|
||||
|
||||
GNU MAKE *compiler-make*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*starting.txt* For Vim version 9.1. Last change: 2024 Dec 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -976,6 +976,7 @@ accordingly. Vim proceeds in this order:
|
||||
The $MYVIMRC or $MYGVIMRC environment variable will be set to the first found
|
||||
vimrc and/or gvimrc file while $MYVIMDIR is set to the users personal runtime
|
||||
directory 'rtp' (typically the first entry in 'runtimepath').
|
||||
Note: These environment variables resolve symbolic links, but 'rtp' does not.
|
||||
|
||||
|
||||
Some hints on using initializations ~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2024 Nov 10
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -883,12 +883,15 @@ There are many types of assembly languages that all use the same file name
|
||||
extensions. Therefore you will have to select the type yourself, or add a
|
||||
line in the assembly file that Vim will recognize. Currently these syntax
|
||||
files are included:
|
||||
asm GNU assembly (the default)
|
||||
asm GNU assembly (usually have .s or .S extension and were
|
||||
already built using C compiler such as GCC or CLANG)
|
||||
asm68k Motorola 680x0 assembly
|
||||
asmh8300 Hitachi H-8300 version of GNU assembly
|
||||
ia64 Intel Itanium 64
|
||||
fasm Flat assembly (http://flatassembler.net)
|
||||
masm Microsoft assembly (probably works for any 80x86)
|
||||
masm Microsoft assembly (.masm files are compiled with
|
||||
Microsoft's Macro Assembler. This is only supported
|
||||
for x86, x86_64, ARM and AARCH64 CPU families)
|
||||
nasm Netwide assembly
|
||||
tasm Turbo Assembly (with opcodes 80x86 up to Pentium, and
|
||||
MMX)
|
||||
@@ -5851,9 +5854,13 @@ PmenuSbar Popup menu: Scrollbar.
|
||||
*hl-PmenuThumb*
|
||||
PmenuThumb Popup menu: Thumb of the scrollbar.
|
||||
*hl-PmenuMatch*
|
||||
PmenuMatch Popup menu: Matched text in normal item.
|
||||
PmenuMatch Popup menu: Matched text in normal item. Applied in
|
||||
combination with |hl-Pmenu|.
|
||||
*hl-PmenuMatchSel*
|
||||
PmenuMatchSel Popup menu: Matched text in selected item.
|
||||
PmenuMatchSel Popup menu: Matched text in selected item. Applied in
|
||||
combination with |hl-PmenuSel|.
|
||||
*hl-ComplMatchIns*
|
||||
ComplMatchIns Matched text of the currently inserted completion.
|
||||
*hl-PopupNotification*
|
||||
PopupNotification
|
||||
Popup window created with |popup_notification()|. If not
|
||||
|
||||
@@ -2129,6 +2129,7 @@ $quote eval.txt /*$quote*
|
||||
:GnatTags ft_ada.txt /*:GnatTags*
|
||||
:HelpToc helphelp.txt /*:HelpToc*
|
||||
:Hexplore pi_netrw.txt /*:Hexplore*
|
||||
:Justify usr_25.txt /*:Justify*
|
||||
:LP pi_logipat.txt /*:LP*
|
||||
:LPE pi_logipat.txt /*:LPE*
|
||||
:LPF pi_logipat.txt /*:LPF*
|
||||
@@ -3026,6 +3027,8 @@ $quote eval.txt /*$quote*
|
||||
:packadd repeat.txt /*:packadd*
|
||||
:packl repeat.txt /*:packl*
|
||||
:packloadall repeat.txt /*:packloadall*
|
||||
:pb windows.txt /*:pb*
|
||||
:pbuffer windows.txt /*:pbuffer*
|
||||
:pc windows.txt /*:pc*
|
||||
:pclose windows.txt /*:pclose*
|
||||
:pe if_perl.txt /*:pe*
|
||||
@@ -3056,9 +3059,9 @@ $quote eval.txt /*$quote*
|
||||
:promptrepl change.txt /*:promptrepl*
|
||||
:ps windows.txt /*:ps*
|
||||
:psearch windows.txt /*:psearch*
|
||||
:pt windows.txt /*:pt*
|
||||
:ptN tagsrch.txt /*:ptN*
|
||||
:ptNext tagsrch.txt /*:ptNext*
|
||||
:pta windows.txt /*:pta*
|
||||
:ptag windows.txt /*:ptag*
|
||||
:ptf tagsrch.txt /*:ptf*
|
||||
:ptfirst tagsrch.txt /*:ptfirst*
|
||||
@@ -4290,7 +4293,7 @@ E1179 options.txt /*E1179*
|
||||
E118 eval.txt /*E118*
|
||||
E1180 vim9.txt /*E1180*
|
||||
E1181 vim9.txt /*E1181*
|
||||
E1182 eval.txt /*E1182*
|
||||
E1182 vim9.txt /*E1182*
|
||||
E1183 eval.txt /*E1183*
|
||||
E1184 eval.txt /*E1184*
|
||||
E1185 various.txt /*E1185*
|
||||
@@ -5565,6 +5568,7 @@ J change.txt /*J*
|
||||
Japanese mbyte.txt /*Japanese*
|
||||
Job eval.txt /*Job*
|
||||
Jobs eval.txt /*Jobs*
|
||||
Justify() usr_25.txt /*Justify()*
|
||||
K various.txt /*K*
|
||||
KDE gui_x11.txt /*KDE*
|
||||
KVim gui_x11.txt /*KVim*
|
||||
@@ -6162,6 +6166,8 @@ balloon_show() builtin.txt /*balloon_show()*
|
||||
balloon_split() builtin.txt /*balloon_split()*
|
||||
bar motion.txt /*bar*
|
||||
bars help.txt /*bars*
|
||||
base64_decode() builtin.txt /*base64_decode()*
|
||||
base64_encode() builtin.txt /*base64_encode()*
|
||||
base_font_name_list mbyte.txt /*base_font_name_list*
|
||||
basic.vim syntax.txt /*basic.vim*
|
||||
beep options.txt /*beep*
|
||||
@@ -7218,6 +7224,7 @@ fold-create-marker fold.txt /*fold-create-marker*
|
||||
fold-delete-marker fold.txt /*fold-delete-marker*
|
||||
fold-diff fold.txt /*fold-diff*
|
||||
fold-expr fold.txt /*fold-expr*
|
||||
fold-expr-slow fold.txt /*fold-expr-slow*
|
||||
fold-foldcolumn fold.txt /*fold-foldcolumn*
|
||||
fold-foldlevel fold.txt /*fold-foldlevel*
|
||||
fold-foldtext fold.txt /*fold-foldtext*
|
||||
@@ -7580,6 +7587,7 @@ g:gzip_exec pi_gzip.txt /*g:gzip_exec*
|
||||
g:hare_recommended_style ft_hare.txt /*g:hare_recommended_style*
|
||||
g:hare_space_error ft_hare.txt /*g:hare_space_error*
|
||||
g:haredoc_search_depth ft_hare.txt /*g:haredoc_search_depth*
|
||||
g:help_example_languages helphelp.txt /*g:help_example_languages*
|
||||
g:html_charset_override syntax.txt /*g:html_charset_override*
|
||||
g:html_diff_one_file syntax.txt /*g:html_diff_one_file*
|
||||
g:html_dynamic_folds syntax.txt /*g:html_dynamic_folds*
|
||||
@@ -7902,6 +7910,7 @@ getscript-history pi_getscript.txt /*getscript-history*
|
||||
getscript-plugins pi_getscript.txt /*getscript-plugins*
|
||||
getscript-start pi_getscript.txt /*getscript-start*
|
||||
getscriptinfo() builtin.txt /*getscriptinfo()*
|
||||
getstacktrace() builtin.txt /*getstacktrace()*
|
||||
gettabinfo() builtin.txt /*gettabinfo()*
|
||||
gettabvar() builtin.txt /*gettabvar()*
|
||||
gettabwinvar() builtin.txt /*gettabwinvar()*
|
||||
@@ -7917,6 +7926,7 @@ gf editing.txt /*gf*
|
||||
gg motion.txt /*gg*
|
||||
gh visual.txt /*gh*
|
||||
gi insert.txt /*gi*
|
||||
git-vimdumps terminal.txt /*git-vimdumps*
|
||||
gj motion.txt /*gj*
|
||||
gk motion.txt /*gk*
|
||||
glob() builtin.txt /*glob()*
|
||||
@@ -8083,6 +8093,7 @@ help-TOC helphelp.txt /*help-TOC*
|
||||
help-buffer-options helphelp.txt /*help-buffer-options*
|
||||
help-context help.txt /*help-context*
|
||||
help-curwin tips.txt /*help-curwin*
|
||||
help-notation helphelp.txt /*help-notation*
|
||||
help-summary usr_02.txt /*help-summary*
|
||||
help-tags tags 1
|
||||
help-toc-install helphelp.txt /*help-toc-install*
|
||||
@@ -8133,6 +8144,7 @@ hit-return message.txt /*hit-return*
|
||||
hitest.vim syntax.txt /*hitest.vim*
|
||||
hjkl usr_02.txt /*hjkl*
|
||||
hl-ColorColumn syntax.txt /*hl-ColorColumn*
|
||||
hl-ComplMatchIns syntax.txt /*hl-ComplMatchIns*
|
||||
hl-Conceal syntax.txt /*hl-Conceal*
|
||||
hl-CurSearch syntax.txt /*hl-CurSearch*
|
||||
hl-Cursor syntax.txt /*hl-Cursor*
|
||||
@@ -8404,6 +8416,7 @@ inactive-buffer windows.txt /*inactive-buffer*
|
||||
include-search tagsrch.txt /*include-search*
|
||||
inclusion helphelp.txt /*inclusion*
|
||||
inclusive motion.txt /*inclusive*
|
||||
inclusive-motion-selection-exclusive motion.txt /*inclusive-motion-selection-exclusive*
|
||||
incomp-small-6 version6.txt /*incomp-small-6*
|
||||
incompatible-5 version5.txt /*incompatible-5*
|
||||
incompatible-6 version6.txt /*incompatible-6*
|
||||
@@ -8528,6 +8541,7 @@ jump-motions motion.txt /*jump-motions*
|
||||
jumplist motion.txt /*jumplist*
|
||||
jumplist-stack motion.txt /*jumplist-stack*
|
||||
jumpto-diffs diff.txt /*jumpto-diffs*
|
||||
justify usr_25.txt /*justify*
|
||||
k motion.txt /*k*
|
||||
kcc uganda.txt /*kcc*
|
||||
kde gui_x11.txt /*kde*
|
||||
@@ -9374,9 +9388,17 @@ out_name channel.txt /*out_name*
|
||||
out_timeout channel.txt /*out_timeout*
|
||||
p change.txt /*p*
|
||||
pack-add repeat.txt /*pack-add*
|
||||
package-cfilter quickfix.txt /*package-cfilter*
|
||||
package-comment usr_05.txt /*package-comment*
|
||||
package-create repeat.txt /*package-create*
|
||||
package-doc repeat.txt /*package-doc*
|
||||
package-documentation repeat.txt /*package-documentation*
|
||||
package-editorconfig usr_05.txt /*package-editorconfig*
|
||||
package-helptoc helphelp.txt /*package-helptoc*
|
||||
package-justify usr_25.txt /*package-justify*
|
||||
package-matchit usr_05.txt /*package-matchit*
|
||||
package-nohlsearch usr_05.txt /*package-nohlsearch*
|
||||
package-termdebug terminal.txt /*package-termdebug*
|
||||
package-translate_example repeat.txt /*package-translate_example*
|
||||
package-translation repeat.txt /*package-translation*
|
||||
packages repeat.txt /*packages*
|
||||
@@ -10209,6 +10231,7 @@ sqrt() builtin.txt /*sqrt()*
|
||||
squirrel.vim syntax.txt /*squirrel.vim*
|
||||
srand() builtin.txt /*srand()*
|
||||
sscanf eval.txt /*sscanf*
|
||||
stacktrace-variable eval.txt /*stacktrace-variable*
|
||||
standard-plugin usr_05.txt /*standard-plugin*
|
||||
standard-plugin-list help.txt /*standard-plugin-list*
|
||||
standout syntax.txt /*standout*
|
||||
@@ -10261,6 +10284,7 @@ strutf16len() builtin.txt /*strutf16len()*
|
||||
strwidth() builtin.txt /*strwidth()*
|
||||
style-braces develop.txt /*style-braces*
|
||||
style-changes develop.txt /*style-changes*
|
||||
style-clang-format develop.txt /*style-clang-format*
|
||||
style-comments develop.txt /*style-comments*
|
||||
style-common-functions develop.txt /*style-common-functions*
|
||||
style-compiler develop.txt /*style-compiler*
|
||||
@@ -11028,6 +11052,7 @@ v:shell_error eval.txt /*v:shell_error*
|
||||
v:sizeofint eval.txt /*v:sizeofint*
|
||||
v:sizeoflong eval.txt /*v:sizeoflong*
|
||||
v:sizeofpointer eval.txt /*v:sizeofpointer*
|
||||
v:stacktrace eval.txt /*v:stacktrace*
|
||||
v:statusmsg eval.txt /*v:statusmsg*
|
||||
v:swapchoice eval.txt /*v:swapchoice*
|
||||
v:swapcommand eval.txt /*v:swapcommand*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*term.txt* For Vim version 9.1. Last change: 2024 Dec 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -688,10 +688,11 @@ The default values are set like this: >
|
||||
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
|
||||
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
|
||||
|
||||
Some terminals accept the same sequences, but with all semicolons replaced by
|
||||
colons (this is actually more compatible, but less widely supported): >
|
||||
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
|
||||
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
|
||||
Some terminals accept similar sequences, with semicolons replaced by colons
|
||||
and an extra colon after the number 2 (this is conformant to the ISO 8613-6
|
||||
standard, but less widely supported): >
|
||||
let &t_8f = "\<Esc>[38:2::%lu:%lu:%lum"
|
||||
let &t_8b = "\<Esc>[48:2::%lu:%lu:%lum"
|
||||
|
||||
These options contain printf strings, with |printf()| (actually, its C
|
||||
equivalent hence `l` modifier) invoked with the t_ option value and three
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2024 Dec 03
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -197,6 +197,9 @@ Command syntax ~
|
||||
if [command] is NONE no job is started, the pty of the
|
||||
terminal can be used by a command like gdb.
|
||||
|
||||
If [command] outputs NUL bytes, those will be
|
||||
converted to new lines |NL-used-for-Nul|.
|
||||
|
||||
*terminal-nospecial*
|
||||
Vim itself only recognizes |cmdline-special|
|
||||
characters inside [command]. Everything else will be
|
||||
@@ -491,6 +494,12 @@ ConPTY problems have been fixed "winpty" will be preferred.
|
||||
Environment variables are used to pass information to the running job:
|
||||
VIM_SERVERNAME v:servername
|
||||
|
||||
*git-vimdumps*
|
||||
There exists a git-difftool extension called `git-vimdumps` that can be used
|
||||
to conveniently inspect screendump files and diff them. Please see in the Vim
|
||||
Repository the file `src/testdir/commondumps.vim` on how to create and use
|
||||
this git extension.
|
||||
|
||||
==============================================================================
|
||||
2. Terminal functions *terminal-function-details*
|
||||
|
||||
@@ -1251,7 +1260,7 @@ Alternatively, press "s" to swap the first and second dump. Do this several
|
||||
times so that you can spot the difference in the context of the text.
|
||||
|
||||
==============================================================================
|
||||
6. Debugging *terminal-debug* *terminal-debugger*
|
||||
6. Debugging *terminal-debug* *terminal-debugger* *package-termdebug*
|
||||
|
||||
The Terminal debugging plugin can be used to debug a program with gdb and view
|
||||
the source code in a Vim window. Since this is completely contained inside
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.1. Last change: 2024 Dec 04
|
||||
*todo.txt* For Vim version 9.1. Last change: 2024 Dec 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1093,9 +1093,6 @@ Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
|
||||
MS-Windows: buffer completion doesn't work when using backslash (or slash)
|
||||
for a path separator. (xtal8, #2201)
|
||||
|
||||
Would be nice for Insert mode completion to highlight the text that was added
|
||||
(and may change when picking another completion).
|
||||
|
||||
Test more runtime files.
|
||||
|
||||
Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
|
||||
@@ -4201,8 +4198,6 @@ Vim script language:
|
||||
char2hex() convert char string to hex string.
|
||||
crypt() encrypt string
|
||||
decrypt() decrypt string
|
||||
base64enc() base 64 encoding
|
||||
base64dec() base 64 decoding
|
||||
attributes() return file protection flags "drwxrwxrwx"
|
||||
shorten(fname) shorten a file name, like home_replace()
|
||||
perl(cmd) call Perl and return string
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_01.txt* For Vim version 9.1. Last change: 2024 Nov 03
|
||||
*usr_01.txt* For Vim version 9.1. Last change: 2024 Dec 17
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -110,15 +110,16 @@ For more info see |vimrc| and |compatible-default|.
|
||||
For the interactive tutor, see |vim-tutor-mode|
|
||||
|
||||
Instead of reading the text (boring!) you can use the vimtutor to learn your
|
||||
first Vim commands. This is a 30-minute tutorial that teaches the most basic
|
||||
Vim functionality hands-on.
|
||||
first Vim commands. This is a 30-minute tutorial provided in 2 chapters, that
|
||||
teaches the most basic Vim functionality hands-on.
|
||||
|
||||
On Unix, if Vim has been properly installed, you can start it from the shell:
|
||||
>
|
||||
vimtutor
|
||||
|
||||
On MS-Windows you can find it in the Program/Vim menu. Or execute
|
||||
vimtutor.bat in the $VIMRUNTIME directory.
|
||||
On MS-Windows you can find it in the "Program/Vim 9.1" menu. Or execute
|
||||
vimtutor.bat from the installation directory (You can use `:echo $VIMRUNTIME`
|
||||
from within Vim to find this directory).
|
||||
|
||||
This will make a copy of chapter 1 tutor file, so that you can edit it without
|
||||
the risk of damaging the original. To continue with chapter 2, you can use
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_02.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*usr_02.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -694,6 +694,13 @@ Summary: *help-summary* >
|
||||
:help E128
|
||||
< takes you to the |:function| command
|
||||
|
||||
27) Documenction for packages distributed with Vim have the form package-<name>.
|
||||
So >
|
||||
:help package-comment
|
||||
<
|
||||
will bring you to the help section for the included comment plugin and how to
|
||||
enable it.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2024 Oct 05
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -392,7 +392,7 @@ The ":map" command (with no arguments) lists your current mappings. At
|
||||
least the ones for Normal mode. More about mappings in section |40.1|.
|
||||
|
||||
==============================================================================
|
||||
*05.5* Adding a package *add-package* *matchit-install*
|
||||
*05.5* Adding a package *add-package* *matchit-install* *package-matchit*
|
||||
|
||||
A package is a set of files that you can add to Vim. There are two kinds of
|
||||
packages: optional and automatically loaded on startup.
|
||||
@@ -427,7 +427,7 @@ an archive or as a repository. For an archive you can follow these steps:
|
||||
Here "fancytext" is the name of the package, it can be anything
|
||||
else.
|
||||
|
||||
Adding the editorconfig package *editorconfig-install*
|
||||
Adding the editorconfig package *editorconfig-install* *package-editorconfig*
|
||||
|
||||
Similar to the matchit package, to load the distributed editorconfig plugin
|
||||
when Vim starts, add the following line to your vimrc file: >
|
||||
@@ -437,7 +437,7 @@ After restarting your Vim, the plugin is active and you can read about it at: >
|
||||
:h editorconfig.txt
|
||||
|
||||
|
||||
Adding comment package *comment-install*
|
||||
Adding comment package *comment-install* *package-comment*
|
||||
|
||||
Load the plugin with this command: >
|
||||
packadd comment
|
||||
@@ -450,7 +450,7 @@ the package loaded. Once the package is loaded, read about it at: >
|
||||
:h comment.txt
|
||||
|
||||
|
||||
Adding nohlsearch package *nohlsearch-install*
|
||||
Adding nohlsearch package *nohlsearch-install* *package-nohlsearch*
|
||||
|
||||
Load the plugin with this command: >
|
||||
packadd nohlsearch
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_25.txt* For Vim version 9.1. Last change: 2016 Mar 28
|
||||
*usr_25.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -190,15 +190,15 @@ This results in the following:
|
||||
story. ~
|
||||
|
||||
|
||||
JUSTIFYING TEXT
|
||||
JUSTIFYING TEXT *justify* *:Justify* *Justify()* *package-justify*
|
||||
|
||||
Vim has no built-in way of justifying text. However, there is a neat macro
|
||||
package that does the job. To use this package, execute the following
|
||||
command: >
|
||||
command: >vim
|
||||
|
||||
:packadd justify
|
||||
|
||||
Or put this line in your |vimrc|: >
|
||||
Or put this line in your |vimrc|: >vim
|
||||
|
||||
packadd! justify
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2024 Nov 11
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Jan 02
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -1263,6 +1263,8 @@ Inter-process communication: *channel-functions*
|
||||
json_decode() decode a JSON string to Vim types
|
||||
js_encode() encode an expression to a JSON string
|
||||
js_decode() decode a JSON string to Vim types
|
||||
base64_encode() encode a blob into a base64 string
|
||||
base64_decode() decode a base64 string into a blob
|
||||
err_teapot() give error 418 or 503
|
||||
|
||||
Jobs: *job-functions*
|
||||
@@ -1397,7 +1399,8 @@ Various: *various-functions*
|
||||
eventhandler() check if invoked by an event handler
|
||||
getcellpixels() get List of cell pixel size
|
||||
getpid() get process ID of Vim
|
||||
getscriptinfo() get list of sourced vim scripts
|
||||
getscriptinfo() get list of sourced Vim scripts
|
||||
getstacktrace() get current stack trace of Vim scripts
|
||||
getimstatus() check if IME status is active
|
||||
interrupt() interrupt script execution
|
||||
windowsversion() get MS-Windows version
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 9.1. Last change: 2024 Nov 23
|
||||
*various.txt* For Vim version 9.1. Last change: 2024 Dec 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.1. Last change: 2024 Dec 06
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Jan 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -31849,14 +31849,14 @@ Autocommands: ~
|
||||
|
||||
Commands: ~
|
||||
|
||||
|:abstract| define a Vim9 abstract class
|
||||
|:class| start of a class specification
|
||||
|:abstract| declare a Vim9 abstract class
|
||||
|:class| start of a class declaration
|
||||
|:defer| call function when current function is done
|
||||
|:echowindow| same as :echomsg, but use a popup window
|
||||
|:endinterface| end of an interface specification
|
||||
|:endclass| end of a class specification
|
||||
|:endinterface| end of an interface declaration
|
||||
|:endclass| end of a class declaration
|
||||
|:horizontal| following window command works horizontally
|
||||
|:interface| start of an interface specification
|
||||
|:interface| start of an interface declaration
|
||||
|:public| prefix for a class or object member
|
||||
|:static| prefix for a class member or function
|
||||
|:this| prefix for an object member
|
||||
@@ -41615,6 +41615,16 @@ Changed~
|
||||
and removed from |defaults.vim|
|
||||
- the completed word and completion type are provided when handling the
|
||||
|CompleteDone| autocommand in the |v:event| dictionary
|
||||
- the default fontsize for the GTK builds of Vim (Windows and Unix) has been
|
||||
increased to 12pt to accomodate modern high-dpi monitors
|
||||
- filetype detection now detects bash scripts as a separate "bash" filetype
|
||||
instead of the "sh" filetype
|
||||
- the default value of the 'keyprotocol' option has been updated by support
|
||||
for the ghostty terminal emulator (using kitty protocol)
|
||||
- |complete_info()| returns the list of matches shown in the poppu menu via
|
||||
the "matches" key
|
||||
- |v:stacktrace| The stack trace of the exception most recently caught and
|
||||
not finished
|
||||
|
||||
*added-9.2*
|
||||
Added ~
|
||||
@@ -41623,15 +41633,18 @@ Various syntax, indent and other plugins were added.
|
||||
|
||||
Functions: ~
|
||||
|
||||
|base64_decode()| decode a base64 string into a blob
|
||||
|base64_encode()| encode a blob into a base64 string
|
||||
|bindtextdomain()| set message lookup translation base path
|
||||
|diff()| diff two Lists of strings
|
||||
|filecopy()| copy a file {from} to {to}
|
||||
|foreach()| apply function to List items
|
||||
|getcellpixels()| get List of terminal cell pixel size
|
||||
|getcmdcomplpat()| Shell command line completion
|
||||
|getcmdprompt()| get prompt for input()/confirm()
|
||||
|getcellpixels()| get List of terminal cell pixel size
|
||||
|getregion()| get a region of text from a buffer
|
||||
|getregionpos()| get a list of positions for a region
|
||||
|getstacktrace()| get current stack trace of Vim scripts
|
||||
|id()| get unique identifier for a Dict, List, Object,
|
||||
Channel or Blob variable
|
||||
|matchbufline()| all the matches of a pattern in a buffer
|
||||
@@ -41651,6 +41664,7 @@ Autocommands: ~
|
||||
|
||||
Highlighting: ~
|
||||
|
||||
|hl-ComplMatchIns| matched text of the currently inserted completion.
|
||||
|hl-MsgArea| highlighting of the Command-line and messages area
|
||||
|hl-PmenuMatch| Popup menu: highlighting of matched text
|
||||
|hl-PmenuMatchSel| Popup menu: highlighting of matched text in selected
|
||||
@@ -41659,7 +41673,8 @@ Highlighting: ~
|
||||
Commands: ~
|
||||
|
||||
|[r| and |]r| to move the cursor to previous/next rare word
|
||||
|
||||
|:pbuffer| Edit buffer [N] from the buffer list in the preview
|
||||
window
|
||||
|
||||
Options: ~
|
||||
|
||||
@@ -41717,4 +41732,4 @@ features, but does not include runtime file changes (syntax, indent, ftplugin,
|
||||
documentation, etc.)
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual:
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual:nofoldenable
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2024 May 31
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2024 Dec 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -193,7 +193,7 @@ created yet. In this case you can call `execute()` to invoke it at runtime. >
|
||||
"closure". A `:def` function always aborts on an error (unless `:silent!` was
|
||||
used for the command or the error was caught a `:try` block), does not get a
|
||||
range passed, cannot be a "dict" function, and can always be a closure.
|
||||
*vim9-no-dict-function*
|
||||
*vim9-no-dict-function* *E1182*
|
||||
You can use a Vim9 Class (|Vim9-class|) instead of a "dict function".
|
||||
You can also pass the dictionary explicitly: >
|
||||
def DictFunc(self: dict<any>, arg: string)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2024 Nov 11
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2024 Dec 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -951,11 +951,11 @@ aliased: >
|
||||
*enum* *E1418* *E1419* *E1420*
|
||||
An enum is a type that can have one of a list of values. Example: >
|
||||
|
||||
:enum Color
|
||||
enum Color
|
||||
White,
|
||||
Red,
|
||||
Green, Blue, Black
|
||||
:endenum
|
||||
endenum
|
||||
<
|
||||
*enumvalue* *E1422*
|
||||
The enum values are separated by commas. More than one enum value can be
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 9.1. Last change: 2024 Sep 08
|
||||
*windows.txt* For Vim version 9.1. Last change: 2025 Jan 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -968,8 +968,8 @@ A few peculiarities:
|
||||
trigger the ATTENTION and responding "A" for Abort, the preview window will
|
||||
become empty.
|
||||
|
||||
*:pta* *:ptag*
|
||||
:pta[g][!] [tagname]
|
||||
*:pt* *:ptag*
|
||||
:pt[ag][!] [tagname]
|
||||
Does ":tag[!] [tagname]" and shows the found tag in a
|
||||
"Preview" window without changing the current buffer or cursor
|
||||
position. If a "Preview" window already exists, it is re-used
|
||||
@@ -1005,6 +1005,16 @@ CTRL-W g } *CTRL-W_g}*
|
||||
it. Make the new Preview window (if required) N high. If N is
|
||||
not given, 'previewheight' is used.
|
||||
|
||||
*:pb* *:pbuffer*
|
||||
:[N]pb[uffer][!] [+cmd] [N]
|
||||
Edit buffer [N] from the buffer list in the preview window.
|
||||
If [N] is not given, the current buffer remains being edited.
|
||||
See |:buffer-!| for [!]. This will also edit a buffer that is
|
||||
not in the buffer list, without setting the 'buflisted' flag.
|
||||
The notation with single quotes does not work here,
|
||||
`:pbuffer 12'345'` uses 12'345' as a buffer name.
|
||||
Also see |+cmd|.
|
||||
|
||||
*:ped* *:pedit*
|
||||
:ped[it][!] [++opt] [+cmd] {file}
|
||||
Edit {file} in the preview window. The preview window is
|
||||
@@ -1012,6 +1022,8 @@ CTRL-W g } *CTRL-W_g}*
|
||||
position isn't changed. Useful example: >
|
||||
:pedit +/fputc /usr/include/stdio.h
|
||||
<
|
||||
Also see |++opt| and |+cmd|.
|
||||
|
||||
*:ps* *:psearch*
|
||||
:[range]ps[earch][!] [count] [/]pattern[/]
|
||||
Works like |:ijump| but shows the found match in the preview
|
||||
@@ -1269,7 +1281,7 @@ list of buffers. |unlisted-buffer|
|
||||
[!]. This will also edit a buffer that is not in the buffer
|
||||
list, without setting the 'buflisted' flag.
|
||||
The notation with single quotes does not work here,
|
||||
`:buf 12'345'` uses 12'345 as a buffer name.
|
||||
`:buf 12'345'` uses 12'345' as a buffer name.
|
||||
Also see |+cmd|.
|
||||
|
||||
:[N]b[uffer][!] [+cmd] {bufname} *{bufname}*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Nov 24
|
||||
" Last Change: 2025 Jan 08
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
@@ -183,8 +183,15 @@ au BufNewFile,BufRead *.demo,*.dm{1,2,3,t},*.wxm,maxima-init.mac setf maxima
|
||||
|
||||
" Assembly (all kinds)
|
||||
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
|
||||
" *.[sS], *.[aA] usually Assembly - GNU
|
||||
au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm()
|
||||
|
||||
" Assembly - Netwide
|
||||
au BufNewFile,BufRead *.nasm setf nasm
|
||||
|
||||
" Assembly - Microsoft
|
||||
au BufNewFile,BufRead *.masm setf masm
|
||||
|
||||
" Assembly - Macro (VAX)
|
||||
au BufNewFile,BufRead *.mar setf vmasm
|
||||
|
||||
@@ -233,9 +240,17 @@ au BufNewFile,BufRead *.fb setf freebasic
|
||||
|
||||
" Batch file for MSDOS. See dist#ft#FTsys for *.sys
|
||||
au BufNewFile,BufRead *.bat setf dosbatch
|
||||
" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd.
|
||||
" *.cmd is close to a Batch file, but on OS/2 Rexx files and TI linker command files also use *.cmd.
|
||||
" lnk: `/* comment */`, `// comment`, and `--linker-option=value`
|
||||
" rexx: `/* comment */`, `-- comment`
|
||||
au BufNewFile,BufRead *.cmd
|
||||
\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif
|
||||
\ if join(getline(1, 20), "\n") =~ 'MEMORY\|SECTIONS\|\%(^\|\n\)--\S\|\%(^\|\n\)//'
|
||||
\| setf lnk
|
||||
\| elseif getline(1) =~ '^/\*'
|
||||
\| setf rexx
|
||||
\| else
|
||||
\| setf dosbatch
|
||||
\| endif
|
||||
" ABB RAPID or Batch file for MSDOS.
|
||||
au BufNewFile,BufRead *.sys call dist#ft#FTsys()
|
||||
if has("fname_case")
|
||||
@@ -327,7 +342,7 @@ au BufNewFile,BufRead *.capnp setf capnp
|
||||
au BufNewFile,BufRead cgdbrc setf cgdbrc
|
||||
|
||||
" C#
|
||||
au BufNewFile,BufRead *.cs,*.csx setf cs
|
||||
au BufNewFile,BufRead *.cs,*.csx,*.cake setf cs
|
||||
|
||||
" CSDL
|
||||
au BufNewFile,BufRead *.csdl setf csdl
|
||||
@@ -837,7 +852,7 @@ au BufNewFile,BufRead *.fan,*.fwt setf fan
|
||||
au BufNewFile,BufRead *.factor setf factor
|
||||
|
||||
" Fennel
|
||||
autocmd BufRead,BufNewFile *.fnl setf fennel
|
||||
autocmd BufRead,BufNewFile *.fnl,{,.}fennelrc setf fennel
|
||||
|
||||
" Fetchmail RC file
|
||||
au BufNewFile,BufRead .fetchmailrc setf fetchmail
|
||||
@@ -936,6 +951,7 @@ au BufNewFile,BufRead */.config/git/attributes setf gitattributes
|
||||
au BufNewFile,BufRead */etc/gitattributes setf gitattributes
|
||||
au BufNewFile,BufRead .gitignore,*.git/info/exclude setf gitignore
|
||||
au BufNewFile,BufRead */.config/git/ignore,*.prettierignore setf gitignore
|
||||
au BufNewFile,BufRead .rgignore,.ignore,.dockerignore,.npmignore,.vscodeignore setf gitignore
|
||||
au BufNewFile,BufRead git-rebase-todo setf gitrebase
|
||||
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
|
||||
au BufNewFile,BufRead *.git/*
|
||||
@@ -1071,6 +1087,9 @@ au BufRead,BufNewFile *.hws setf hollywood
|
||||
" Hoon
|
||||
au BufRead,BufNewFile *.hoon setf hoon
|
||||
|
||||
" TI Code Composer Studio General Extension Language
|
||||
au BufNewFile,BufRead *.gel setf gel
|
||||
|
||||
" Tilde (must be before HTML)
|
||||
au BufNewFile,BufRead *.t.html setf tilde
|
||||
|
||||
@@ -1102,6 +1121,9 @@ au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess
|
||||
" Hurl
|
||||
au BufRead,BufNewFile *.hurl setf hurl
|
||||
|
||||
" Hy
|
||||
au BufRead,BufNewFile *.hy,.hy-history setf hy
|
||||
|
||||
" Hyper Builder
|
||||
au BufNewFile,BufRead *.hb setf hb
|
||||
|
||||
@@ -1193,7 +1215,7 @@ au BufNewFile,BufRead *.jpl,*.jpr setf jam
|
||||
au BufNewFile,BufRead *.janet setf janet
|
||||
|
||||
" Java
|
||||
au BufNewFile,BufRead *.java,*.jav setf java
|
||||
au BufNewFile,BufRead *.java,*.jav,*.jsh setf java
|
||||
|
||||
" JavaCC
|
||||
au BufNewFile,BufRead *.jj,*.jjt setf javacc
|
||||
@@ -1223,7 +1245,7 @@ au BufNewFile,BufRead *.jgr setf jgraph
|
||||
au BufNewFile,BufRead *.jinja setf jinja
|
||||
|
||||
" Jujutsu
|
||||
au BufNewFile,BufRead *.jjdescription setf jj
|
||||
au BufNewFile,BufRead *.jjdescription setf jjdescription
|
||||
|
||||
" Jovial
|
||||
au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial
|
||||
@@ -1250,7 +1272,7 @@ au BufNewFile,BufRead *.sublime-project,*.sublime-settings,*.sublime-workspace s
|
||||
au BufNewFile,BufRead .prettierrc,.firebaserc,.stylelintrc,.lintstagedrc,flake.lock,deno.lock setf json
|
||||
|
||||
" JSONC (JSON with comments)
|
||||
au BufNewFile,BufRead *.jsonc,.babelrc,.eslintrc,.jsfmtrc setf jsonc
|
||||
au BufNewFile,BufRead *.jsonc,.babelrc,.eslintrc,.jsfmtrc,bun.lock setf jsonc
|
||||
au BufNewFile,BufRead .jshintrc,.jscsrc,.vsconfig,.hintrc,.swrc,[jt]sconfig*.json setf jsonc
|
||||
|
||||
" JSON
|
||||
@@ -1308,6 +1330,9 @@ au BufNewFile,BufRead Kconfig,Kconfig.debug,Config.in setf kconfig
|
||||
" Lace (ISE)
|
||||
au BufNewFile,BufRead *.ace,*.ACE setf lace
|
||||
|
||||
" Lalrpop
|
||||
au BufNewFile,Bufread *.lalrpop setf lalrpop
|
||||
|
||||
" Larch Shared Language
|
||||
au BufNewFile,BufRead .lsl call dist#ft#FTlsl()
|
||||
|
||||
@@ -1374,9 +1399,9 @@ au BufNewFile,BufRead *.ly,*.ily setf lilypond
|
||||
" Lisp (*.el = ELisp)
|
||||
" *.jl was removed, it's also used for Julia, better skip than guess wrong.
|
||||
if has("fname_case")
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.L,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.L,.emacs,.sawfishrc setf lisp
|
||||
else
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp
|
||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,.emacs,.sawfishrc setf lisp
|
||||
endif
|
||||
|
||||
" *.cl = Common Lisp or OpenCL
|
||||
@@ -1477,7 +1502,12 @@ au BufNewFile,BufRead */etc/man.conf,man.config setf manconf
|
||||
au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple
|
||||
|
||||
" Map (UMN mapserver config file)
|
||||
au BufNewFile,BufRead *.map setf map
|
||||
au BufNewFile,BufRead *.map
|
||||
\ if getline(1) =~ '^\*\+$' |
|
||||
\ setf lnkmap |
|
||||
\ else |
|
||||
\ setf map |
|
||||
\ endif
|
||||
|
||||
" Markdown
|
||||
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md
|
||||
@@ -1866,6 +1896,9 @@ au BufNewFile,BufRead requires/*.txt setf requirements
|
||||
au BufNewFile,BufRead Pipfile setf toml
|
||||
au BufNewFile,BufRead Pipfile.lock setf json
|
||||
|
||||
" Pixi lock
|
||||
au BufNewFile,BufRead pixi.lock setf yaml
|
||||
|
||||
" PL/1, PL/I
|
||||
au BufNewFile,BufRead *.pli,*.pl1 setf pli
|
||||
|
||||
@@ -2153,7 +2186,7 @@ au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby
|
||||
au BufNewFile,BufRead *.rs setf rust
|
||||
au BufNewFile,BufRead Cargo.lock,*/.cargo/config,*/.cargo/credentials setf toml
|
||||
|
||||
" S-lang (or shader language, or SmallLisp)
|
||||
" S-lang
|
||||
au BufNewFile,BufRead *.sl setf slang
|
||||
|
||||
" Sage
|
||||
@@ -2168,8 +2201,8 @@ au BufNewFile,BufRead *.sas setf sas
|
||||
" Sass
|
||||
au BufNewFile,BufRead *.sass setf sass
|
||||
|
||||
" Sather
|
||||
au BufNewFile,BufRead *.sa setf sather
|
||||
" Sather, TI linear assembly
|
||||
au BufNewFile,BufRead *.sa call dist#ft#FTsa()
|
||||
|
||||
" Scala
|
||||
au BufNewFile,BufRead *.scala setf scala
|
||||
@@ -2177,6 +2210,9 @@ au BufNewFile,BufRead *.scala setf scala
|
||||
" SBT - Scala Build Tool
|
||||
au BufNewFile,BufRead *.sbt setf sbt
|
||||
|
||||
" Slang Shading Language
|
||||
au BufNewFile,BufRead *.slang setf shaderslang
|
||||
|
||||
" Slint
|
||||
au BufNewFile,BufRead *.slint setf slint
|
||||
|
||||
@@ -2260,12 +2296,13 @@ au BufNewFile,BufRead *.decl,*.dcl,*.dec
|
||||
au BufNewFile,BufRead catalog setf catalog
|
||||
|
||||
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
|
||||
" Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually
|
||||
" bash scripts.
|
||||
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts.
|
||||
" NOTE: Patterns ending in a star are further down, these have lower priority.
|
||||
au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,.bash[_-]history,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD,*.bats,*.cygport call dist#ft#SetFileTypeSH("bash")
|
||||
au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,.bash[_-]history,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,*.bats,*.cygport call dist#ft#SetFileTypeSH("bash")
|
||||
au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh")
|
||||
au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env{rc,} call dist#ft#SetFileTypeSH(getline(1))
|
||||
" Alpine Linux APKBUILDs are actually POSIX sh scripts with special treatment.
|
||||
au BufNewFile,BufRead APKBUILD setf apkbuild
|
||||
|
||||
" Shell script (Arch Linux) or PHP file (Drupal)
|
||||
au BufNewFile,BufRead *.install
|
||||
@@ -2300,8 +2337,8 @@ au BufNewFile,BufRead *.zsh,*.zsh-theme,*.zunit setf zsh
|
||||
" Salt state files
|
||||
au BufNewFile,BufRead *.sls setf salt
|
||||
|
||||
" Scheme ("racket" patterns are now separate, see above)
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.sld setf scheme
|
||||
" Scheme, Supertux configuration, Lips.js history ("racket" patterns are now separate, see above)
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.sld,*.stsg,*/supertux2/config,.lips_repl_history setf scheme
|
||||
|
||||
" Screen RC
|
||||
au BufNewFile,BufRead .screenrc,screenrc setf screen
|
||||
@@ -2394,6 +2431,7 @@ au BufNewFile,BufRead *.ice setf slice
|
||||
" Microsoft Visual Studio Solution
|
||||
au BufNewFile,BufRead *.sln setf solution
|
||||
au BufNewFile,BufRead *.slnf setf json
|
||||
au BufNewFile,BufRead *.slnx setf xml
|
||||
|
||||
" Spice
|
||||
au BufNewFile,BufRead *.sp,*.spice setf spice
|
||||
@@ -2890,6 +2928,9 @@ au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml
|
||||
" VBPROJ files are Visual Studio.NET's XML-based Visual Basic project config files
|
||||
au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml
|
||||
|
||||
" MSBUILD configuration files are also XML
|
||||
au BufNewFile,BufRead Directory.Packages.props,Directory.Build.targets,Directory.Build.props setf xml
|
||||
|
||||
" Unison Language
|
||||
au BufNewFile,BufRead *.u,*.uu setf unison
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Dockerfile
|
||||
" Maintainer: Honza Pokorny <http://honza.ca>
|
||||
" Last Change: 2014 Aug 29
|
||||
" Last Change: 2024 Dec 20
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -11,6 +11,6 @@ endif
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring<"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: EditorConfig
|
||||
" Maintainer: Riley Bruins <ribru17@gmail.com>
|
||||
" Last Change: 2024 Jul 06
|
||||
" Last Change: 2025 Jan 10
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
@@ -10,4 +10,6 @@ let b:did_ftplugin = 1
|
||||
|
||||
setl comments=:#,:; commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
setl omnifunc=syntaxcomplete#Complete
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms< ofu<'
|
||||
|
||||
13
runtime/ftplugin/gel.vim
Normal file
13
runtime/ftplugin/gel.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: TI Code Composer Studio General Extension Language
|
||||
" Document: https://downloads.ti.com/ccs/esd/documents/users_guide/ccs_debug-gel.html
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2024 Dec 25
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
|
||||
setlocal commentstring=/*\ %s\ */
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments<"
|
||||
@@ -1,13 +1,22 @@
|
||||
" Vim filetype plugin
|
||||
" Language: graphql
|
||||
" Maintainer: Riley Bruins <ribru17@gmail.com>
|
||||
" Last Change: 2024 May 18
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
" Filenames: *.graphql *.graphqls *.gql
|
||||
" URL: https://github.com/jparise/vim-graphql
|
||||
" License: MIT <https://opensource.org/license/mit>
|
||||
" Last Change: 2024 Dec 21
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setl comments=:# commentstring=#\ %s
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal formatoptions-=t
|
||||
setlocal iskeyword+=$,@-@
|
||||
setlocal softtabstop=2
|
||||
setlocal shiftwidth=2
|
||||
setlocal expandtab
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
let b:undo_ftplugin = 'setlocal com< cms< fo< isk< sts< sw< et<'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com>
|
||||
" Former Maintainer: Dan Sharp
|
||||
" Repository: https://github.com/zzzyxwvut/java-vim.git
|
||||
" Last Change: 2024 Nov 24
|
||||
" Last Change: 2024 Dec 25
|
||||
" 2024 Jan 14 by Vim Project (browsefilter)
|
||||
" 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
|
||||
@@ -90,63 +90,155 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
endif
|
||||
endif
|
||||
|
||||
" The support for pre- and post-compiler actions for SpotBugs.
|
||||
if exists("g:spotbugs_properties") && has_key(g:spotbugs_properties, 'compiler')
|
||||
try
|
||||
let spotbugs#compiler = g:spotbugs_properties.compiler
|
||||
let g:spotbugs_properties = extend(
|
||||
\ spotbugs#DefaultProperties(),
|
||||
\ g:spotbugs_properties,
|
||||
\ 'force')
|
||||
catch
|
||||
echomsg v:errmsg
|
||||
finally
|
||||
call remove(g:spotbugs_properties, 'compiler')
|
||||
endtry
|
||||
endif
|
||||
"""" Support pre- and post-compiler actions for SpotBugs.
|
||||
if (!empty(get(g:, 'spotbugs_properties', {})) ||
|
||||
\ !empty(get(b:, 'spotbugs_properties', {}))) &&
|
||||
\ filereadable($VIMRUNTIME . '/compiler/spotbugs.vim')
|
||||
|
||||
if exists("g:spotbugs_properties") &&
|
||||
\ filereadable($VIMRUNTIME . '/compiler/spotbugs.vim')
|
||||
function! s:SpotBugsGetProperty(name, default) abort
|
||||
return get(
|
||||
\ {s:spotbugs_properties_scope}spotbugs_properties,
|
||||
\ a:name,
|
||||
\ a:default)
|
||||
endfunction
|
||||
|
||||
function! s:SpotBugsHasProperty(name) abort
|
||||
return has_key(
|
||||
\ {s:spotbugs_properties_scope}spotbugs_properties,
|
||||
\ a:name)
|
||||
endfunction
|
||||
|
||||
function! s:SpotBugsGetProperties() abort
|
||||
return {s:spotbugs_properties_scope}spotbugs_properties
|
||||
endfunction
|
||||
|
||||
" Work around ":bar"s and ":autocmd"s.
|
||||
function! JavaFileTypeExecuteActionOnce(cleanup_cmd, action_cmd) abort
|
||||
try
|
||||
execute a:cleanup_cmd
|
||||
finally
|
||||
execute a:action_cmd
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
if exists("b:spotbugs_properties")
|
||||
let s:spotbugs_properties_scope = 'b:'
|
||||
|
||||
" Merge global entries, if any, in buffer-local entries, favouring
|
||||
" defined buffer-local ones.
|
||||
call extend(
|
||||
\ b:spotbugs_properties,
|
||||
\ get(g:, 'spotbugs_properties', {}),
|
||||
\ 'keep')
|
||||
elseif exists("g:spotbugs_properties")
|
||||
let s:spotbugs_properties_scope = 'g:'
|
||||
endif
|
||||
|
||||
let s:commands = {}
|
||||
|
||||
for s:name in ['DefaultPreCompilerCommand',
|
||||
\ 'DefaultPreCompilerTestCommand',
|
||||
\ 'DefaultPostCompilerCommand']
|
||||
if s:SpotBugsHasProperty(s:name)
|
||||
let s:commands[s:name] = remove(
|
||||
\ s:SpotBugsGetProperties(),
|
||||
\ s:name)
|
||||
endif
|
||||
endfor
|
||||
|
||||
if s:SpotBugsHasProperty('compiler')
|
||||
" XXX: Postpone loading the script until all state, if any, has been
|
||||
" collected.
|
||||
if !empty(s:commands)
|
||||
let g:spotbugs#state = {
|
||||
\ 'compiler': remove(s:SpotBugsGetProperties(), 'compiler'),
|
||||
\ 'commands': copy(s:commands),
|
||||
\ }
|
||||
else
|
||||
let g:spotbugs#state = {
|
||||
\ 'compiler': remove(s:SpotBugsGetProperties(), 'compiler'),
|
||||
\ }
|
||||
endif
|
||||
|
||||
" Merge default entries in global (or buffer-local) entries, favouring
|
||||
" defined global (or buffer-local) ones.
|
||||
call extend(
|
||||
\ {s:spotbugs_properties_scope}spotbugs_properties,
|
||||
\ spotbugs#DefaultProperties(),
|
||||
\ 'keep')
|
||||
elseif !empty(s:commands)
|
||||
" XXX: Postpone loading the script until all state, if any, has been
|
||||
" collected.
|
||||
let g:spotbugs#state = {'commands': copy(s:commands)}
|
||||
endif
|
||||
|
||||
unlet s:commands s:name
|
||||
let s:request = 0
|
||||
|
||||
if has_key(g:spotbugs_properties, 'PreCompilerAction')
|
||||
let s:dispatcher = 'call g:spotbugs_properties.PreCompilerAction() | '
|
||||
let s:request += 1
|
||||
endif
|
||||
|
||||
if has_key(g:spotbugs_properties, 'PreCompilerTestAction')
|
||||
let s:dispatcher = 'call g:spotbugs_properties.PreCompilerTestAction() | '
|
||||
let s:request += 2
|
||||
endif
|
||||
|
||||
if has_key(g:spotbugs_properties, 'PostCompilerAction')
|
||||
if s:SpotBugsHasProperty('PostCompilerAction')
|
||||
let s:request += 4
|
||||
endif
|
||||
|
||||
if s:SpotBugsHasProperty('PreCompilerTestAction')
|
||||
let s:dispatcher = printf('call call(%s, [])',
|
||||
\ string(s:SpotBugsGetProperties().PreCompilerTestAction))
|
||||
let s:request += 2
|
||||
endif
|
||||
|
||||
if s:SpotBugsHasProperty('PreCompilerAction')
|
||||
let s:dispatcher = printf('call call(%s, [])',
|
||||
\ string(s:SpotBugsGetProperties().PreCompilerAction))
|
||||
let s:request += 1
|
||||
endif
|
||||
|
||||
" Adapt the tests for "s:FindClassFiles()" from "compiler/spotbugs.vim".
|
||||
if (s:request == 3 || s:request == 7) &&
|
||||
\ has_key(g:spotbugs_properties, 'sourceDirPath') &&
|
||||
\ has_key(g:spotbugs_properties, 'testSourceDirPath')
|
||||
function! s:DispatchAction(path_action_pairs) abort
|
||||
\ (!empty(s:SpotBugsGetProperty('sourceDirPath', [])) &&
|
||||
\ !empty(s:SpotBugsGetProperty('classDirPath', [])) &&
|
||||
\ !empty(s:SpotBugsGetProperty('testSourceDirPath', [])) &&
|
||||
\ !empty(s:SpotBugsGetProperty('testClassDirPath', [])))
|
||||
function! s:DispatchAction(paths_action_pairs) abort
|
||||
let name = expand('%:p')
|
||||
|
||||
for [path, Action] in a:path_action_pairs
|
||||
if name =~# (path . '.\{-}\.java\=$')
|
||||
call Action()
|
||||
break
|
||||
endif
|
||||
for [paths, Action] in a:paths_action_pairs
|
||||
for path in paths
|
||||
if name =~# (path . '.\{-}\.java\=$')
|
||||
call Action()
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
let s:dispatcher = printf('call s:DispatchAction(%s) | ',
|
||||
\ string([[g:spotbugs_properties.sourceDirPath,
|
||||
\ g:spotbugs_properties.PreCompilerAction],
|
||||
\ [g:spotbugs_properties.testSourceDirPath,
|
||||
\ g:spotbugs_properties.PreCompilerTestAction]]))
|
||||
let s:dir_cnt = min([
|
||||
\ len(s:SpotBugsGetProperties().sourceDirPath),
|
||||
\ len(s:SpotBugsGetProperties().classDirPath)])
|
||||
let s:test_dir_cnt = min([
|
||||
\ len(s:SpotBugsGetProperties().testSourceDirPath),
|
||||
\ len(s:SpotBugsGetProperties().testClassDirPath)])
|
||||
|
||||
" Do not break up path pairs with filtering!
|
||||
let s:dispatcher = printf('call s:DispatchAction(%s)',
|
||||
\ string([[s:SpotBugsGetProperties().sourceDirPath[0 : s:dir_cnt - 1],
|
||||
\ s:SpotBugsGetProperties().PreCompilerAction],
|
||||
\ [s:SpotBugsGetProperties().testSourceDirPath[0 : s:test_dir_cnt - 1],
|
||||
\ s:SpotBugsGetProperties().PreCompilerTestAction]]))
|
||||
unlet s:test_dir_cnt s:dir_cnt
|
||||
endif
|
||||
|
||||
if exists("s:dispatcher")
|
||||
function! s:ExecuteActions(pre_action, post_action) abort
|
||||
try
|
||||
execute a:pre_action
|
||||
catch /\<E42:/
|
||||
execute a:post_action
|
||||
endtry
|
||||
endfunction
|
||||
endif
|
||||
|
||||
if s:request
|
||||
if exists("b:spotbugs_syntax_once")
|
||||
let s:actions = [{'event': 'BufWritePost'}]
|
||||
if exists("b:spotbugs_syntax_once") || empty(join(getline(1, 8), ''))
|
||||
let s:actions = [{'event': 'User'}]
|
||||
else
|
||||
" XXX: Handle multiple FileType events when vimrc contains more
|
||||
" than one filetype setting for the language, e.g.:
|
||||
@@ -157,20 +249,25 @@ if exists("g:spotbugs_properties") &&
|
||||
let s:actions = [{
|
||||
\ 'event': 'Syntax',
|
||||
\ 'once': 1,
|
||||
\ }, {
|
||||
\ 'event': 'BufWritePost',
|
||||
\ }]
|
||||
\ }, {
|
||||
\ 'event': 'User',
|
||||
\ }]
|
||||
endif
|
||||
|
||||
for s:idx in range(len(s:actions))
|
||||
if s:request == 7 || s:request == 6 || s:request == 5
|
||||
let s:actions[s:idx].cmd = s:dispatcher . 'compiler spotbugs | ' .
|
||||
\ 'call g:spotbugs_properties.PostCompilerAction()'
|
||||
let s:actions[s:idx].cmd = printf('call s:ExecuteActions(%s, %s)',
|
||||
\ string(s:dispatcher),
|
||||
\ string(printf('compiler spotbugs | call call(%s, [])',
|
||||
\ string(s:SpotBugsGetProperties().PostCompilerAction))))
|
||||
elseif s:request == 4
|
||||
let s:actions[s:idx].cmd = 'compiler spotbugs | ' .
|
||||
\ 'call g:spotbugs_properties.PostCompilerAction()'
|
||||
let s:actions[s:idx].cmd = printf(
|
||||
\ 'compiler spotbugs | call call(%s, [])',
|
||||
\ string(s:SpotBugsGetProperties().PostCompilerAction))
|
||||
elseif s:request == 3 || s:request == 2 || s:request == 1
|
||||
let s:actions[s:idx].cmd = s:dispatcher . 'compiler spotbugs'
|
||||
let s:actions[s:idx].cmd = printf('call s:ExecuteActions(%s, %s)',
|
||||
\ string(s:dispatcher),
|
||||
\ string('compiler spotbugs'))
|
||||
else
|
||||
let s:actions[s:idx].cmd = ''
|
||||
endif
|
||||
@@ -182,31 +279,76 @@ if exists("g:spotbugs_properties") &&
|
||||
endif
|
||||
|
||||
" The events are defined in s:actions.
|
||||
silent! autocmd! java_spotbugs BufWritePost <buffer>
|
||||
silent! autocmd! java_spotbugs User <buffer>
|
||||
silent! autocmd! java_spotbugs Syntax <buffer>
|
||||
|
||||
for s:action in s:actions
|
||||
execute printf('autocmd java_spotbugs %s <buffer> %s',
|
||||
if has_key(s:action, 'once')
|
||||
execute printf('autocmd java_spotbugs %s <buffer> ' .
|
||||
\ 'call JavaFileTypeExecuteActionOnce(%s, %s)',
|
||||
\ s:action.event,
|
||||
\ s:action.cmd . (has_key(s:action, 'once')
|
||||
\ ? printf(' | autocmd! java_spotbugs %s <buffer>',
|
||||
\ s:action.event)
|
||||
\ : ''))
|
||||
\ string(printf('autocmd! java_spotbugs %s <buffer>',
|
||||
\ s:action.event)),
|
||||
\ string(s:action.cmd))
|
||||
else
|
||||
execute printf('autocmd java_spotbugs %s <buffer> %s',
|
||||
\ s:action.event,
|
||||
\ s:action.cmd)
|
||||
endif
|
||||
endfor
|
||||
|
||||
unlet! s:action s:actions s:idx s:dispatcher
|
||||
if s:SpotBugsHasProperty('PostCompilerActionExecutor') &&
|
||||
\ (s:request == 7 || s:request == 6 ||
|
||||
\ s:request == 5 || s:request == 4)
|
||||
let s:augroup = s:SpotBugsGetProperty(
|
||||
\ 'augroupForPostCompilerAction',
|
||||
\ 'java_spotbugs_post')
|
||||
let s:augroup = !empty(s:augroup) ? s:augroup : 'java_spotbugs_post'
|
||||
|
||||
for s:candidate in ['java_spotbugs_post', s:augroup]
|
||||
if !exists("#" . s:candidate)
|
||||
execute printf('augroup %s | augroup END', s:candidate)
|
||||
endif
|
||||
endfor
|
||||
|
||||
silent! autocmd! java_spotbugs_post User <buffer>
|
||||
|
||||
" Define a User ":autocmd" to define a once-only ShellCmdPost
|
||||
" ":autocmd" that will invoke "PostCompilerActionExecutor" and let
|
||||
" it decide whether to proceed with ":compiler spotbugs" etc.; and
|
||||
" seek explicit synchronisation with ":doautocmd ShellCmdPost" by
|
||||
" omitting "nested" for "java_spotbugs_post" and "java_spotbugs".
|
||||
execute printf('autocmd java_spotbugs_post User <buffer> ' .
|
||||
\ 'call JavaFileTypeExecuteActionOnce(%s, %s)',
|
||||
\ string(printf('autocmd! %s ShellCmdPost <buffer>', s:augroup)),
|
||||
\ string(printf('autocmd %s ShellCmdPost <buffer> ' .
|
||||
\ 'call JavaFileTypeExecuteActionOnce(%s, %s)',
|
||||
\ s:augroup,
|
||||
\ string(printf('autocmd! %s ShellCmdPost <buffer>', s:augroup)),
|
||||
\ string(printf('call call(%s, [%s])',
|
||||
\ string(s:SpotBugsGetProperties().PostCompilerActionExecutor),
|
||||
\ string(printf('compiler spotbugs | call call(%s, [])',
|
||||
\ string(s:SpotBugsGetProperties().PostCompilerAction))))))))
|
||||
endif
|
||||
|
||||
unlet! s:candidate s:augroup s:action s:actions s:idx s:dispatcher
|
||||
endif
|
||||
|
||||
unlet s:request
|
||||
delfunction s:SpotBugsGetProperties
|
||||
delfunction s:SpotBugsHasProperty
|
||||
delfunction s:SpotBugsGetProperty
|
||||
unlet! s:request s:spotbugs_properties_scope
|
||||
endif
|
||||
|
||||
function! JavaFileTypeCleanUp() abort
|
||||
setlocal suffixes< suffixesadd< formatoptions< comments< commentstring< path< includeexpr<
|
||||
unlet! b:browsefilter
|
||||
|
||||
" The concatenated removals may be misparsed as a BufWritePost autocmd.
|
||||
silent! autocmd! java_spotbugs BufWritePost <buffer>
|
||||
" The concatenated ":autocmd" removals may be misparsed as an ":autocmd".
|
||||
" A _once-only_ ShellCmdPost ":autocmd" is always a call-site definition.
|
||||
silent! autocmd! java_spotbugs User <buffer>
|
||||
silent! autocmd! java_spotbugs Syntax <buffer>
|
||||
silent! autocmd! java_spotbugs_post User <buffer>
|
||||
endfunction
|
||||
|
||||
" Undo the stuff we changed.
|
||||
@@ -232,14 +374,16 @@ if exists("s:zip_func_upgradable")
|
||||
endif
|
||||
|
||||
if exists("*s:DispatchAction")
|
||||
def! s:DispatchAction(path_action_pairs: list<list<any>>)
|
||||
def! s:DispatchAction(paths_action_pairs: list<list<any>>)
|
||||
const name: string = expand('%:p')
|
||||
|
||||
for [path: string, Action: func: any] in path_action_pairs
|
||||
if name =~# (path .. '.\{-}\.java\=$')
|
||||
Action()
|
||||
break
|
||||
endif
|
||||
for [paths: list<string>, Action: func: any] in paths_action_pairs
|
||||
for path in paths
|
||||
if name =~# (path .. '.\{-}\.java\=$')
|
||||
Action()
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
enddef
|
||||
endif
|
||||
|
||||
14
runtime/ftplugin/lnk.vim
Normal file
14
runtime/ftplugin/lnk.vim
Normal file
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: TI linker command file
|
||||
" Document: https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2024 Dec 31
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
|
||||
setlocal commentstring=/*\ %s\ */
|
||||
setlocal iskeyword+=.
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments< iskeyword<"
|
||||
16
runtime/ftplugin/lnkmap.vim
Normal file
16
runtime/ftplugin/lnkmap.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: TI Linker map
|
||||
" Document: https://downloads.ti.com/docs/esd/SPRUI03A/Content/SPRUI03A_HTML/linker_description.html
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2024 Dec 25
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl iskeyword<"
|
||||
|
||||
setl iskeyword+=.
|
||||
18
runtime/ftplugin/proto.vim
Normal file
18
runtime/ftplugin/proto.vim
Normal file
@@ -0,0 +1,18 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Protobuf
|
||||
" Maintainer: David Pedersen <limero@me.com>
|
||||
" Last Change: 2024 Dec 09
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,://
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
let b:undo_ftplugin = "setlocal formatoptions< comments< commentstring<"
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
@@ -5,6 +5,7 @@
|
||||
" Contributor: Enno Nagel <ennonagel+vim@gmail.com>
|
||||
" Eisuke Kawashima
|
||||
" Last Change: 2024 Sep 19 by Vim Project (compiler shellcheck)
|
||||
" 2024 Dec 29 by Vim Project (improve setting shellcheck compiler)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -44,7 +45,11 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
if get(b:, "is_bash", 0)
|
||||
let s:is_sh = get(b:, "is_sh", get(g:, "is_sh", 0))
|
||||
let s:is_bash = get(b:, "is_bash", get(g:, "is_bash", 0))
|
||||
let s:is_kornshell = get(b:, "is_kornshell", get(g:, "is_kornshell", 0))
|
||||
|
||||
if s:is_bash
|
||||
if exists(':terminal') == 2
|
||||
command! -buffer -nargs=1 ShKeywordPrg silent exe ':term bash -c "help "<args>" 2>/dev/null || man "<args>""'
|
||||
else
|
||||
@@ -52,14 +57,21 @@ if get(b:, "is_bash", 0)
|
||||
endif
|
||||
setlocal keywordprg=:ShKeywordPrg
|
||||
let b:undo_ftplugin ..= " | setl kp< | sil! delc -buffer ShKeywordPrg"
|
||||
endif
|
||||
|
||||
if (s:is_sh || s:is_bash || s:is_kornshell) && executable('shellcheck')
|
||||
if !exists('current_compiler')
|
||||
compiler shellcheck
|
||||
let b:undo_ftplugin ..= ' | compiler make'
|
||||
endif
|
||||
elseif s:is_bash
|
||||
if !exists('current_compiler')
|
||||
compiler bash
|
||||
let b:undo_ftplugin ..= ' | compiler make'
|
||||
endif
|
||||
let b:undo_ftplugin .= ' | compiler make'
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
unlet s:save_cpo s:is_sh s:is_bash s:is_kornshell
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
||||
|
||||
54
runtime/ftplugin/shaderslang.vim
Normal file
54
runtime/ftplugin/shaderslang.vim
Normal file
@@ -0,0 +1,54 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Slang
|
||||
" Maintainer: Austin Shijo <epestr@proton.me>
|
||||
" Last Change: 2025 Jan 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Using line continuation here.
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< cms< inc<"
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines,
|
||||
" and insert the comment leader when hitting <CR> or using "o".
|
||||
setlocal fo-=t fo+=croql
|
||||
|
||||
" Set comment string (Slang uses C-style comments)
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
" Set 'comments' to format dashed lists in comments
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
|
||||
|
||||
" When the matchit plugin is loaded, this makes the % command skip parens and
|
||||
" braces in comments properly, and adds support for shader-specific keywords
|
||||
if exists("loaded_matchit")
|
||||
" Add common shader control structures
|
||||
let b:match_words = '{\|^\s*\<\(if\|for\|while\|switch\|struct\|class\)\>:}\|^\s*\<break\>,' ..
|
||||
\ '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>,' ..
|
||||
\ '\[:\]'
|
||||
let b:match_skip = 's:comment\|string\|character\|special'
|
||||
let b:match_ignorecase = 0
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words b:match_ignorecase"
|
||||
endif
|
||||
|
||||
" Win32 and GTK can filter files in the browse dialog
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Slang Source Files (*.slang)\t*.slang\n"
|
||||
if has("win32")
|
||||
let b:browsefilter ..= "All Files (*.*)\t*\n"
|
||||
else
|
||||
let b:browsefilter ..= "All Files (*)\t*\n"
|
||||
endif
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
18
runtime/ftplugin/tiasm.vim
Normal file
18
runtime/ftplugin/tiasm.vim
Normal file
@@ -0,0 +1,18 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: TI linear assembly language
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2025 Jan 08
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:;
|
||||
setlocal commentstring=;\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments<"
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_words = '^\s\+\.if\>:^\s\+\.elseif:^\s\+\.else\>:^\s\+\.endif\>,^\s\+\.group:^\s\+\.gmember:^\s\+\.endgroup,^\s\+\.loop:^\s\+\.break:^\s\+\.endloop,^\s\+\.macro:^\s\+\.mexit:^\s\+\.endm,^\s\+\.asmfunc:^\s\+\.endasmfunc,^\s\+\.c\?struct:^\s\+\.endstruct,^\s\+\.c\?union:^\s\+\.endunion,^\s\+\.c\?proc:^\s\+\.return:^\s\+\.endproc'
|
||||
let b:match_ignorecase = 1
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words"
|
||||
endif
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Typst
|
||||
" Maintainer: Gregory Anders
|
||||
" Last Change: 2024 Dev 01
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Last Change: 2024 Dec 09
|
||||
" Based on: https://github.com/kaarmu/typst.vim
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
@@ -12,8 +13,10 @@ let b:did_ftplugin = 1
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,://
|
||||
setlocal formatoptions+=croqn
|
||||
" Numbered Lists
|
||||
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
||||
setlocal formatlistpat+=\\\|^\\s*[-+\]\\s\\+
|
||||
" Unordered (-), Ordered (+) and definition (/) Lists
|
||||
setlocal formatlistpat+=\\\|^\\s*[-+/\]\\s\\+
|
||||
setlocal suffixesadd=.typ
|
||||
|
||||
let b:undo_ftplugin = 'setl cms< com< fo< flp< sua<'
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Vim
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2024 Apr 13
|
||||
" 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
" Last Change: 2025 Jan 06
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Contributors: Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -108,8 +108,8 @@ if exists("loaded_matchit")
|
||||
\ '\<try\>:\%(\%(^\||\)\s*\)\@<=\<cat\%[ch]\>:\%(\%(^\||\)\s*\)\@<=\<fina\%[lly]\>:\%(\%(^\||\)\s*\)\@<=\<endt\%[ry]\>,' ..
|
||||
\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' ..
|
||||
\ '\<class\>:\<endclass\>,' ..
|
||||
\ '\<inte\%[rface]\>:\<endinterface\>,' ..
|
||||
\ '\<enu\%[m]\>:\<endenum\>,'
|
||||
\ '\<interface\>:\<endinterface\>,' ..
|
||||
\ '\<enum\>:\<endenum\>'
|
||||
|
||||
" Ignore syntax region commands and settings, any 'en*' would clobber
|
||||
" if-endif.
|
||||
|
||||
92
runtime/indent/graphql.vim
Normal file
92
runtime/indent/graphql.vim
Normal file
@@ -0,0 +1,92 @@
|
||||
" Vim indent file
|
||||
" Language: graphql
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
" Filenames: *.graphql *.graphqls *.gql
|
||||
" URL: https://github.com/jparise/vim-graphql
|
||||
" License: MIT <https://opensource.org/license/mit>
|
||||
" Last Change: 2024 Dec 21
|
||||
|
||||
" Set our local options if indentation hasn't already been set up.
|
||||
" This generally means we've been detected as the primary filetype.
|
||||
if !exists('b:did_indent')
|
||||
setlocal autoindent
|
||||
setlocal nocindent
|
||||
setlocal nolisp
|
||||
setlocal nosmartindent
|
||||
|
||||
setlocal indentexpr=GetGraphQLIndent()
|
||||
setlocal indentkeys=0{,0},0),0[,0],0#,!^F,o,O
|
||||
|
||||
let b:did_indent = 1
|
||||
endif
|
||||
|
||||
" If our indentation function already exists, we have nothing more to do.
|
||||
if exists('*GetGraphQLIndent')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpoptions
|
||||
set cpoptions&vim
|
||||
|
||||
" searchpair() skip expression that matches in comments and strings.
|
||||
let s:pair_skip_expr =
|
||||
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "comment\\|string"'
|
||||
|
||||
" Check if the character at lnum:col is inside a string.
|
||||
function s:InString(lnum, col)
|
||||
return synIDattr(synID(a:lnum, a:col, 1), 'name') ==# 'graphqlString'
|
||||
endfunction
|
||||
|
||||
function GetGraphQLIndent()
|
||||
" If this is the first non-blank line, we have nothing more to do because
|
||||
" all of our indentation rules are based on matching against earlier lines.
|
||||
let l:prevlnum = prevnonblank(v:lnum - 1)
|
||||
if l:prevlnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
" If the previous line isn't GraphQL, assume we're part of a template
|
||||
" string and indent this new line within it.
|
||||
let l:stack = map(synstack(l:prevlnum, 1), "synIDattr(v:val, 'name')")
|
||||
if get(l:stack, -1) !~# '^graphql'
|
||||
return indent(l:prevlnum) + shiftwidth()
|
||||
endif
|
||||
|
||||
let l:line = getline(v:lnum)
|
||||
|
||||
" If this line contains just a closing bracket, find its matching opening
|
||||
" bracket and indent the closing bracket to match.
|
||||
let l:col = matchend(l:line, '^\s*[]})]')
|
||||
if l:col > 0 && !s:InString(v:lnum, l:col)
|
||||
call cursor(v:lnum, l:col)
|
||||
|
||||
let l:bracket = l:line[l:col - 1]
|
||||
if l:bracket ==# '}'
|
||||
let l:matched = searchpair('{', '', '}', 'bW', s:pair_skip_expr)
|
||||
elseif l:bracket ==# ']'
|
||||
let l:matched = searchpair('\[', '', '\]', 'bW', s:pair_skip_expr)
|
||||
elseif l:bracket ==# ')'
|
||||
let l:matched = searchpair('(', '', ')', 'bW', s:pair_skip_expr)
|
||||
else
|
||||
let l:matched = -1
|
||||
endif
|
||||
|
||||
return l:matched > 0 ? indent(l:matched) : virtcol('.') - 1
|
||||
endif
|
||||
|
||||
" If we're inside of a multiline string, continue with the same indentation.
|
||||
if s:InString(v:lnum, matchend(l:line, '^\s*') + 1)
|
||||
return indent(v:lnum)
|
||||
endif
|
||||
|
||||
" If the previous line ended with an opening bracket, indent this line.
|
||||
if getline(l:prevlnum) =~# '\%(#.*\)\@<![[{(]\s*$'
|
||||
return indent(l:prevlnum) + shiftwidth()
|
||||
endif
|
||||
|
||||
" Default to the existing indentation level.
|
||||
return indent(l:prevlnum)
|
||||
endfunction
|
||||
|
||||
let &cpoptions = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -905,15 +905,15 @@ endif
|
||||
|
||||
" START_INDENT
|
||||
abstract class Shape
|
||||
this.color = Color.Black
|
||||
this.thickness = 10
|
||||
var color = Color.Black
|
||||
var thickness = 10
|
||||
endclass
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
class OtherThing
|
||||
this.size: number
|
||||
static totalSize: number
|
||||
var size: number
|
||||
static var totalSize: number
|
||||
|
||||
static def ClearTotalSize(): number
|
||||
var prev = totalSize
|
||||
@@ -925,7 +925,7 @@ endclass
|
||||
|
||||
" START_INDENT
|
||||
interface HasSurface
|
||||
this.size: number
|
||||
var size: number
|
||||
def Surface(): number
|
||||
endinterface
|
||||
" END_INDENT
|
||||
@@ -939,14 +939,28 @@ endinterface
|
||||
|
||||
" START_INDENT
|
||||
enum Color
|
||||
White
|
||||
Red
|
||||
Green
|
||||
Blue
|
||||
White,
|
||||
Red,
|
||||
Green,
|
||||
Blue,
|
||||
Black
|
||||
endenum
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
enum Digits
|
||||
INVALID(v:numbermax), # The null value.
|
||||
ZERO(0 * v:numbermin), ONE(2 - 1),
|
||||
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
|
||||
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
|
||||
NINE(3 + 3 + 3)
|
||||
const value: number
|
||||
def new(value: number)
|
||||
this.value = value
|
||||
enddef
|
||||
endenum
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
||||
call prop_type_delete('indent_after_literal_dict')
|
||||
|
||||
@@ -905,15 +905,15 @@ endif
|
||||
|
||||
" START_INDENT
|
||||
abstract class Shape
|
||||
this.color = Color.Black
|
||||
this.thickness = 10
|
||||
var color = Color.Black
|
||||
var thickness = 10
|
||||
endclass
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
class OtherThing
|
||||
this.size: number
|
||||
static totalSize: number
|
||||
var size: number
|
||||
static var totalSize: number
|
||||
|
||||
static def ClearTotalSize(): number
|
||||
var prev = totalSize
|
||||
@@ -925,7 +925,7 @@ endclass
|
||||
|
||||
" START_INDENT
|
||||
interface HasSurface
|
||||
this.size: number
|
||||
var size: number
|
||||
def Surface(): number
|
||||
endinterface
|
||||
" END_INDENT
|
||||
@@ -939,14 +939,28 @@ endinterface
|
||||
|
||||
" START_INDENT
|
||||
enum Color
|
||||
White
|
||||
Red
|
||||
Green
|
||||
Blue
|
||||
White,
|
||||
Red,
|
||||
Green,
|
||||
Blue,
|
||||
Black
|
||||
endenum
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
enum Digits
|
||||
INVALID(v:numbermax), # The null value.
|
||||
ZERO(0 * v:numbermin), ONE(2 - 1),
|
||||
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
|
||||
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
|
||||
NINE(3 + 3 + 3)
|
||||
const value: number
|
||||
def new(value: number)
|
||||
this.value = value
|
||||
enddef
|
||||
endenum
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
||||
call prop_type_delete('indent_after_literal_dict')
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim indent file
|
||||
" Language: Typst
|
||||
" Maintainer: Gregory Anders <greg@gpanders.com>
|
||||
" Last Change: 2024-07-14
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Last Change: 2024 Dec 09
|
||||
" Based on: https://github.com/kaarmu/typst.vim
|
||||
|
||||
if exists('b:did_indent')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Menu Translations: Finnish
|
||||
" Maintainer: Flammie Pirinen <flammie@iki.fi>
|
||||
" Last Change: 2020 Apr 23
|
||||
" Last Change: 2024 Dec 23
|
||||
" Original translations
|
||||
|
||||
" Quit when menu translations have already been done.
|
||||
@@ -88,7 +88,7 @@ menutrans Toggle\ &Left\ Scrollbar Vasen\ &pystyvierityspalkki
|
||||
menutrans Toggle\ &Right\ Scrollbar Oikea\ pystyvie&rityspalkki
|
||||
|
||||
let g:menutrans_path_dialog = "Anna tiedostojen hakupolku.\nErota hakemistot pilkuin."
|
||||
let g:menutrans_tags_dialog = "Anna tägitiedostojen nimet.\nErota tidostot pilkuin."
|
||||
let g:menutrans_tags_dialog = "Anna tägitiedostojen nimet.\nErota tiedostot pilkuin."
|
||||
|
||||
menutrans F&ile\ Settings Tiedostoasetu&kset
|
||||
" Submenu:
|
||||
@@ -107,7 +107,7 @@ menutrans Te&xt\ Width\.\.\. Tekstinl&eveys\.\.\.
|
||||
menutrans &File\ Format\.\.\. Tiedosto&muoto\.\.\.
|
||||
|
||||
let g:menutrans_textwidth_dialog = "Anna uusi tekstin leveys\n(0 poistaa käytöstä)"
|
||||
let g:menutrans_fileformat_dialog = "Anaa tiedoston kirjoitusmuoto."
|
||||
let g:menutrans_fileformat_dialog = "Anna tiedoston kirjoitusmuoto."
|
||||
let g:menutrans_fileformat_choices = " &Unix \n &Dos \n &Mac \n &Peru "
|
||||
|
||||
menutrans C&olor\ Scheme &Väriteema
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Jul 12
|
||||
" Last Change: 2024 Dec 07
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
@@ -749,7 +749,7 @@ call <SID>AddOption("terse", gettext("add 's' flag in 'shortmess' (don't show se
|
||||
call <SID>BinOptionG("terse", &terse)
|
||||
call <SID>AddOption("shortmess", gettext("list of flags to make messages shorter"))
|
||||
call <SID>OptionG("shm", &shm)
|
||||
call <SID>AddOption("messagesopt", gettext("Option settings when outputting messages"))
|
||||
call <SID>AddOption("messagesopt", gettext("options for outputting messages"))
|
||||
call <SID>OptionG("mopt", &mopt)
|
||||
call <SID>AddOption("showcmd", gettext("show (partial) command keys in location given by 'showcmdloc'"))
|
||||
let &sc = s:old_sc
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
|
||||
" PLUGIN SECTION
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Date: Sep 09, 2021
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Date: Sep 09, 2021
|
||||
" Last Change:
|
||||
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
|
||||
" 2024 Oct 27 by Vim Project: cleanup gx mapping
|
||||
" 2024 Oct 28 by Vim Project: further improvements
|
||||
" 2024 Oct 31 by Vim Project: use autoloaded functions
|
||||
" 2024 Dec 19 by Vim Project: change style (#16248)
|
||||
" Former Maintainer: Charles E Campbell
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 1999-2021 Charles E. Campbell {{{1
|
||||
@@ -24,7 +25,7 @@
|
||||
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwPlugin = "v173"
|
||||
let s:keepcpo = &cpo
|
||||
@@ -40,71 +41,71 @@ command -complete=file -nargs=1 Open call netrw#Open(trim(<q-args>))
|
||||
" " }}}
|
||||
" Local Browsing Autocmds: {{{2
|
||||
augroup FileExplorer
|
||||
au!
|
||||
au BufLeave * if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif
|
||||
au BufEnter * sil call s:LocalBrowse(expand("<amatch>"))
|
||||
au VimEnter * sil call s:VimEnter(expand("<amatch>"))
|
||||
if has("win32")
|
||||
au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
|
||||
endif
|
||||
au!
|
||||
au BufLeave * if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif
|
||||
au BufEnter * sil call s:LocalBrowse(expand("<amatch>"))
|
||||
au VimEnter * sil call s:VimEnter(expand("<amatch>"))
|
||||
if has("win32")
|
||||
au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
|
||||
endif
|
||||
augroup END
|
||||
|
||||
" Network Browsing Reading Writing: {{{2
|
||||
augroup Network
|
||||
au!
|
||||
au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>"))
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
try
|
||||
au SourceCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
catch /^Vim\%((\a\+)\)\=:E216/
|
||||
au SourcePre ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
endtry
|
||||
au!
|
||||
au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>"))
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
try
|
||||
au SourceCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
catch /^Vim\%((\a\+)\)\=:E216/
|
||||
au SourcePre ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
endtry
|
||||
augroup END
|
||||
|
||||
" Commands: :Nread, :Nwrite, :NetUserPass {{{2
|
||||
com! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
|
||||
com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>)
|
||||
com! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
|
||||
com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>)
|
||||
|
||||
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>)
|
||||
com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
|
||||
com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Lexplore call netrw#Lexplore(<count>,<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>)
|
||||
com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
|
||||
com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Lexplore call netrw#Lexplore(<count>,<bang>0,<q-args>)
|
||||
|
||||
" Commands: NetrwSettings {{{2
|
||||
com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
|
||||
com! -bang NetrwClean call netrw#Clean(<bang>0)
|
||||
com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
|
||||
com! -bang NetrwClean call netrw#Clean(<bang>0)
|
||||
|
||||
" Maps:
|
||||
if !exists("g:netrw_nogx")
|
||||
if maparg('gx','n') == ""
|
||||
if !hasmapto('<Plug>NetrwBrowseX')
|
||||
nmap <unique> gx <Plug>NetrwBrowseX
|
||||
if maparg('gx','n') == ""
|
||||
if !hasmapto('<Plug>NetrwBrowseX')
|
||||
nmap <unique> gx <Plug>NetrwBrowseX
|
||||
endif
|
||||
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr>
|
||||
endif
|
||||
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr>
|
||||
endif
|
||||
if maparg('gx','x') == ""
|
||||
if !hasmapto('<Plug>NetrwBrowseXVis')
|
||||
xmap <unique> gx <Plug>NetrwBrowseXVis
|
||||
if maparg('gx','x') == ""
|
||||
if !hasmapto('<Plug>NetrwBrowseXVis')
|
||||
xmap <unique> gx <Plug>NetrwBrowseXVis
|
||||
endif
|
||||
xno <silent> <Plug>NetrwBrowseXVis :<c-u>call netrw#BrowseXVis()<cr>
|
||||
endif
|
||||
xno <silent> <Plug>NetrwBrowseXVis :<c-u>call netrw#BrowseXVis()<cr>
|
||||
endif
|
||||
endif
|
||||
if exists("g:netrw_usetab") && g:netrw_usetab
|
||||
if maparg('<c-tab>','n') == ""
|
||||
nmap <unique> <c-tab> <Plug>NetrwShrink
|
||||
endif
|
||||
nno <silent> <Plug>NetrwShrink :call netrw#Shrink()<cr>
|
||||
if maparg('<c-tab>','n') == ""
|
||||
nmap <unique> <c-tab> <Plug>NetrwShrink
|
||||
endif
|
||||
nno <silent> <Plug>NetrwShrink :call netrw#Shrink()<cr>
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
@@ -115,43 +116,43 @@ fun! s:LocalBrowse(dirname)
|
||||
" the DBG buffer are made.
|
||||
|
||||
if !exists("s:vimentered")
|
||||
" If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will,
|
||||
" and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
|
||||
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered doesn't exist)")
|
||||
" call Dret("s:LocalBrowse")
|
||||
return
|
||||
" If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will,
|
||||
" and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
|
||||
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered doesn't exist)")
|
||||
" call Dret("s:LocalBrowse")
|
||||
return
|
||||
endif
|
||||
|
||||
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered=".s:vimentered.")")
|
||||
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered=".s:vimentered.")")
|
||||
|
||||
if has("amiga")
|
||||
" The check against '' is made for the Amiga, where the empty
|
||||
" string is the current directory and not checking would break
|
||||
" things such as the help command.
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, amiga)")
|
||||
if a:dirname != '' && isdirectory(a:dirname)
|
||||
sil! call netrw#LocalBrowseCheck(a:dirname)
|
||||
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
|
||||
exe w:netrw_bannercnt
|
||||
" The check against '' is made for the Amiga, where the empty
|
||||
" string is the current directory and not checking would break
|
||||
" things such as the help command.
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, amiga)")
|
||||
if a:dirname != '' && isdirectory(a:dirname)
|
||||
sil! call netrw#LocalBrowseCheck(a:dirname)
|
||||
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
|
||||
exe w:netrw_bannercnt
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
elseif isdirectory(a:dirname)
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)")
|
||||
" call Dredir("LocalBrowse ft last set: ","verbose set ft")
|
||||
" Jul 13, 2021: for whatever reason, preceding the following call with
|
||||
" a sil! causes an unbalanced if-endif vim error
|
||||
call netrw#LocalBrowseCheck(a:dirname)
|
||||
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
|
||||
exe w:netrw_bannercnt
|
||||
endif
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)")
|
||||
" call Dredir("LocalBrowse ft last set: ","verbose set ft")
|
||||
" Jul 13, 2021: for whatever reason, preceding the following call with
|
||||
" a sil! causes an unbalanced if-endif vim error
|
||||
call netrw#LocalBrowseCheck(a:dirname)
|
||||
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
|
||||
exe w:netrw_bannercnt
|
||||
endif
|
||||
|
||||
else
|
||||
" not a directory, ignore it
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
|
||||
" not a directory, ignore it
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
|
||||
endif
|
||||
|
||||
" call Dret("s:LocalBrowse")
|
||||
" call Dret("s:LocalBrowse")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
@@ -162,72 +163,72 @@ endfun
|
||||
" It also sets s:vimentered, letting s:LocalBrowse() know that s:VimEnter()
|
||||
" has already been called.
|
||||
fun! s:VimEnter(dirname)
|
||||
" call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">")
|
||||
" call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">")
|
||||
if has('nvim') || v:version < 802
|
||||
" Johann Höchtl: reported that the call range... line causes an E488: Trailing characters
|
||||
" error with neovim. I suspect its because neovim hasn't updated with recent
|
||||
" vim patches. As is, this code will have problems with popup terminals
|
||||
" instantiated before the VimEnter event runs.
|
||||
" Ingo Karkat : E488 also in Vim 8.1.1602
|
||||
let curwin = winnr()
|
||||
let s:vimentered = 1
|
||||
windo call s:LocalBrowse(expand("%:p"))
|
||||
exe curwin."wincmd w"
|
||||
else
|
||||
" the following complicated expression comes courtesy of lacygoill; largely does the same thing as the windo and
|
||||
" wincmd which are commented out, but avoids some side effects. Allows popup terminal before VimEnter.
|
||||
let s:vimentered = 1
|
||||
call range(1, winnr('$'))->map({_, v -> win_execute(win_getid(v), 'call expand("%:p")->s:LocalBrowse()')})
|
||||
endif
|
||||
" call Dret("s:VimEnter")
|
||||
" Johann Höchtl: reported that the call range... line causes an E488: Trailing characters
|
||||
" error with neovim. I suspect its because neovim hasn't updated with recent
|
||||
" vim patches. As is, this code will have problems with popup terminals
|
||||
" instantiated before the VimEnter event runs.
|
||||
" Ingo Karkat : E488 also in Vim 8.1.1602
|
||||
let curwin = winnr()
|
||||
let s:vimentered = 1
|
||||
windo call s:LocalBrowse(expand("%:p"))
|
||||
exe curwin."wincmd w"
|
||||
else
|
||||
" the following complicated expression comes courtesy of lacygoill; largely does the same thing as the windo and
|
||||
" wincmd which are commented out, but avoids some side effects. Allows popup terminal before VimEnter.
|
||||
let s:vimentered = 1
|
||||
call range(1, winnr('$'))->map({_, v -> win_execute(win_getid(v), 'call expand("%:p")->s:LocalBrowse()')})
|
||||
endif
|
||||
" call Dret("s:VimEnter")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" NetrwStatusLine: {{{1
|
||||
fun! NetrwStatusLine()
|
||||
" let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr("%")." Xline#".w:netrw_explore_line." line#".line(".")
|
||||
" let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr("%")." Xline#".w:netrw_explore_line." line#".line(".")
|
||||
if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
|
||||
let &stl= s:netrw_explore_stl
|
||||
if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
|
||||
if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
|
||||
return ""
|
||||
let &stl= s:netrw_explore_stl
|
||||
if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
|
||||
if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
|
||||
return ""
|
||||
else
|
||||
return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
|
||||
return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
|
||||
endif
|
||||
endfun
|
||||
|
||||
" ------------------------------------------------------------------------
|
||||
" NetUserPass: set username and password for subsequent ftp transfer {{{1
|
||||
" Usage: :call NetUserPass() -- will prompt for userid and password
|
||||
" :call NetUserPass("uid") -- will prompt for password
|
||||
" :call NetUserPass("uid","password") -- sets global userid and password
|
||||
" Usage: :call NetUserPass() -- will prompt for userid and password
|
||||
" :call NetUserPass("uid") -- will prompt for password
|
||||
" :call NetUserPass("uid","password") -- sets global userid and password
|
||||
fun! NetUserPass(...)
|
||||
|
||||
" get/set userid
|
||||
if a:0 == 0
|
||||
" call Dfunc("NetUserPass(a:0<".a:0.">)")
|
||||
if !exists("g:netrw_uid") || g:netrw_uid == ""
|
||||
" via prompt
|
||||
let g:netrw_uid= input('Enter username: ')
|
||||
" get/set userid
|
||||
if a:0 == 0
|
||||
" call Dfunc("NetUserPass(a:0<".a:0.">)")
|
||||
if !exists("g:netrw_uid") || g:netrw_uid == ""
|
||||
" via prompt
|
||||
let g:netrw_uid= input('Enter username: ')
|
||||
endif
|
||||
else " from command line
|
||||
" call Dfunc("NetUserPass(a:1<".a:1.">) {")
|
||||
let g:netrw_uid= a:1
|
||||
endif
|
||||
else " from command line
|
||||
" call Dfunc("NetUserPass(a:1<".a:1.">) {")
|
||||
let g:netrw_uid= a:1
|
||||
endif
|
||||
|
||||
" get password
|
||||
if a:0 <= 1 " via prompt
|
||||
" call Decho("a:0=".a:0." case <=1:")
|
||||
let g:netrw_passwd= inputsecret("Enter Password: ")
|
||||
else " from command line
|
||||
" call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
|
||||
let g:netrw_passwd=a:2
|
||||
endif
|
||||
" call Dret("NetUserPass")
|
||||
" get password
|
||||
if a:0 <= 1 " via prompt
|
||||
" call Decho("a:0=".a:0." case <=1:")
|
||||
let g:netrw_passwd= inputsecret("Enter Password: ")
|
||||
else " from command line
|
||||
" call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
|
||||
let g:netrw_passwd=a:2
|
||||
endif
|
||||
" call Dret("NetUserPass")
|
||||
endfun
|
||||
|
||||
" ------------------------------------------------------------------------
|
||||
" Modelines And Restoration: {{{1
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" vim:ts=8 fdm=marker
|
||||
" vim:ts=8 sts=2 sw=2 et fdm=marker
|
||||
|
||||
17
runtime/syntax/apkbuild.vim
Normal file
17
runtime/syntax/apkbuild.vim
Normal file
@@ -0,0 +1,17 @@
|
||||
" Vim syntax file
|
||||
" Language: apkbuild
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Dec 22
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" The actual syntax is in sh.vim and controlled by buffer-local variables.
|
||||
unlet! b:is_bash b:is_kornshell
|
||||
let b:is_sh = 1
|
||||
|
||||
runtime! syntax/sh.vim
|
||||
|
||||
let b:current_syntax = 'apkbuild'
|
||||
@@ -2,6 +2,7 @@
|
||||
" Language: ChordPro 6 (https://www.chordpro.org)
|
||||
" Maintainer: Niels Bo Andersen <niels@niboan.dk>
|
||||
" Last Change: 2022-04-15
|
||||
" 2024 Dec 31: add "keys" as syntax keyword (via: https://groups.google.com/g/vim_dev/c/vP4epus0euM/m/mNoDY6hsCQAJ)
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -104,7 +105,7 @@ syn match chordproStandardMetadata /instrument\.description/ contained
|
||||
syn match chordproStandardMetadata /user\.name/ contained
|
||||
syn match chordproStandardMetadata /user\.fullname/ contained
|
||||
|
||||
syn keyword chordproDefineKeyword contained frets fingers
|
||||
syn keyword chordproDefineKeyword contained frets fingers keys
|
||||
syn match chordproDefineKeyword /base-fret/ contained
|
||||
|
||||
syn match chordproArgumentsNumber /\d\+/ contained
|
||||
|
||||
77
runtime/syntax/cmacro.vim
Normal file
77
runtime/syntax/cmacro.vim
Normal file
@@ -0,0 +1,77 @@
|
||||
" Vim syntax file
|
||||
" Language: C macro for C preprocessor
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2024 Dec 31
|
||||
" modified from syntax/c.vim
|
||||
|
||||
" C compiler has a preprocessor: `cpp -P test.txt`
|
||||
" test.txt doesn't need to be a C file
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Accept %: for # (C99)
|
||||
syn region cmacroPreCondit start="^\s*\zs\%(%:\|#\)\s*\%(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cmacroCppParen,cmacroNumbers
|
||||
syn match cmacroPreConditMatch display "^\s*\zs\%(%:\|#\)\s*\%(else\|endif\)\>"
|
||||
if !exists("c_no_if0")
|
||||
syn cluster cmacroCppOutInGroup contains=cmacroCppInIf,cmacroCppInElse,cmacroCppInElse2,cmacroCppOutIf,cmacroCppOutIf2,cmacroCppOutElse,cmacroCppInSkip,cmacroCppOutSkip
|
||||
syn region cmacroCppOutWrapper start="^\s*\zs\%(%:\|#\)\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=cmacroCppOutIf,cmacroCppOutElse,@NoSpell fold
|
||||
syn region cmacroCppOutIf contained start="0\+" matchgroup=cmacroCppOutWrapper end="^\s*\%(%:\|#\)\s*endif\>" contains=cmacroCppOutIf2,cmacroCppOutElse
|
||||
if !exists("c_no_if0_fold")
|
||||
syn region cmacroCppOutIf2 contained matchgroup=cmacroCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cmacroCppOutSkip,@Spell fold
|
||||
else
|
||||
syn region cmacroCppOutIf2 contained matchgroup=cmacroCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cmacroCppOutSkip,@Spell
|
||||
endif
|
||||
syn region cmacroCppOutElse contained matchgroup=cmacroCppOutWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cmacroPreCondit
|
||||
syn region cmacroCppInWrapper start="^\s*\zs\%(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=cmacroCppInIf,cmacroCppInElse fold
|
||||
syn region cmacroCppInIf contained matchgroup=cmacroCppInWrapper start="\d\+" end="^\s*\%(%:\|#\)\s*endif\>" contains=TOP,cmacroPreCondit
|
||||
if !exists("c_no_if0_fold")
|
||||
syn region cmacroCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cmacroCppInIf contains=cmacroCppInElse2 fold
|
||||
else
|
||||
syn region cmacroCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cmacroCppInIf contains=cmacroCppInElse2
|
||||
endif
|
||||
syn region cmacroCppInElse2 contained matchgroup=cmacroCppInWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)\%([^/]\|/[^/*]\)*" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=cmacroCppOutSkip,@Spell
|
||||
syn region cmacroCppOutSkip contained start="^\s*\%(%:\|#\)\s*\%(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\%(%:\|#\)\s*endif\>" contains=cmacroCppOutSkip
|
||||
syn region cmacroCppInSkip contained matchgroup=cmacroCppInWrapper start="^\s*\%(%:\|#\)\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\%(%:\|#\)\s*endif\>" containedin=cmacroCppOutElse,cmacroCppInIf,cmacroCppInSkip contains=TOP,cmacroPreProc
|
||||
endif
|
||||
syn region cmacroIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match cmacroIncluded display contained "<[^>]*>"
|
||||
syn match cmacroInclude display "^\s*\zs\%(%:\|#\)\s*include\>\s*["<]" contains=cmacroIncluded
|
||||
"syn match cmacroLineSkip "\\$"
|
||||
syn cluster cmacroPreProcmacroGroup contains=cmacroPreCondit,cmacroIncluded,cmacroInclude,cmacroDefine,cmacroCppOutWrapper,cmacroCppInWrapper,@cmacroCppOutInGroup,cmacroNumbersCom,@cmacroCommentGroup,cmacroParen,cmacroBracket,cmacroMulti,cmacroBadBlock
|
||||
syn region cmacroDefine start="^\s*\zs\%(%:\|#\)\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cmacroPreProcmacroGroup,@Spell
|
||||
syn region cmacroPreProc start="^\s*\zs\%(%:\|#\)\s*\%(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cmacroPreProcmacroGroup,@Spell
|
||||
|
||||
" be able to fold #pragma regions
|
||||
syn region cmacroPragma start="^\s*#pragma\s\+region\>" end="^\s*#pragma\s\+endregion\>" transparent keepend extend fold
|
||||
|
||||
syn keyword cmacroTodo contained TODO FIXME XXX NOTE
|
||||
syn region cmacroComment start='/\*' end='\*/' contains=cmacroTodo,@Spell
|
||||
syn match cmacroCommentError "\*/"
|
||||
syn region cmacroComment start='//' end='$' contains=cmacroTodo,@Spell
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link cmacroInclude Include
|
||||
hi def link cmacroPreProc PreProc
|
||||
hi def link cmacroDefine Macro
|
||||
hi def link cmacroIncluded cmacroString
|
||||
hi def link cmacroCppInWrapper cmacroCppOutWrapper
|
||||
hi def link cmacroCppOutWrapper cmacroPreCondit
|
||||
hi def link cmacroPreConditMatch cmacroPreCondit
|
||||
hi def link cmacroPreCondit PreCondit
|
||||
hi def link cmacroCppOutSkip cmacroCppOutIf2
|
||||
hi def link cmacroCppInElse2 cmacroCppOutIf2
|
||||
hi def link cmacroCppOutIf2 cmacroCppOut
|
||||
hi def link cmacroCppOut Comment
|
||||
hi def link cmacroTodo Todo
|
||||
hi def link cmacroComment Comment
|
||||
hi def link cmacroCommentError Error
|
||||
|
||||
let b:current_syntax = "cmacro"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,6 +1,6 @@
|
||||
" dockerfile.vim - Syntax highlighting for Dockerfiles
|
||||
" Maintainer: Honza Pokorny <https://honza.ca>
|
||||
" Last Change: 2024 Jul 03
|
||||
" Last Change: 2024 Dec 20
|
||||
" License: BSD
|
||||
|
||||
" https://docs.docker.com/engine/reference/builder/
|
||||
@@ -35,7 +35,6 @@ syntax region dockerfileShell contained keepend start=/\v/ skip=/\v\\\_./ end=/
|
||||
syntax region dockerfileValue contained keepend start=/\v/ skip=/\v\\\_./ end=/\v$/ contains=dockerfileString
|
||||
|
||||
syntax region dockerfileComment start=/\v^\s*#/ end=/\v$/ contains=@Spell
|
||||
set commentstring=#\ %s
|
||||
|
||||
hi def link dockerfileString String
|
||||
hi def link dockerfileKeyword Keyword
|
||||
|
||||
19
runtime/syntax/gel.vim
Normal file
19
runtime/syntax/gel.vim
Normal file
@@ -0,0 +1,19 @@
|
||||
" Vim syntax file
|
||||
" Language: TI Code Composer Studio General Extension Language
|
||||
" Document: https://downloads.ti.com/ccs/esd/documents/users_guide/ccs_debug-gel.html
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2024 Dec 25
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! syntax/cpp.vim
|
||||
|
||||
syn keyword gelStatement StartUp GEL_AddInputFile GEL_AddOutputFile GEL_AdvancedReset GEL_AsmStepInto GEL_AsmStepOver GEL_BreakPtAdd GEL_BreakPtDel GEL_BreakPtDisable GEL_BreakPtReset GEL_CancelTimer GEL_Connect GEL_Dialog GEL_DisableFileOutput GEL_DisableRealtime GEL_Disconnect GEL_EnableClock GEL_EnableFileOutput GEL_EnableRealtime GEL_EnableZeroFill GEL_EvalOnTarget GEL_GetBoolDebugProperty GEL_GetBoolDriverProperty GEL_GetBoolTargetDbProperty GEL_GetNumericDebugProperty GEL_GetNumericDriverProperty GEL_GetNumericTargetDbProperty GEL_GetStringDebugProperty GEL_GetStringDriverProperty GEL_GetStringTargetDbProperty GEL_Go GEL_Halt GEL_HandleTargetError GEL_HWBreakPtAdd GEL_HWBreakPtDel GEL_HWBreakPtDisable GEL_HWBreakPtReset GEL_IsConnected GEL_IsHalted GEL_IsInRealtimeMode GEL_IsResetSupported GEL_IsTimerSet GEL_Load GEL_LoadBin GEL_LoadGel GEL_LoadProgramOnly GEL_MapAdd GEL_MapAddStr GEL_MapDelete GEL_MapOff GEL_MapOn GEL_MapReset GEL_MatchesConnection GEL_MemoryFill GEL_MemoryListSupportedTypes GEL_MemoryLoad GEL_MemoryLoadData GEL_MemorySave GEL_MemorySaveBin GEL_MemorySaveCoff GEL_MemorySaveData GEL_MemorySaveHex GEL_PatchAssembly GEL_ProbePtAdd GEL_ProbePtDel GEL_ProbePtDisable GEL_ProbePtReset GEL_ReConnect GEL_RefreshWindows GEL_Reload GEL_RemoveDebugState GEL_RemoveInputFile GEL_RemoveOutputFile GEL_Reset GEL_Restart GEL_RestoreDebugState GEL_Run GEL_RunF GEL_SetBlockResetMode GEL_SetBoolDebugProperty GEL_SetClockEvent GEL_SetNumericDebugProperty GEL_SetSemihostingMainArgs GEL_SetStringDebugProperty GEL_SetTimer GEL_SetWaitInResetMode GEL_SrcStepInto GEL_SrcStepOver GEL_StepInto GEL_StepOut GEL_StepOver GEL_StrCat GEL_StrLen GEL_SubStr GEL_SymbolAdd GEL_SymbolAddOffset GEL_SymbolAddRel GEL_SymbolDisable GEL_SymbolEnable GEL_SymbolHideSection GEL_SymbolLoad GEL_SymbolLoadOffset GEL_SymbolLoadRel GEL_SymbolRemove GEL_SymbolShowSection GEL_SyncHalt GEL_SyncRun GEL_SyncStepInto GEL_SyncStepOut GEL_SyncStepOver GEL_System GEL_TargetTextOut GEL_TextOut GEL_Trace GEL_UnloadAllGels GEL_UnloadAllSymbols GEL_UnloadGel GEL_VerifyBinProgram GEL_VerifyProgram OnChildRunning OnFileLoaded OnHalt OnPreFileLoaded OnPreReset OnPreTargetConnect OnReset OnResetDetected OnRestart OnTargetConnect
|
||||
syn keyword gelModifier hotmenu menuitem
|
||||
|
||||
hi def link gelStatement Statement
|
||||
hi def link gelModifier Type
|
||||
|
||||
let b:current_syntax = "gel"
|
||||
@@ -1,43 +1,50 @@
|
||||
VIM_SRCDIR = ../../../src
|
||||
RUN_VIMPROG = $(VIM_SRCDIR)/vim -N -u NONE -i NONE -n
|
||||
REVISION ?= $(shell date +%Y-%m-%dT%H:%M:%S%:z)
|
||||
#
|
||||
# Makefile for generate runtime/syntax/vim.vim
|
||||
#
|
||||
VIM_SRCDIR := ../../../src
|
||||
RUN_VIMPROG := $(VIM_SRCDIR)/vim -N -u NONE -i NONE -n
|
||||
TARGET := ../vim.vim
|
||||
CHECK_HELP_DOC := 0
|
||||
|
||||
SRC = $(VIM_SRCDIR)/eval.c $(VIM_SRCDIR)/ex_cmds.h $(VIM_SRCDIR)/ex_docmd.c \
|
||||
SRC := $(VIM_SRCDIR)/eval.c $(VIM_SRCDIR)/ex_cmds.h $(VIM_SRCDIR)/ex_docmd.c \
|
||||
$(VIM_SRCDIR)/fileio.c $(VIM_SRCDIR)/option.c $(VIM_SRCDIR)/syntax.c
|
||||
|
||||
export VIM_SRCDIR
|
||||
export CHECK_HELP_DOC
|
||||
|
||||
.PHONY: generate clean
|
||||
.PHONY: generate check_doc clean
|
||||
all: generate
|
||||
|
||||
generate: vim.vim
|
||||
generate: $(TARGET)
|
||||
|
||||
vim.vim: vim.vim.rc update_date.vim
|
||||
@echo "Generating vim.vim ..."
|
||||
@cp -f vim.vim.rc ../vim.vim
|
||||
@$(RUN_VIMPROG) -S update_date.vim
|
||||
check_doc: CHECK_HELP_DOC := 1
|
||||
check_doc: clean $(TARGET)
|
||||
|
||||
clean:
|
||||
rm -f vim.vim.rc $(TARGET)
|
||||
rm -f sanity_check.err generator.err
|
||||
|
||||
$(TARGET): vim.vim.rc update_date.vim
|
||||
@echo "Generating $(TARGET) ..."
|
||||
@cp -f vim.vim.rc $(TARGET)
|
||||
@$(RUN_VIMPROG) -S update_date.vim $(TARGET)
|
||||
@echo "done."
|
||||
|
||||
vim.vim.rc: gen_syntax_vim.vim vim.vim.base $(SRC)
|
||||
@echo "Generating vim.vim.rc ..."
|
||||
@rm -f sanity_check.err generator.err
|
||||
@$(RUN_VIMPROG) -S gen_syntax_vim.vim
|
||||
@$(RUN_VIMPROG) -S gen_syntax_vim.vim $(TARGET)
|
||||
@if test -f sanity_check.err ; then \
|
||||
echo ; \
|
||||
echo "Sanity errors:" ; \
|
||||
cat sanity_check.err ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@if test -f generator.err ; then \
|
||||
echo ; \
|
||||
echo "Generator errors:" ; \
|
||||
cat generator.err ; \
|
||||
echo ; \
|
||||
fi
|
||||
@if test -f sanity_check.err || test -f generator.err ; then \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@echo "done."
|
||||
|
||||
clean:
|
||||
rm -f vim.vim.rc
|
||||
rm -f vim.vim
|
||||
rm -f sanity_check.err generator.err
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
" Vim syntax file generator
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi (h_east)
|
||||
" Last Change: 2024 Oct 04
|
||||
" Last Change: 2024 Dec 29
|
||||
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
language C
|
||||
let s:log_write_dir = getcwd() . '/'
|
||||
|
||||
function! s:parse_vim_option(opt, missing_opt, term_out_code)
|
||||
function s:parse_vim_option(opt, missing_opt, term_out_code)
|
||||
try
|
||||
let file_name = $VIM_SRCDIR . '/optiondefs.h'
|
||||
let item = {}
|
||||
@@ -65,7 +66,7 @@ function! s:parse_vim_option(opt, missing_opt, term_out_code)
|
||||
endtry
|
||||
endfunc
|
||||
|
||||
function! s:append_syn_vimopt(lnum, str_info, opt_list, prefix, bool_only)
|
||||
function s:append_syn_vimopt(lnum, str_info, opt_list, prefix, bool_only)
|
||||
let ret_lnum = a:lnum
|
||||
let str = a:str_info.start
|
||||
|
||||
@@ -96,7 +97,7 @@ function! s:append_syn_vimopt(lnum, str_info, opt_list, prefix, bool_only)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:parse_vim_command(cmd)
|
||||
function s:parse_vim_command(cmd)
|
||||
try
|
||||
let file_name = $VIM_SRCDIR . '/ex_cmds.h'
|
||||
let item = {}
|
||||
@@ -131,41 +132,25 @@ function! s:parse_vim_command(cmd)
|
||||
if my > 0
|
||||
let omit_idx = (key =~# '\l') ? 1 : 0
|
||||
for idx in range(1, strlen(lcmd[key][my]))
|
||||
let spec=0
|
||||
if lcmd[key][my] ==# 'ex'
|
||||
let spec=1
|
||||
echo "cmd name:" lcmd[key][my]
|
||||
endif
|
||||
let matched = 0
|
||||
for pre in range(my - 1, 0, -1)
|
||||
if spec
|
||||
echo "pre:" pre ", my:" my
|
||||
endif
|
||||
if pre == my
|
||||
if spec
|
||||
echo "continue"
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
" for weird abbreviations for delete. (See :help :d)
|
||||
" And k{char} is used as mark. (See :help :k)
|
||||
" Avoiding conflicts shortened command and special commands
|
||||
" - weird abbreviations for delete. (See :help :d)
|
||||
" - k{char} is used as mark. (See :help :k)
|
||||
" - :s commsnds repeat. (See :help :substitute-repeat)
|
||||
if lcmd[key][my][:idx] ==# lcmd[key][pre][:idx] ||
|
||||
\ (key ==# 'd' &&
|
||||
\ lcmd[key][my][:idx] =~# '^d\%[elete][lp]$')
|
||||
\ || (key ==# 'k' &&
|
||||
\ lcmd[key][my][:idx] =~# '^k[a-zA-Z]$')
|
||||
\ || (key ==# 's' &&
|
||||
\ lcmd[key][my][:idx] =~# '^s\%(c\%([^sr][^ip]\=\)\=$\|g\|i[^mlg]\=$\|I\|r[^e]\=$\)')
|
||||
let matched = 1
|
||||
let omit_idx = idx + 1
|
||||
if spec
|
||||
echo "match. break. omit_idx:" omit_idx
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
if !matched
|
||||
if spec
|
||||
echo "not match. break"
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
@@ -185,46 +170,6 @@ function! s:parse_vim_command(cmd)
|
||||
endfor
|
||||
endfor
|
||||
|
||||
" Check exists in the help. (Usually it does not check...)
|
||||
let doc_dir = './vim/runtime/doc'
|
||||
if 0
|
||||
for vimcmd in a:cmd
|
||||
let find_ptn = '^|:' . vimcmd.name . '|\s\+'
|
||||
exec "silent! vimgrep /" . find_ptn . "/gj " . doc_dir . "/index.txt"
|
||||
let li = getqflist()
|
||||
if empty(li)
|
||||
call s:err_sanity(printf('Ex-cmd `:%s` is not found in doc/index.txt.', vimcmd.name))
|
||||
elseif len(li) > 1
|
||||
call s:err_sanity(printf('Ex-cmd `:%s` is duplicated in doc/index.txt.', vimcmd.name))
|
||||
else
|
||||
let doc_syn_str = substitute(li[0].text, find_ptn . '\(\S\+\)\s\+.*', '\1', '')
|
||||
if doc_syn_str ==# vimcmd.syn_str
|
||||
call s:err_sanity(printf('Ex-cmd `%s` short name differ in doc/index.txt. code: `%s`, document: `%s`', vimcmd.name, vimcmd.syn_str, doc_syn_str))
|
||||
endif
|
||||
endif
|
||||
|
||||
if 1
|
||||
for i in range(2)
|
||||
if i || vimcmd.omit_idx >= 0
|
||||
if !i
|
||||
let base_ptn = vimcmd.name[:vimcmd.omit_idx]
|
||||
else
|
||||
let base_ptn = vimcmd.name
|
||||
endif
|
||||
let find_ptn = '\*:' . base_ptn . '\*'
|
||||
exec "silent! vimgrep /" . find_ptn . "/gj " . doc_dir . "/*.txt"
|
||||
let li = getqflist()
|
||||
if empty(li)
|
||||
call s:err_sanity(printf('Ex-cmd `:%s`%s is not found in the help tag.', base_ptn, !i ? ' (short name of `:' . vimcmd.name . '`)' : ''))
|
||||
elseif len(li) > 1
|
||||
call s:err_sanity(printf('Ex-cmd `:%s`%s is duplicated in the help tag.', base_ptn, !i ? ' (short name of `:' . vimcmd.name . '`)' : ''))
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
|
||||
" Add weird abbreviations for delete. (See :help :d)
|
||||
for i in ['l', 'p']
|
||||
let str = 'delete'
|
||||
@@ -249,6 +194,37 @@ function! s:parse_vim_command(cmd)
|
||||
let item.syn_str = item.name
|
||||
call add(a:cmd, copy(item))
|
||||
|
||||
let no_shorten_in_vim9 =<< trim EOL
|
||||
final
|
||||
def
|
||||
enddef
|
||||
class
|
||||
endclass
|
||||
enum
|
||||
endenum
|
||||
interface
|
||||
endinterface
|
||||
abstract
|
||||
public
|
||||
static
|
||||
this
|
||||
var
|
||||
type
|
||||
EOL
|
||||
|
||||
call map(a:cmd, {_, v ->
|
||||
\ index(no_shorten_in_vim9, v.name) != -1 ?
|
||||
\ extend(copy(v), {'omit_idx': -1, 'syn_str': v.name}) :
|
||||
"\ ":fina" means ":finally" in legacy script, for backwards compatibility.
|
||||
"\ (From Vim source code find_ex_command() in ex_docmd.c)
|
||||
\ v.name ==# 'finally' ?
|
||||
\ extend(copy(v), {'omit_idx': 3, 'syn_str': 'fina[lly]'}) :
|
||||
"\ :ho must not be recognized as :horizontal.
|
||||
\ v.name ==# 'horizontal' ?
|
||||
\ extend(copy(v), {'omit_idx': 2, 'syn_str': 'hor[izontal]'}) :
|
||||
\ v
|
||||
\ })
|
||||
|
||||
if empty(a:cmd)
|
||||
throw 'cmd is empty'
|
||||
endif
|
||||
@@ -258,7 +234,7 @@ function! s:parse_vim_command(cmd)
|
||||
endtry
|
||||
endfunc
|
||||
|
||||
function! s:get_vim_command_type(cmd_name)
|
||||
function s:get_vim_command_type(cmd_name)
|
||||
" Return value:
|
||||
" 0: normal
|
||||
" 1: (Reserved)
|
||||
@@ -278,6 +254,7 @@ function! s:get_vim_command_type(cmd_name)
|
||||
Next
|
||||
Print
|
||||
X
|
||||
abstract
|
||||
append
|
||||
augroup
|
||||
augroup
|
||||
@@ -364,7 +341,7 @@ function! s:get_vim_command_type(cmd_name)
|
||||
return ret
|
||||
endfunc
|
||||
|
||||
function! s:append_syn_vimcmd(lnum, str_info, cmd_list, type)
|
||||
function s:append_syn_vimcmd(lnum, str_info, cmd_list, type)
|
||||
let ret_lnum = a:lnum
|
||||
let str = a:str_info.start
|
||||
|
||||
@@ -392,7 +369,7 @@ function! s:append_syn_vimcmd(lnum, str_info, cmd_list, type)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:parse_vim_event(li)
|
||||
function s:parse_vim_event(li)
|
||||
try
|
||||
let file_name = $VIM_SRCDIR . '/autocmd.c'
|
||||
let item = {}
|
||||
@@ -424,7 +401,7 @@ function! s:parse_vim_event(li)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:parse_vim_function(li)
|
||||
function s:parse_vim_function(li)
|
||||
try
|
||||
let file_name = $VIM_SRCDIR . '/evalfunc.c'
|
||||
let item = {}
|
||||
@@ -459,7 +436,7 @@ function! s:parse_vim_function(li)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:parse_vim_hlgroup(li)
|
||||
function s:parse_vim_hlgroup(li)
|
||||
try
|
||||
let file_name = $VIM_SRCDIR . '/highlight.c'
|
||||
let item = {}
|
||||
@@ -533,7 +510,7 @@ function! s:parse_vim_hlgroup(li)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:parse_vim_complete_name(li)
|
||||
function s:parse_vim_complete_name(li)
|
||||
try
|
||||
let file_name = $VIM_SRCDIR . '/usercmd.c'
|
||||
let item = {}
|
||||
@@ -566,7 +543,7 @@ function! s:parse_vim_complete_name(li)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:parse_vim_addr_name(li)
|
||||
function s:parse_vim_addr_name(li)
|
||||
try
|
||||
let file_name = $VIM_SRCDIR . '/usercmd.c'
|
||||
let item = {}
|
||||
@@ -604,7 +581,7 @@ function! s:parse_vim_addr_name(li)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:append_syn_any(lnum, str_info, li)
|
||||
function s:append_syn_any(lnum, str_info, li)
|
||||
let ret_lnum = a:lnum
|
||||
let str = a:str_info.start
|
||||
|
||||
@@ -629,7 +606,8 @@ function! s:append_syn_any(lnum, str_info, li)
|
||||
return ret_lnum
|
||||
endfunc
|
||||
|
||||
function! s:update_syntax_vim_file(vim_info)
|
||||
" ------------------------------------------------------------------------------
|
||||
function s:update_syntax_vim_file(vim_info)
|
||||
try
|
||||
function! s:search_and_check(kword, base_fname, str_info)
|
||||
let a:str_info.start = ''
|
||||
@@ -746,15 +724,121 @@ function! s:update_syntax_vim_file(vim_info)
|
||||
endfunc
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
function! s:err_gen(arg)
|
||||
call s:write_error(a:arg, 'generator.err')
|
||||
function s:check_help_doc(vim_info)
|
||||
try
|
||||
new
|
||||
let cwd_save = getcwd()
|
||||
cd ../../../runtime/doc
|
||||
|
||||
let exclude_cmd =<< trim END
|
||||
deletel
|
||||
deletep
|
||||
a
|
||||
i
|
||||
END
|
||||
|
||||
let nocheck_shorten_excmd_list =<< trim END
|
||||
bufdo
|
||||
cfdo
|
||||
cstag
|
||||
debug
|
||||
defer
|
||||
eval
|
||||
intro
|
||||
lfdo
|
||||
luado
|
||||
luafile
|
||||
ownsyntax
|
||||
py3do
|
||||
pydo
|
||||
pyxdo
|
||||
pyxfile
|
||||
rundo
|
||||
smile
|
||||
syntime
|
||||
windo
|
||||
wundo
|
||||
END
|
||||
|
||||
" Check the Ex-command is listed in index.txt
|
||||
split index.txt
|
||||
for vimcmd in a:vim_info.cmd
|
||||
if index(exclude_cmd, vimcmd.name) != -1
|
||||
continue
|
||||
endif
|
||||
norm! gg
|
||||
let find_ptn = '^|:' . vimcmd.name . '|\s\+'
|
||||
let lnum = search(find_ptn, 'eW')
|
||||
if lnum == 0
|
||||
call s:err_sanity($'Ex-cmd ":{vimcmd.name}" is not found in index.txt.')
|
||||
elseif search(find_ptn, 'eW') > 0
|
||||
call s:err_sanity($'Ex-cmd ":{vimcmd.name}" is duplicated in index.txt.')
|
||||
else
|
||||
let doc_syn_str = substitute(getline(lnum), find_ptn . ':\(\S\+\)\s\+.*', '\1', '')
|
||||
if doc_syn_str !=# vimcmd.syn_str
|
||||
call s:err_sanity($'Ex-cmd "{vimcmd.name}" short name differ in index.txt. expect: "{vimcmd.syn_str}", but: "{doc_syn_str}"')
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
quit!
|
||||
|
||||
" Check the existence of the help tag for Ex-command.
|
||||
set wildignore=version*.txt,todo.txt,usr_*.txt
|
||||
for vimcmd in a:vim_info.cmd
|
||||
if index(exclude_cmd, vimcmd.name) != -1
|
||||
continue
|
||||
endif
|
||||
let find_ptn = '\s\*:' . vimcmd.name . '\*\_s'
|
||||
exec "silent! vimgrep /" . find_ptn . "/gj *.txt"
|
||||
let qfl = getqflist()
|
||||
if empty(qfl)
|
||||
call s:err_sanity($'Help tag for Ex-cmd ":{vimcmd.name}" not found.')
|
||||
elseif len(qfl) > 1
|
||||
call s:err_sanity($'Help tag for Ex-cmd ":{vimcmd.name}" is duplicated.')
|
||||
elseif index(nocheck_shorten_excmd_list, vimcmd.name) ==# -1
|
||||
" Check the existence of the shorten Ex-command notation.
|
||||
cc
|
||||
norm! 2k
|
||||
let end_lnum = qfl[0].lnum + 10
|
||||
let find_ptn = '^:.*\<' . vimcmd.syn_str->escape('[]')
|
||||
let lnum = search(find_ptn, 'W', end_lnum)
|
||||
if lnum == 0
|
||||
if vimcmd.omit_idx != -1
|
||||
" Check the existence of the shorten help tag for Ex-command.
|
||||
cc
|
||||
norm! k
|
||||
let end_lnum = qfl[0].lnum + 10
|
||||
let find_ptn = '\s\*:' . vimcmd.name[:vimcmd.omit_idx] . '\*\_s'
|
||||
let lnum = search(find_ptn, 'W', end_lnum)
|
||||
else
|
||||
let lnum = 1
|
||||
endif
|
||||
if lnum == 0
|
||||
call s:err_sanity($'Shorten help tag "{vimcmd.name[:vimcmd.omit_idx]}" for Ex-cmd "{vimcmd.name}" not found.')
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
catch /.*/
|
||||
call s:err_gen('')
|
||||
throw 'exit'
|
||||
finally
|
||||
call s:err_gen('Ex-cmd documentation consistency check completed.')
|
||||
exec 'cd ' . cwd_save
|
||||
set wildignore&
|
||||
endtry
|
||||
endfunc
|
||||
|
||||
function! s:err_sanity(arg)
|
||||
call s:write_error(a:arg, 'sanity_check.err')
|
||||
" ------------------------------------------------------------------------------
|
||||
function s:err_gen(arg)
|
||||
call s:write_error(a:arg, s:log_write_dir .. 'generator.err')
|
||||
endfunc
|
||||
|
||||
function! s:write_error(arg, fname)
|
||||
function s:err_sanity(arg)
|
||||
call s:write_error(a:arg, s:log_write_dir .. 'sanity_check.err')
|
||||
endfunc
|
||||
|
||||
function s:write_error(arg, fname)
|
||||
let li = []
|
||||
if !empty(v:throwpoint)
|
||||
call add(li, v:throwpoint)
|
||||
@@ -791,16 +875,21 @@ try
|
||||
let s:vim_info.addr_name = []
|
||||
|
||||
set lazyredraw
|
||||
silent call s:parse_vim_option(s:vim_info.opt, s:vim_info.missing_opt,
|
||||
\ s:vim_info.term_out_code)
|
||||
silent call s:parse_vim_command(s:vim_info.cmd)
|
||||
silent call s:parse_vim_event(s:vim_info.event)
|
||||
silent call s:parse_vim_function(s:vim_info.func)
|
||||
silent call s:parse_vim_hlgroup(s:vim_info.hlgroup)
|
||||
silent call s:parse_vim_complete_name(s:vim_info.compl_name)
|
||||
silent call s:parse_vim_addr_name(s:vim_info.addr_name)
|
||||
if !$CHECK_HELP_DOC
|
||||
silent call s:parse_vim_option(s:vim_info.opt, s:vim_info.missing_opt,
|
||||
\ s:vim_info.term_out_code)
|
||||
silent call s:parse_vim_command(s:vim_info.cmd)
|
||||
silent call s:parse_vim_event(s:vim_info.event)
|
||||
silent call s:parse_vim_function(s:vim_info.func)
|
||||
silent call s:parse_vim_hlgroup(s:vim_info.hlgroup)
|
||||
silent call s:parse_vim_complete_name(s:vim_info.compl_name)
|
||||
silent call s:parse_vim_addr_name(s:vim_info.addr_name)
|
||||
|
||||
call s:update_syntax_vim_file(s:vim_info)
|
||||
call s:update_syntax_vim_file(s:vim_info)
|
||||
else
|
||||
silent call s:parse_vim_command(s:vim_info.cmd)
|
||||
silent call s:check_help_doc(s:vim_info)
|
||||
endif
|
||||
set nolazyredraw
|
||||
|
||||
finally
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
" '" Last Change: '
|
||||
"
|
||||
language C
|
||||
silent new ../vim.vim
|
||||
normal gg
|
||||
let pat = '^"\s*Last\s*Change:\s\+'
|
||||
let lnum = search(pat, 'We', 10)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
|
||||
" Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2024 Oct 08
|
||||
" Last Change: 2025 Jan 09
|
||||
" Former Maintainer: Charles E. Campbell
|
||||
|
||||
" DO NOT CHANGE DIRECTLY.
|
||||
@@ -26,7 +26,7 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
|
||||
syn cluster vimCommentGroup contains=vimTodo,@Spell
|
||||
|
||||
" regular vim commands {{{2
|
||||
" GEN_SYN_VIM: vimCommand normal, START_STR='syn keyword vimCommand contained', END_STR=''
|
||||
" GEN_SYN_VIM: vimCommand normal, START_STR='syn keyword vimCommand contained', END_STR='nextgroup=vimBang'
|
||||
|
||||
" Lower priority for _new_ to distinguish constructors from the command.
|
||||
syn match vimCommand contained "\<new\>(\@!"
|
||||
@@ -203,9 +203,9 @@ syn case match
|
||||
|
||||
" All vimCommands are contained by vimIsCommand. {{{2
|
||||
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
|
||||
syn cluster vim9CmdList contains=vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
||||
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
||||
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
||||
syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand
|
||||
syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" nextgroup=vimBang contains=vimCommand
|
||||
syn match vimBang contained "!"
|
||||
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
|
||||
syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
|
||||
@@ -214,7 +214,6 @@ syn match vimVar "\s\zs&t_\S[a-zA-Z0-9]\>"
|
||||
syn match vimVar "\s\zs&t_k;"
|
||||
syn match vimFBVar contained "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
|
||||
syn keyword vimCommand contained in
|
||||
syn match vimBang contained "!"
|
||||
|
||||
syn cluster vimExprList contains=vimEnvvar,vimFunc,vimNumber,vimOper,vimOperParen,vimLetRegister,vimString,vimVar,@vim9ExprList
|
||||
syn cluster vim9ExprList contains=vim9Boolean,vim9Null
|
||||
@@ -282,7 +281,8 @@ syn keyword vimAugroupKey contained aug[roup] skipwhite nextgroup=vimAugroupBan
|
||||
" Operators: {{{2
|
||||
" =========
|
||||
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,@vimContinue,vim9Comment,vimVar,vimBoolean,vimNull
|
||||
syn match vimOper "||\|&&\|[-+*/%.!]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\a\@<!!" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+*/%.]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\|!\~#\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
|
||||
@@ -316,8 +316,8 @@ syn match vimFuncSID contained "\<[sg]:"
|
||||
syn keyword vimFuncKey contained fu[nction]
|
||||
syn keyword vimDefKey contained def
|
||||
|
||||
syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,@vimContinue
|
||||
syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals
|
||||
syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,vimOperParen,@vimContinue
|
||||
syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals,vimOperParen
|
||||
syn match vimFuncParam contained "\<\h\w*\>\|\.\.\." skipwhite nextgroup=vimFuncParamEquals
|
||||
syn match vimDefParam contained "\<\h\w*\>" skipwhite nextgroup=vimParamType,vimFuncParamEquals
|
||||
|
||||
@@ -558,19 +558,21 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\
|
||||
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
|
||||
syn match vimNotPatSep contained "\\\\"
|
||||
syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
|
||||
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ contains=@vimStringGroup extend
|
||||
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+ extend
|
||||
syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z>\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ contains=@vimStringGroup extend
|
||||
syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z>\\@]'+lc=1 end=+'+ contains=vimQuoteEscape extend
|
||||
"syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup " see tst45.vim
|
||||
syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont
|
||||
syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
|
||||
|
||||
syn match vimEscape contained "\\."
|
||||
" syn match vimEscape contained +\\[befnrt\"]+
|
||||
syn match vimEscape contained "\\\o\{1,3}\|\\[xX]\x\{1,2}\|\\u\x\{1,4}\|\\U\x\{1,8}"
|
||||
syn match vimEscape contained "\\<" contains=vimNotation
|
||||
syn match vimEscape contained "\\<\*[^>]*>\=>"
|
||||
syn match vimQuoteEscape contained "''"
|
||||
|
||||
syn region vimString oneline start=+$'+ skip=+''+ end=+'+ contains=@vimStringInterpolation extend
|
||||
syn region vimString oneline start=+$"+ end=+"+ contains=@vimStringGroup,@vimStringInterpolation extend
|
||||
syn region vimString oneline matchgroup=vimString start=+$'+ skip=+''+ end=+'+ contains=vimQuoteEscape,@vimStringInterpolation extend
|
||||
syn region vimString oneline matchgroup=vimString start=+$"+ end=+"+ contains=@vimStringGroup,@vimStringInterpolation extend
|
||||
syn region vimStringInterpolationExpr oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList
|
||||
syn match vimStringInterpolationBrace contained "{{"
|
||||
syn match vimStringInterpolationBrace contained "}}"
|
||||
@@ -681,10 +683,12 @@ endif
|
||||
|
||||
" Autocmd: {{{2
|
||||
" =======
|
||||
syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
|
||||
syn match vimAutoCmdBang contained "\a\@1<=!" skipwhite nextgroup=vimAutoEventList
|
||||
syn match vimAutoEventList contained "\%(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
|
||||
syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList
|
||||
syn match vimAutoCmdSfxList contained "\S*" skipwhite nextgroup=vimAutoCmdMod,vimAutoCmdBlock
|
||||
syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
|
||||
syn keyword vimAutoCmd au[tocmd] skipwhite nextgroup=vimAutoCmdBang,vimAutoEventList
|
||||
syn keyword vimAutoCmd do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
|
||||
syn match vimAutoCmdMod "\(++\)\=\(once\|nested\)" skipwhite nextgroup=vimAutoCmdBlock
|
||||
syn region vimAutoCmdBlock contained matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList
|
||||
|
||||
@@ -1269,6 +1273,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimAugroupError vimError
|
||||
hi def link vimAugroupKey vimCommand
|
||||
hi def link vimAutoCmd vimCommand
|
||||
hi def link vimAutoCmdBang vimBang
|
||||
hi def link vimAutoEvent Type
|
||||
hi def link vimAutoCmdMod Special
|
||||
hi def link vimBang vimOper
|
||||
@@ -1389,6 +1394,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimPattern Type
|
||||
hi def link vimPlainMark vimMark
|
||||
hi def link vimPlainRegister vimRegister
|
||||
hi def link vimQuoteEscape vimEscape
|
||||
hi def link vimRegister SpecialChar
|
||||
hi def link vimScriptDelim Comment
|
||||
hi def link vimSearchDelim Statement
|
||||
|
||||
90
runtime/syntax/graphql.vim
Normal file
90
runtime/syntax/graphql.vim
Normal file
@@ -0,0 +1,90 @@
|
||||
" Vim syntax file
|
||||
" Language: graphql
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
" Filenames: *.graphql *.graphqls *.gql
|
||||
" URL: https://github.com/jparise/vim-graphql
|
||||
" License: MIT <https://opensource.org/license/mit>
|
||||
" Last Change: 2024 Dec 21
|
||||
|
||||
if !exists('main_syntax')
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
let main_syntax = 'graphql'
|
||||
endif
|
||||
|
||||
syn case match
|
||||
|
||||
syn match graphqlComment "#.*$" contains=@Spell
|
||||
|
||||
syn match graphqlOperator "=" display
|
||||
syn match graphqlOperator "!" display
|
||||
syn match graphqlOperator "|" display
|
||||
syn match graphqlOperator "&" display
|
||||
syn match graphqlOperator "\M..." display
|
||||
|
||||
syn keyword graphqlBoolean true false
|
||||
syn keyword graphqlNull null
|
||||
syn match graphqlNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>" display
|
||||
syn region graphqlString start=+"+ skip=+\\\\\|\\"+ end=+"\|$+
|
||||
syn region graphqlString start=+"""+ skip=+\\"""+ end=+"""+
|
||||
|
||||
syn keyword graphqlKeyword repeatable nextgroup=graphqlKeyword skipwhite
|
||||
syn keyword graphqlKeyword on nextgroup=graphqlType,graphqlDirectiveLocation skipwhite
|
||||
|
||||
syn keyword graphqlStructure enum scalar type union nextgroup=graphqlType skipwhite
|
||||
syn keyword graphqlStructure input interface subscription nextgroup=graphqlType skipwhite
|
||||
syn keyword graphqlStructure implements nextgroup=graphqlType skipwhite
|
||||
syn keyword graphqlStructure query mutation fragment nextgroup=graphqlName skipwhite
|
||||
syn keyword graphqlStructure directive nextgroup=graphqlDirective skipwhite
|
||||
syn keyword graphqlStructure extend nextgroup=graphqlStructure skipwhite
|
||||
syn keyword graphqlStructure schema nextgroup=graphqlFold skipwhite
|
||||
|
||||
syn match graphqlDirective "\<@\h\w*\>" display
|
||||
syn match graphqlVariable "\<\$\h\w*\>" display
|
||||
syn match graphqlName "\<\h\w*\>" display
|
||||
syn match graphqlType "\<_*\u\w*\>" display
|
||||
|
||||
" https://spec.graphql.org/October2021/#ExecutableDirectiveLocation
|
||||
syn keyword graphqlDirectiveLocation QUERY MUTATION SUBSCRIPTION FIELD
|
||||
syn keyword graphqlDirectiveLocation FRAGMENT_DEFINITION FRAGMENT_SPREAD
|
||||
syn keyword graphqlDirectiveLocation INLINE_FRAGMENT VARIABLE_DEFINITION
|
||||
" https://spec.graphql.org/October2021/#TypeSystemDirectiveLocation
|
||||
syn keyword graphqlDirectiveLocation SCHEMA SCALAR OBJECT FIELD_DEFINITION
|
||||
syn keyword graphqlDirectiveLocation ARGUMENT_DEFINITION INTERFACE UNION
|
||||
syn keyword graphqlDirectiveLocation ENUM ENUM_VALUE INPUT_OBJECT
|
||||
syn keyword graphqlDirectiveLocation INPUT_FIELD_DEFINITION
|
||||
|
||||
syn keyword graphqlMetaFields __schema __type __typename
|
||||
|
||||
syn region graphqlFold matchgroup=graphqlBraces start="{" end="}" transparent fold contains=ALLBUT,graphqlStructure
|
||||
syn region graphqlList matchgroup=graphqlBraces start="\[" end="]" transparent contains=ALLBUT,graphqlDirective,graphqlStructure
|
||||
|
||||
if main_syntax ==# 'graphql'
|
||||
syn sync minlines=500
|
||||
endif
|
||||
|
||||
hi def link graphqlComment Comment
|
||||
hi def link graphqlOperator Operator
|
||||
|
||||
hi def link graphqlBraces Delimiter
|
||||
|
||||
hi def link graphqlBoolean Boolean
|
||||
hi def link graphqlNull Keyword
|
||||
hi def link graphqlNumber Number
|
||||
hi def link graphqlString String
|
||||
|
||||
hi def link graphqlDirective PreProc
|
||||
hi def link graphqlDirectiveLocation Special
|
||||
hi def link graphqlName Identifier
|
||||
hi def link graphqlMetaFields Special
|
||||
hi def link graphqlKeyword Keyword
|
||||
hi def link graphqlStructure Structure
|
||||
hi def link graphqlType Type
|
||||
hi def link graphqlVariable Identifier
|
||||
|
||||
let b:current_syntax = 'graphql'
|
||||
|
||||
if main_syntax ==# 'graphql'
|
||||
unlet main_syntax
|
||||
endif
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Oct 16
|
||||
" Last Change: 2024 Dec 25
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
@@ -12,14 +12,36 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if !exists('g:help_example_languages')
|
||||
let g:help_example_languages = #{ vim: 'vim' }
|
||||
endif
|
||||
|
||||
syn match helpHeadline "^[A-Z.][-A-Z0-9 .,()_']*?\=\ze\(\s\+\*\|$\)"
|
||||
syn match helpSectionDelim "^===.*===$"
|
||||
syn match helpSectionDelim "^---.*--$"
|
||||
|
||||
if has("conceal")
|
||||
syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<" concealends
|
||||
else
|
||||
syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
|
||||
syn region helpExample matchgroup=helpIgnore
|
||||
\ start="\%(^\| \)>[a-z0-9]*$" end="^[^ \t]"me=e-1 end="^<" concealends
|
||||
else
|
||||
syn region helpExample matchgroup=helpIgnore
|
||||
\ start="\%(^\| \)>[a-z0-9]*$" end="^[^ \t]"me=e-1 end="^<"
|
||||
endif
|
||||
|
||||
for [s:lang, s:syntax] in g:help_example_languages->items()
|
||||
unlet! b:current_syntax
|
||||
" silent! to prevent E403
|
||||
execute 'silent! syn include' $'@helpExampleHighlight_{s:lang}'
|
||||
\ $'syntax/{s:syntax}.vim'
|
||||
|
||||
execute $'syn region helpExampleHighlight_{s:lang} matchgroup=helpIgnore'
|
||||
\ $'start=/\%(^\| \)>{s:lang}$/'
|
||||
\ 'end=/^[^ \t]/me=e-1 end=/^</'
|
||||
\ (has("conceal") ? 'concealends' : '')
|
||||
\ $'contains=@helpExampleHighlight_{s:lang} keepend'
|
||||
endfor
|
||||
unlet! s:lang s:syntax
|
||||
|
||||
if has("ebcdic")
|
||||
syn match helpHyperTextJump "\\\@<!|[^"*|]\+|" contains=helpBar
|
||||
syn match helpHyperTextEntry "\*[^"*|]\+\*\s"he=e-1 contains=helpStar
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com>
|
||||
" Former Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
||||
" Repository: https://github.com/zzzyxwvut/java-vim.git
|
||||
" Last Change: 2024 Oct 10
|
||||
" Last Change: 2025 Jan 02
|
||||
|
||||
" Please check ":help java.vim" for comments on some of the options
|
||||
" available.
|
||||
@@ -391,18 +391,32 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:mai
|
||||
if s:with_markdown
|
||||
try
|
||||
syntax include @javaMarkdown syntax/markdown.vim
|
||||
let s:ff.WithMarkdown = s:ff.LeftConstant
|
||||
|
||||
try
|
||||
syn clear markdownId markdownLineStart markdownH1 markdownH2 markdownHeadingRule markdownRule markdownCode markdownCodeBlock markdownIdDeclaration
|
||||
let s:ff.WithMarkdown = s:ff.LeftConstant
|
||||
catch /\<E28:/
|
||||
call s:ReportOnce(v:exception)
|
||||
let s:no_support = 1
|
||||
unlet! g:java_ignore_markdown
|
||||
let g:java_ignore_markdown = 28
|
||||
endtry
|
||||
catch /\<E48[45]:/
|
||||
call s:ReportOnce(v:exception)
|
||||
unlockvar s:with_markdown
|
||||
let s:with_markdown = 0
|
||||
lockvar s:with_markdown
|
||||
hi clear markdownCode
|
||||
hi clear markdownCodeBlock
|
||||
hi clear markdownCodeDelimiter
|
||||
hi clear markdownLinkDelimiter
|
||||
let s:no_support = 1
|
||||
finally
|
||||
unlet! b:current_syntax
|
||||
|
||||
if exists("s:no_support")
|
||||
unlet s:no_support
|
||||
unlockvar s:with_markdown
|
||||
let s:with_markdown = 0
|
||||
lockvar s:with_markdown
|
||||
hi clear markdownCode
|
||||
hi clear markdownCodeBlock
|
||||
hi clear markdownCodeDelimiter
|
||||
hi clear markdownLinkDelimiter
|
||||
endif
|
||||
endtry
|
||||
endif
|
||||
|
||||
@@ -422,7 +436,6 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:mai
|
||||
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.Peek('80', '') . '<!///\s*\%({@return\>\)\@=" matchgroup=javaMarkdownCommentTitle end="}\%(\s*\.*\)*" contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags,javaTitleSkipBlock'
|
||||
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.Peek('80', '') . '<!///\s*\%({@summary\>\)\@=" matchgroup=javaMarkdownCommentTitle end="}" contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags,javaTitleSkipBlock'
|
||||
|
||||
syn clear markdownId markdownLineStart markdownH1 markdownH2 markdownHeadingRule markdownRule markdownCode markdownCodeBlock markdownIdDeclaration
|
||||
" REDEFINE THE MARKDOWN ITEMS ANCHORED WITH "^", OBSERVING THE
|
||||
" DEFINITION ORDER.
|
||||
syn match markdownLineStart contained "^\s*///\s*[<@]\@!" contains=@markdownBlock,javaMarkdownCommentTitle,javaMarkdownCommentMask nextgroup=@markdownBlock,htmlSpecialChar
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
let b:current_syntax = 'jj'
|
||||
|
||||
syn match jjAdded "A .*" contained
|
||||
syn match jjRemoved "D .*" contained
|
||||
@@ -14,7 +13,12 @@ syn match jjChanged "M .*" contained
|
||||
|
||||
syn region jjComment start="^JJ: " end="$" contains=jjAdded,jjRemoved,jjChanged
|
||||
|
||||
syn include @jjCommitDiff syntax/diff.vim
|
||||
syn region jjCommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|@@\@!\|[^[:alnum:]\ +-]\S\@!\)\@=/ fold contains=@jjCommitDiff
|
||||
|
||||
hi def link jjComment Comment
|
||||
hi def link jjAdded Added
|
||||
hi def link jjRemoved Removed
|
||||
hi def link jjChanged Changed
|
||||
|
||||
let b:current_syntax = 'jjdescription'
|
||||
40
runtime/syntax/lnk.vim
Normal file
40
runtime/syntax/lnk.vim
Normal file
@@ -0,0 +1,40 @@
|
||||
" Vim syntax file
|
||||
" Language: TI linker command file
|
||||
" Document: https://downloads.ti.com/docs/esd/SPRUI03A/Content/SPRUI03A_HTML/linker_description.html
|
||||
" Document: https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2024 Dec 31
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! syntax/cmacro.vim
|
||||
|
||||
syn case ignore
|
||||
syn match lnkNumber "0x[0-9a-f]\+"
|
||||
" Linker command files are ASCII files that contain one or more of the following:
|
||||
" Input filenames, which specify object files, archive libraries, or other command files.
|
||||
" Linker options, which can be used in the command file in the same manner that they are used on the command line
|
||||
syn match lnkOption "^[-+][-_a-zA-Z#@]\+"
|
||||
syn match lnkOption "^--[^ \t$=`'"|);]\+"
|
||||
syn match lnkFile '[^ =]\+\%(\.\S\+\)\+\>'
|
||||
syn match lnkLibFile '[^ =]\+\.lib\>'
|
||||
" The MEMORY and SECTIONS linker directives. The MEMORY directive defines the target memory configuration (see Section 8.5.4). The SECTIONS directive controls how sections are built and allocated (see Section 8.5.5.)
|
||||
syn keyword lnkKeyword ADDRESS_MASK f LOAD ORIGIN START ALGORITHM FILL LOAD_END PAGE TABLE ALIGN GROUP LOAD_SIZE PALIGN TYPE ATTR HAMMING_MASK LOAD_START PARITY_MASK UNION BLOCK HIGH MEMORY RUN UNORDERED COMPRESSION INPUT_PAGE MIRRORING RUN_END VFILL COPY INPUT_RANGE NOINIT RUN_SIZE DSECT l NOLOAD RUN_START ECC LEN o SECTIONS END LENGTH ORG SIZE
|
||||
syn region lnkLibrary start=+<+ end=+>+
|
||||
syn match lnkAttrib '\<[RWXI]\+\>'
|
||||
syn match lnkSections '\<\.\k\+'
|
||||
" Assignment statements, which define and assign values to global symbols
|
||||
syn case match
|
||||
|
||||
hi def link lnkNumber Number
|
||||
hi def link lnkOption Special
|
||||
hi def link lnkKeyword Keyword
|
||||
hi def link lnkLibrary String
|
||||
hi def link lnkFile String
|
||||
hi def link lnkLibFile Special
|
||||
hi def link lnkAttrib Type
|
||||
hi def link lnkSections Macro
|
||||
|
||||
let b:current_syntax = "lnk"
|
||||
35
runtime/syntax/lnkmap.vim
Normal file
35
runtime/syntax/lnkmap.vim
Normal file
@@ -0,0 +1,35 @@
|
||||
" Vim syntax file
|
||||
" Language: TI Linker map
|
||||
" Document: https://downloads.ti.com/docs/esd/SPRUI03A/Content/SPRUI03A_HTML/linker_description.html
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2024 Dec 30
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn match lnkmapTime ">> .*$"
|
||||
syn region lnkmapHeadline start="^\*\+$" end="^\*\+$"
|
||||
syn match lnkmapHeadline "^[A-Z][-A-Z0-9 ']*\ze\%(:\|$\)"
|
||||
syn match lnkmapSectionDelim "^=\+$"
|
||||
syn match lnkmapTableDelim "\%(^\|\s\)\zs---*\ze\%($\|\s\)"
|
||||
syn match lnkmapNumber "\%(^\|\s\)\zs[0-9a-f]\+\ze\%($\|\s\)"
|
||||
syn match lnkmapSections '\<\.\k\+\>'
|
||||
syn match lnkmapFile '[^ =]\+\%(\.\S\+\)\+\>'
|
||||
syn match lnkmapLibFile '[^ =]\+\.lib\>'
|
||||
syn match lnkmapAttrib '\<[RWIX]\+\>'
|
||||
syn match lnkmapAttrib '\s\zs--HOLE--\ze\%\(\s\|$\)'
|
||||
syn keyword lnkmapAttrib UNINITIALIZED DESCT
|
||||
|
||||
|
||||
hi def link lnkmapTime Comment
|
||||
hi def link lnkmapHeadline Title
|
||||
hi def link lnkmapSectionDelim PreProc
|
||||
hi def link lnkmapTableDelim PreProc
|
||||
hi def link lnkmapNumber Number
|
||||
hi def link lnkmapSections Macro
|
||||
hi def link lnkmapFile String
|
||||
hi def link lnkmapLibFile Special
|
||||
hi def link lnkmapAttrib Type
|
||||
|
||||
let b:current_syntax = "lnkmap"
|
||||
@@ -4,6 +4,8 @@
|
||||
" Previous Maintainers: Charles E. Campbell
|
||||
" Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||
" Last Change: 2024 Mar 04 by Vim Project
|
||||
" 2024 Nov 03 by Aliaksei Budavei <0x000c70 AT gmail DOT com> (improved bracket expressions, #15941)
|
||||
" 2025 Jan 06 add $PS0 to bashSpecialVariables (#16394)
|
||||
" Version: 208
|
||||
" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||
" For options and settings, please use: :help ft-sh-syntax
|
||||
@@ -127,6 +129,50 @@ else
|
||||
com! -nargs=* ShFoldIfDoFor <args>
|
||||
endif
|
||||
|
||||
" Generate bracket expression items {{{1
|
||||
" =================================
|
||||
" Note that the following function can be invoked as many times as necessary
|
||||
" provided that these constraints hold for the passed dictionary argument:
|
||||
" - every time a unique group-name value is assigned to the "itemGroup" key;
|
||||
" - only ONCE either the "extraArgs" key is not entered or it is entered and
|
||||
" its value does not have "contained" among other optional arguments (":help
|
||||
" :syn-arguments").
|
||||
fun! s:GenerateBracketExpressionItems(dict) abort
|
||||
let itemGroup = a:dict.itemGroup
|
||||
let bracketGroup = a:dict.bracketGroup
|
||||
let invGroup = itemGroup . 'Inv'
|
||||
let skipLeftBracketGroup = itemGroup . 'SkipLeftBracket'
|
||||
let skipRightBracketGroup = itemGroup . 'SkipRightBracket'
|
||||
let extraArgs = has_key(a:dict, 'extraArgs') ? a:dict.extraArgs : ''
|
||||
|
||||
" Make the leading "[!^]" stand out in a NON-matching expression.
|
||||
exec 'syn match ' . invGroup . ' contained "\[\@<=[!^]"'
|
||||
|
||||
" Set up indirections for unbalanced-bracket highlighting.
|
||||
exec 'syn region ' . skipRightBracketGroup . ' contained matchgroup=' . bracketGroup . ' start="\[\%([!^]\=\\\=\]\)\@=" matchgroup=shCollSymb end="\[\.[^]]\{-}\][^]]\{-}\.\]" matchgroup=' . itemGroup . ' end="\]" contains=@shBracketExprList,shDoubleQuote,' . invGroup
|
||||
exec 'syn region ' . skipLeftBracketGroup . ' contained matchgroup=' . bracketGroup . ' start="\[\%([!^]\=\\\=\]\)\@=" skip="[!^]\=\\\=\]\%(\[[^]]\+\]\|[^]]\)\{-}\%(\[[:.=]\@!\)\@=" matchgroup=' . itemGroup . ' end="\[[:.=]\@!" contains=@shBracketExprList,shDoubleQuote,' . invGroup
|
||||
|
||||
" Look for a general matching expression.
|
||||
exec 'syn region ' . itemGroup . ' matchgroup=' . bracketGroup . ' start="\[\S\@=" end="\]" contains=@shBracketExprList,shDoubleQuote ' . extraArgs
|
||||
" Look for a general NON-matching expression.
|
||||
exec 'syn region ' . itemGroup . ' matchgroup=' . bracketGroup . ' start="\[[!^]\@=" end="\]" contains=@shBracketExprList,shDoubleQuote,' . invGroup . ' ' . extraArgs
|
||||
|
||||
" Accommodate unbalanced brackets in bracket expressions. The supported
|
||||
" syntax for a plain "]" can be: "[]ws]" and "[^]ws]"; or, "[ws[.xs]ys.]zs]"
|
||||
" and "[^ws[.xs]ys.]zs]"; see §9.3.5 RE Bracket Expression (in XBD).
|
||||
exec 'syn region ' . itemGroup . ' matchgroup=NONE start="\[[!^]\=\\\=\]" matchgroup=' . bracketGroup . ' end="\]" contains=@shBracketExprList,shDoubleQuote,' . skipRightBracketGroup . ' ' . extraArgs
|
||||
" Strive to handle "[]...[]" etc.
|
||||
exec 'syn region ' . itemGroup . ' matchgroup=NONE start="\[[!^]\=\\\=\]\%(\[[^]]\+\]\|[^]]\)\{-}\[[:.=]\@!" matchgroup=' . bracketGroup . ' end="\]" contains=@shBracketExprList,shDoubleQuote,' . skipLeftBracketGroup . ' ' . extraArgs
|
||||
|
||||
if !exists("g:skip_sh_syntax_inits")
|
||||
exec 'hi def link ' . skipLeftBracketGroup . ' ' . itemGroup
|
||||
exec 'hi def link ' . skipRightBracketGroup . ' ' . itemGroup
|
||||
exec 'hi def link ' . invGroup . ' Underlined'
|
||||
endif
|
||||
endfun
|
||||
|
||||
call s:GenerateBracketExpressionItems({'itemGroup': 'shBracketExpr', 'bracketGroup': 'shBracketExprDelim'})
|
||||
|
||||
" sh syntax is case sensitive {{{1
|
||||
syn case match
|
||||
|
||||
@@ -136,23 +182,24 @@ syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsa
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
syn cluster ErrorList add=shDTestError
|
||||
endif
|
||||
syn cluster shArithParenList contains=shArithmetic,shArithParen,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
|
||||
syn cluster shArithParenList contains=shArithmetic,shArithParen,shCaseEsac,shComment,shDeref,shDerefVarArray,shDo,shDerefSimple,shEcho,shEscape,shExpr,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
|
||||
syn cluster shArithList contains=@shArithParenList,shParenError
|
||||
syn cluster shBracketExprList contains=shCharClassOther,shCharClass,shCollSymb,shEqClass
|
||||
syn cluster shCaseEsacList contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
|
||||
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shComment,shDblBrace,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
syn cluster shCaseList add=shForPP,shDblParen
|
||||
endif
|
||||
syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||
syn cluster shCommandSubList contains=shAlias,shArithmetic,shBracketExpr,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
|
||||
" COMBAK: removing shEscape from shDblQuoteList fails ksh04:43 -- Jun 09, 2022: I don't see the problem with ksh04, so am reinstating shEscape
|
||||
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
|
||||
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
|
||||
syn cluster shDerefVarList contains=shDerefOffset,shDerefOp,shDerefVarArray,shDerefOpError
|
||||
syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
|
||||
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
|
||||
syn cluster shEchoList contains=shArithmetic,shBracketExpr,shCommandSub,shCommandSubBQ,shDerefVarArray,shSubshare,shValsub,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
|
||||
syn cluster shExprList1 contains=shBracketExpr,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
|
||||
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
|
||||
syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
|
||||
syn cluster shFunctionList contains=shBracketExpr,@shCommandSubList,shCaseEsac,shColon,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
syn cluster shFunctionList add=shRepeat,shDblBrace,shDblParen,shForPP
|
||||
syn cluster shDerefList add=shCommandSubList,shEchoDeref
|
||||
@@ -160,16 +207,16 @@ endif
|
||||
syn cluster shHereBeginList contains=@shCommandSubList
|
||||
syn cluster shHereList contains=shBeginHere,shHerePayload
|
||||
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
|
||||
syn cluster shIdList contains=shArithmetic,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
|
||||
syn cluster shIdList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDerefVarArray,shSubshare,shValsub,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
|
||||
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
|
||||
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shIf,shOption,shSet,shTest,shTestOpr,shTouch
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
syn cluster shLoopList add=shForPP,shDblParen
|
||||
endif
|
||||
syn cluster shPPSLeftList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shSubshare,shValsub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||
syn cluster shPPSLeftList contains=shAlias,shArithmetic,shBracketExpr,shCmdParenRegion,shCommandSub,shSubshare,shValsub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||
syn cluster shPPSRightList contains=shDeref,shDerefSimple,shEscape,shPosnParm
|
||||
syn cluster shSubShList contains=@shCommandSubList,shCommandSubBQ,shSubshare,shValsub,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
|
||||
syn cluster shTestList contains=shArithmetic,shCharClass,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
|
||||
syn cluster shSubShList contains=shBracketExpr,@shCommandSubList,shCommandSubBQ,shSubshare,shValsub,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
|
||||
syn cluster shTestList contains=shArithmetic,shBracketExpr,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
|
||||
syn cluster shNoZSList contains=shSpecialNoZS
|
||||
syn cluster shForList contains=shTestOpr,shNumber,shDerefSimple,shDeref,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shArithmetic
|
||||
|
||||
@@ -190,7 +237,7 @@ endif
|
||||
syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]'
|
||||
|
||||
" This must be after the strings, so that ... \" will be correct
|
||||
syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shExDoubleQuote,shDoubleQuote,shCharClass,shCtrlSeq
|
||||
syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shBracketExpr,shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shExDoubleQuote,shDoubleQuote,shCtrlSeq
|
||||
|
||||
" Alias: {{{1
|
||||
" =====
|
||||
@@ -240,7 +287,6 @@ syn match shRedir "\d<<-\="
|
||||
" ==========
|
||||
syn match shOperator "<<\|>>" contained
|
||||
syn match shOperator "[!&;|]" contained
|
||||
syn match shOperator "\[[[^:]\|\]]" contained
|
||||
syn match shOperator "[-=/*+%]\==" skipwhite nextgroup=shPattern
|
||||
syn match shPattern "\<\S\+\())\)\@=" contained contains=shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shDeref
|
||||
|
||||
@@ -251,9 +297,9 @@ syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"
|
||||
|
||||
" Tests: {{{1
|
||||
"=======
|
||||
syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
|
||||
syn region shExpr matchgroup=shRange start="\[\s\@=" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
|
||||
syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
|
||||
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' end="\ze['"]" contained contains=shDerefSimple,shDeref
|
||||
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' end="\ze['"]" contained contains=shBracketExpr,shDerefSimple,shDeref
|
||||
syn match shAstQuote contained '\*\ze"' nextgroup=shString
|
||||
syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
|
||||
syn match shTestOpr contained "<=\|>=\|!=\|==\|=\~\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
|
||||
@@ -262,13 +308,16 @@ syn region shTestDoubleQuote contained start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\
|
||||
syn match shTestSingleQuote contained '\\.' nextgroup=shTestSingleQuote
|
||||
syn match shTestSingleQuote contained "'[^']*'"
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\%(\\\\\)*\\$+ end="\]\]" contains=@shTestList,shAstQuote,shNoQuote,shComment
|
||||
syn region shDblBrace matchgroup=Delimiter start="\[\[\s\@=" skip=+\%(\\\\\)*\\$+ end="\]\]" contains=@shTestList,shAstQuote,shNoQuote,shComment
|
||||
syn region shDblParen matchgroup=Delimiter start="((" skip=+\%(\\\\\)*\\$+ end="))" contains=@shTestList,shComment
|
||||
endif
|
||||
|
||||
" Character Class In Range: {{{1
|
||||
" =========================
|
||||
syn match shCharClassOther contained "\[:\w\{-}:\]"
|
||||
syn match shCharClass contained "\[:\(backspace\|escape\|return\|xdigit\|alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|tab\):\]"
|
||||
syn match shCollSymb contained "\[\..\{-}\.\]"
|
||||
syn match shEqClass contained "\[=.\{-}=\]"
|
||||
|
||||
" Loops: do, if, while, until {{{1
|
||||
" ======
|
||||
@@ -298,7 +347,7 @@ syn match shComma contained ","
|
||||
" ====
|
||||
syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
|
||||
syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar
|
||||
syn match shCaseLabel contained skipwhite "\%(\\.\|[-a-zA-Z0-9_*.]\)\+" contains=shCharClass
|
||||
syn match shCaseLabel contained skipwhite "\%(\\.\|[-a-zA-Z0-9_*.]\)\+" contains=shBracketExpr
|
||||
if exists("b:is_bash")
|
||||
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end=";;&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
|
||||
elseif exists("b:is_kornshell")
|
||||
@@ -317,11 +366,9 @@ endif
|
||||
syn region shCaseSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained
|
||||
syn region shCaseDoubleQuote matchgroup=shQuote start=+"+ skip=+\\\\\|\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained
|
||||
syn region shCaseCommandSub start=+`+ skip=+\\\\\|\\.+ end=+`+ contains=@shCommandSubList skipwhite skipnl nextgroup=shCaseBar contained
|
||||
call s:GenerateBracketExpressionItems({'itemGroup': 'shCaseRange', 'bracketGroup': 'shBracketExprDelim', 'extraArgs': 'skip=+\\\\+ contained'})
|
||||
if exists("b:is_bash")
|
||||
syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+\]+ contained contains=shCharClass
|
||||
syn match shCharClass '\[:\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|word\|or\|xdigit\):\]' contained
|
||||
else
|
||||
syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+\]+ contained
|
||||
endif
|
||||
" Misc: {{{1
|
||||
"======
|
||||
@@ -358,7 +405,7 @@ syn region shCmdParenRegion matchgroup=shCmdSubRegion start="((\@!" skip='\\\\\|
|
||||
if exists("b:is_bash")
|
||||
syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
|
||||
syn cluster shCaseList add=bashAdminStatement,bashStatement
|
||||
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
|
||||
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS0 PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
|
||||
syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep head less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
|
||||
syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
|
||||
syn keyword bashStatement command compgen
|
||||
@@ -453,7 +500,18 @@ endif
|
||||
"=============
|
||||
syn match shSetOption "\s\zs[-+][a-zA-Z0-9]\+\>" contained
|
||||
syn match shVariable "\<\h\w*\ze=" nextgroup=shVarAssign
|
||||
syn match shVarAssign "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote,shVar
|
||||
if exists("b:is_bash")
|
||||
" The subscript form for array values, e.g. "foo=([2]=10 [4]=100)".
|
||||
syn region shArrayValue contained start="\[\%(..\{-}\]=\)\@=" end="\]=\@=" contains=@shArrayValueList nextgroup=shVarAssign
|
||||
syn cluster shArrayValueList contains=shArithmetic,shArithParen,shCommandSub,shDeref,shDerefSimple,shExpr,shNumber,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shSpecial,shParen,bashSpecialVariables,shParenError
|
||||
endif
|
||||
if exists("b:is_bash") || exists("b:is_kornshell")
|
||||
syn match shVariable "\<\h\w*\%(\[..\{-}\]\)\=\ze\%([|^&*/%+-]\|[<^]<\|[>^]>\)\==" contains=shDerefVarArray nextgroup=shVarAssign
|
||||
syn match shVarAssign contained "\%([|^&*/%+-]\|[<^]<\|[>^]>\)\==" nextgroup=shArrayRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote,shVar
|
||||
syn region shArrayRegion contained matchgroup=shShellVariables start="(" skip='\\\\\|\\.' end=")" contains=@shArrayValueList,shArrayValue,shComment
|
||||
else
|
||||
syn match shVarAssign contained "=" nextgroup=shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote,shVar
|
||||
endif
|
||||
syn match shVar contained "\h\w*"
|
||||
syn region shAtExpr contained start="@(" end=")" contains=@shIdList
|
||||
if exists("b:is_bash")
|
||||
@@ -571,8 +629,11 @@ syn match shDerefOp contained ":\=+" nextgroup=@shDerefPatternList
|
||||
if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
|
||||
syn match shDerefOp contained "#\{1,2}" nextgroup=@shDerefPatternList
|
||||
syn match shDerefOp contained "%\{1,2}" nextgroup=@shDerefPatternList
|
||||
syn match shDerefPattern contained "[^{}]\+" contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern
|
||||
syn match shDerefPattern contained "[^{}]\+" contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern skipnl
|
||||
syn region shDerefPattern contained start="{" end="}" contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern
|
||||
" Match parametric bracket expressions with a leading whitespace character.
|
||||
syn region shDerefPattern contained matchgroup=shBracketExprDelim start="\[" end="\]" contains=@shBracketExprList,shDoubleQuote nextgroup=shDerefPattern
|
||||
call s:GenerateBracketExpressionItems({'itemGroup': 'shDerefPattern', 'bracketGroup': 'shBracketExprDelim', 'extraArgs': 'contained nextgroup=shDerefPattern'})
|
||||
syn match shDerefEscape contained '\%(\\\\\)*\\.'
|
||||
endif
|
||||
if exists("b:is_bash")
|
||||
@@ -592,15 +653,16 @@ if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
|
||||
endif
|
||||
|
||||
if exists("b:is_bash")
|
||||
" bash : ${parameter/pattern/string}
|
||||
" bash : ${parameter//pattern/string}
|
||||
" bash : ${parameter//pattern}
|
||||
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
|
||||
syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' end='"' nextgroup=shDerefPPSright contains=@shPPSLeftList
|
||||
syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shPPSRightList
|
||||
|
||||
" bash : ${parameter/#substring/replacement}
|
||||
syn match shDerefPSR contained '/#' nextgroup=shDerefPSRleft,shDoubleQuote,shSingleQuote
|
||||
syn region shDerefPSRleft contained start='[^"']' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPSRright
|
||||
" bash : ${parameter/#pattern/string}
|
||||
" bash : ${parameter/%pattern/string}
|
||||
syn match shDerefPSR contained '/[#%]' nextgroup=shDerefPSRleft,shDoubleQuote,shSingleQuote
|
||||
syn region shDerefPSRleft contained start='[^"']' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPSRright contains=shBracketExpr
|
||||
syn region shDerefPSRright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}'
|
||||
endif
|
||||
|
||||
@@ -670,6 +732,7 @@ syn sync match shWhileSync grouphere shRepeat "\<while\>"
|
||||
" =====================
|
||||
if !exists("skip_sh_syntax_inits")
|
||||
hi def link shArithRegion shShellVariables
|
||||
hi def link shArrayValue shDeref
|
||||
hi def link shAstQuote shDoubleQuote
|
||||
hi def link shAtExpr shSetList
|
||||
hi def link shBkslshSnglQuote shSingleQuote
|
||||
@@ -764,7 +827,10 @@ if !exists("skip_sh_syntax_inits")
|
||||
endif
|
||||
|
||||
hi def link shArithmetic Special
|
||||
hi def link shBracketExprDelim Delimiter
|
||||
hi def link shCharClass Identifier
|
||||
hi def link shCollSymb shCharClass
|
||||
hi def link shEqClass shCharClass
|
||||
hi def link shSnglCase Statement
|
||||
hi def link shCommandSub Special
|
||||
hi def link shCommandSubBQ shCommandSub
|
||||
@@ -814,6 +880,10 @@ delc ShFoldFunctions
|
||||
delc ShFoldHereDoc
|
||||
delc ShFoldIfDoFor
|
||||
|
||||
" Delete the bracket expression function {{{1
|
||||
" ======================================
|
||||
delfun s:GenerateBracketExpressionItems
|
||||
|
||||
" Set Current Syntax: {{{1
|
||||
" ===================
|
||||
if exists("b:is_bash")
|
||||
|
||||
360
runtime/syntax/shaderslang.vim
Normal file
360
runtime/syntax/shaderslang.vim
Normal file
@@ -0,0 +1,360 @@
|
||||
" Vim syntax file
|
||||
" Language: Slang
|
||||
" Maintainer: Austin Shijo <epestr@proton.me>
|
||||
" Last Change: 2024 Jan 05
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Read the C syntax to start with
|
||||
runtime! syntax/c.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
" Annotations
|
||||
syn match shaderslangAnnotation /<.*;>/
|
||||
|
||||
" Attributes
|
||||
syn match shaderslangAttribute /^\s*\[maxvertexcount(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[domain(\s*"\(tri\|quad\|isoline\)"\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[earlydepthstencil\]/
|
||||
syn match shaderslangAttribute /^\s*\[instance(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[maxtessfactor(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[numthreads(\s*\w\+\s*,\s*\w\+\s*,\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[outputcontrolpoints(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[outputtopology(\s*"\(point\|line\|triangle_cw\|triangle_ccw\|triangle\)"\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[partitioning(\s*"\(integer\|fractional_even\|fractional_odd\|pow2\)"\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[patchconstantfunc(\s*"\(\d\|\w\|_\)\+"\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[WaveSize(\s*\w\+\(\s*,\s*\w\+\(\s*,\s*\w\+\)\?\)\?\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[shader(\s*"\(anyhit\|callable\|closesthit\|intersection\|miss\|raygeneration\)"\s*)\]/
|
||||
|
||||
syn match shaderslangAttribute /^\s*\[fastopt\]/
|
||||
syn match shaderslangAttribute /^\s*\[loop\]/
|
||||
syn match shaderslangAttribute /^\s*\[unroll\]/
|
||||
syn match shaderslangAttribute /^\s*\[allow_uav_condition\]/
|
||||
syn match shaderslangAttribute /^\s*\[branch\]/
|
||||
syn match shaderslangAttribute /^\s*\[flatten\]/
|
||||
syn match shaderslangAttribute /^\s*\[forcecase\]/
|
||||
syn match shaderslangAttribute /^\s*\[call\]/
|
||||
syn match shaderslangAttribute /^\s*\[WaveOpsIncludeHelperLanes\]/
|
||||
|
||||
syn match shaderslangAttribute /\[raypayload\]/
|
||||
|
||||
" Work graph shader target attributes
|
||||
syn match shaderslangAttribute /^\s*\[Shader(\s*"\(\d\|\w\|_\)\+"\s*)\]/
|
||||
|
||||
" Work graph shader function attributes
|
||||
syn match shaderslangAttribute /^\s*\[NodeLaunch(\s*"\(broadcasting\|coalescing\|thread\)"\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[NodeIsProgramEntry\]/
|
||||
syn match shaderslangAttribute /^\s*\[NodeLocalRootArgumentsTableIndex(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[NumThreads(\s*\w\+\s*,\s*\w\+\s*,\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[NodeShareInputOf(\s*"\w\+"\(\s*,\s*\w\+\)\?\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[NodeDispatchGrid(\s*\w\+\s*,\s*\w\+\s*,\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[NodeMaxDispatchGrid(\s*\w\+\s*,\s*\w\+\s*,\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[NodeMaxRecursionDepth(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /^\s*\[NodeMaxInputRecordsPerGraphEntryRecord(\s*\w\+\s*,\s*\(true\|false\)\s*)\]/
|
||||
|
||||
" Work graph record attributes
|
||||
syn match shaderslangAttribute /\[NodeTrackRWInputSharing\]/
|
||||
syn match shaderslangAttribute /\[MaxRecords(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /\[NodeID(\s*"\w\+"\(\s*,\s*\w\+\)\?\s*)\]/
|
||||
syn match shaderslangAttribute /\[MaxRecordsSharedWith(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /\[AllowSparseNodes\]/
|
||||
syn match shaderslangAttribute /\[NodeArraySize(\s*\w\+\s*)\]/
|
||||
syn match shaderslangAttribute /\[UnboundedSparseNodes\]/
|
||||
|
||||
" Intrinsic functions
|
||||
syn keyword shaderslangFunc abs acos acosh asin asinh atan atanh cos cosh exp exp2 floor log log10 log2 round rsqrt sin sincos sinh sqrt tan tanh trunc
|
||||
syn keyword shaderslangFunc AllMemoryBarrier AllMemoryBarrierWithGroupSync DeviceMemoryBarrier DeviceMemoryBarrierWithGroupSync GroupMemoryBarrier GroupMemoryBarrierWithGroupSync
|
||||
syn keyword shaderslangFunc abort clip errorf printf
|
||||
syn keyword shaderslangFunc all any countbits faceforward firstbithigh firstbitlow isfinite isinf isnan max min noise pow reversebits sign
|
||||
syn keyword shaderslangFunc asdouble asfloat asint asuint D3DCOLORtoUBYTE4 f16tof32 f32tof16
|
||||
syn keyword shaderslangFunc ceil clamp degrees fma fmod frac frexp ldexp lerp mad modf radiants saturate smoothstep step
|
||||
syn keyword shaderslangFunc cross determinant distance dot dst length lit msad4 mul normalize rcp reflect refract transpose
|
||||
syn keyword shaderslangFunc ddx ddx_coarse ddx_fine ddy ddy_coarse ddy_fine fwidth
|
||||
syn keyword shaderslangFunc EvaluateAttributeAtCentroid EvaluateAttributeAtSample EvaluateAttributeSnapped
|
||||
syn keyword shaderslangFunc GetRenderTargetSampleCount GetRenderTargetSamplePosition
|
||||
syn keyword shaderslangFunc InterlockedAdd InterlockedAnd InterlockedCompareExchange InterlockedCompareStore InterlockedExchange InterlockedMax InterlockedMin InterlockedOr InterlockedXor
|
||||
syn keyword shaderslangFunc InterlockedCompareStoreFloatBitwise InterlockedCompareExchangeFloatBitwise
|
||||
syn keyword shaderslangFunc Process2DQuadTessFactorsAvg Process2DQuadTessFactorsMax Process2DQuadTessFactorsMin ProcessIsolineTessFactors
|
||||
syn keyword shaderslangFunc ProcessQuadTessFactorsAvg ProcessQuadTessFactorsMax ProcessQuadTessFactorsMin ProcessTriTessFactorsAvg ProcessTriTessFactorsMax ProcessTriTessFactorsMin
|
||||
syn keyword shaderslangFunc tex1D tex1Dbias tex1Dgrad tex1Dlod tex1Dproj
|
||||
syn keyword shaderslangFunc tex2D tex2Dbias tex2Dgrad tex2Dlod tex2Dproj
|
||||
syn keyword shaderslangFunc tex3D tex3Dbias tex3Dgrad tex3Dlod tex3Dproj
|
||||
syn keyword shaderslangFunc texCUBE texCUBEbias texCUBEgrad texCUBElod texCUBEproj
|
||||
syn keyword shaderslangFunc WaveIsFirstLane WaveGetLaneCount WaveGetLaneIndex
|
||||
syn keyword shaderslangFunc IsHelperLane
|
||||
syn keyword shaderslangFunc WaveActiveAnyTrue WaveActiveAllTrue WaveActiveBallot
|
||||
syn keyword shaderslangFunc WaveReadLaneFirst WaveReadLaneAt
|
||||
syn keyword shaderslangFunc WaveActiveAllEqual WaveActiveAllEqualBool WaveActiveCountBits
|
||||
syn keyword shaderslangFunc WaveActiveSum WaveActiveProduct WaveActiveBitAnd WaveActiveBitOr WaveActiveBitXor WaveActiveMin WaveActiveMax
|
||||
syn keyword shaderslangFunc WavePrefixCountBits WavePrefixProduct WavePrefixSum
|
||||
syn keyword shaderslangFunc QuadReadAcrossX QuadReadAcrossY QuadReadAcrossDiagonal QuadReadLaneAt
|
||||
syn keyword shaderslangFunc QuadAny QuadAll
|
||||
syn keyword shaderslangFunc WaveMatch WaveMultiPrefixSum WaveMultiPrefixProduct WaveMultiPrefixCountBits WaveMultiPrefixAnd WaveMultiPrefixOr WaveMultiPrefixXor
|
||||
syn keyword shaderslangFunc NonUniformResourceIndex
|
||||
syn keyword shaderslangFunc DispatchMesh SetMeshOutputCounts
|
||||
syn keyword shaderslangFunc dot4add_u8packed dot4add_i8packed dot2add
|
||||
|
||||
syn keyword shaderslangFunc RestartStrip
|
||||
syn keyword shaderslangFunc CalculateLevelOfDetail CalculateLevelOfDetailUnclamped Gather GetDimensions GetSamplePosition Load Sample SampleBias SampleCmp SampleCmpLevelZero SampleGrad SampleLevel GatherRaw SampleCmpLevel
|
||||
syn keyword shaderslangFunc SampleCmpBias SampleCmpGrad
|
||||
syn keyword shaderslangFunc WriteSamplerFeedback WriteSamplerFeedbackBias WriteSamplerFeedbackGrad WriteSamplerFeedbackLevel
|
||||
syn keyword shaderslangFunc Append Consume DecrementCounter IncrementCounter
|
||||
syn keyword shaderslangFunc Load2 Load3 Load4 Store Store2 Store3 Store4
|
||||
syn keyword shaderslangFunc GatherRed GatherGreen GatherBlue GatherAlpha GatherCmp GatherCmpRed GatherCmpGreen GatherCmpBlue GatherCmpAlpha
|
||||
syn match shaderslangFunc /\.mips\[\d\+\]\[\d\+\]/
|
||||
syn match shaderslangFunc /\.sample\[\d\+\]\[\d\+\]/
|
||||
|
||||
" Ray intrinsics
|
||||
syn keyword shaderslangFunc AcceptHitAndEndSearch CallShader IgnoreHit ReportHit TraceRay
|
||||
syn keyword shaderslangFunc DispatchRaysIndex DispatchRaysDimensions
|
||||
syn keyword shaderslangFunc WorldRayOrigin WorldRayDirection RayTMin RayTCurrent RayFlags
|
||||
syn keyword shaderslangFunc InstanceIndex InstanceID GeometryIndex PrimitiveIndex ObjectRayOrigin ObjectRayDirection ObjectToWorld3x4 ObjectToWorld4x3 WorldToObject3x4 WorldToObject4x3
|
||||
syn keyword shaderslangFunc HitKind
|
||||
|
||||
" RayQuery intrinsics
|
||||
syn keyword shaderslangFunc TraceRayInline Proceed Abort CommittedStatus
|
||||
syn keyword shaderslangFunc CandidateType CandidateProceduralPrimitiveNonOpaque CandidateTriangleRayT CandidateInstanceIndex CandidateInstanceID CandidateInstanceContributionToHitGroupIndex CandidateGeometryIndex
|
||||
syn keyword shaderslangFunc CandidatePrimitiveIndex CandidateObjectRayOrigin CandidateObjectRayDirection CandidateObjectToWorld3x4 CandidateObjectToWorld4x3 CandidateWorldToObject3x4 CandidateWorldToObject4x3
|
||||
syn keyword shaderslangFunc CommitNonOpaqueTriangleHit CommitProceduralPrimitiveHit CommittedStatus CommittedRayT CommittedInstanceIndex CommittedInstanceID CommittedInstanceContributionToHitGroupIndex
|
||||
syn keyword shaderslangFunc CommittedGeometryIndex CommittedPrimitiveIndex CommittedObjectRayOrigin CommittedObjectRayDirection CommittedObjectToWorld3x4 CommittedObjectToWorld4x3 CommittedWorldToObject3x4
|
||||
syn keyword shaderslangFunc CommittedWorldToObject4x3 CandidateTriangleBarycentrics CandidateTriangleFrontFace CommittedTriangleBarycentrics CommittedTriangleFrontFace
|
||||
|
||||
" Pack/unpack math intrinsics
|
||||
syn keyword shaderslangFunc unpack_s8s16 unpack_u8u16 unpack_s8s32 unpack_u8u32
|
||||
syn keyword shaderslangFunc pack_u8 pack_s8 pack_clamp_u8 pack_clamp_s8
|
||||
|
||||
" Work graph object methods
|
||||
syn keyword shaderslangFunc Get FinishedCrossGroupSharing Count GetThreadNodeOutputRecords GetGroupNodeOutputRecords IsValid GroupIncrementOutputCount ThreadIncrementOutputCount OutputComplete
|
||||
|
||||
" Work graph free intrinsics
|
||||
syn keyword shaderslangFunc GetRemainingRecursionLevels Barrier
|
||||
|
||||
" Layout Qualifiers
|
||||
syn keyword shaderslangLayoutQual const row_major column_major
|
||||
syn keyword shaderslangLayoutQual point line triangle lineadj triangleadj
|
||||
syn keyword shaderslangLayoutQual InputPatch OutputPatch
|
||||
syn match shaderslangLayoutQual /PointStream<\s*\w\+\s*>/
|
||||
syn match shaderslangLayoutQual /LineStream<\s*\w\+\s*>/
|
||||
syn match shaderslangLayoutQual /TriangleStream<\s*\w\+\s*>/
|
||||
|
||||
" User defined Semantics
|
||||
syn match shaderslangSemantic /:\s*[A-Z]\w*/
|
||||
syn match shaderslangSemantic /:\s*packoffset(\s*c\d\+\(\.[xyzw]\)\?\s*)/ " packoffset
|
||||
syn match shaderslangSemantic /:\s*register(\s*\(r\|x\|v\|t\|s\|cb\|icb\|b\|c\|u\)\d\+\s*)/ " register
|
||||
syn match shaderslangSemantic /:\s*read(\s*\(\(anyhit\|closesthit\|miss\|caller\)\s*,\s*\)*\(anyhit\|closesthit\|miss\|caller\)\?\s*)/ " read
|
||||
syn match shaderslangSemantic /:\s*write(\s*\(\(anyhit\|closesthit\|miss\|caller\)\s*,\s*\)*\(anyhit\|closesthit\|miss\|caller\)\?\s*)/ " write
|
||||
|
||||
" System-Value Semantics
|
||||
" Vertex Shader
|
||||
syn match shaderslangSemantic /SV_ClipDistance\d\+/
|
||||
syn match shaderslangSemantic /SV_CullDistance\d\+/
|
||||
syn keyword shaderslangSemantic SV_Position SV_InstanceID SV_PrimitiveID SV_VertexID
|
||||
syn keyword shaderslangSemantic SV_StartVertexLocation SV_StartInstanceLocation
|
||||
" Tessellation pipeline
|
||||
syn keyword shaderslangSemantic SV_DomainLocation SV_InsideTessFactor SV_OutputControlPointID SV_TessFactor
|
||||
" Geometry Shader
|
||||
syn keyword shaderslangSemantic SV_GSInstanceID SV_RenderTargetArrayIndex
|
||||
" Pixel Shader - MSAA
|
||||
syn keyword shaderslangSemantic SV_Coverage SV_Depth SV_IsFrontFace SV_SampleIndex
|
||||
syn match shaderslangSemantic /SV_Target[0-7]/
|
||||
syn keyword shaderslangSemantic SV_ShadingRate SV_ViewID
|
||||
syn match shaderslangSemantic /SV_Barycentrics[0-1]/
|
||||
" Compute Shader
|
||||
syn keyword shaderslangSemantic SV_DispatchThreadID SV_GroupID SV_GroupIndex SV_GroupThreadID
|
||||
" Mesh shading pipeline
|
||||
syn keyword shaderslangSemantic SV_CullPrimitive
|
||||
" Work graph record system values
|
||||
syn keyword shaderslangSemantic SV_DispatchGrid
|
||||
|
||||
" slang structures
|
||||
syn keyword shaderslangStructure cbuffer
|
||||
|
||||
" Shader profiles
|
||||
" Cg profiles
|
||||
syn keyword shaderslangProfile arbfp1 arbvp1 fp20 vp20 fp30 vp30 ps_1_1 ps_1_2 ps_1_3
|
||||
" Shader Model 1
|
||||
syn keyword shaderslangProfile vs_1_1
|
||||
" Shader Model 2
|
||||
syn keyword shaderslangProfile ps_2_0 ps_2_x vs_2_0 vs_2_x
|
||||
" Shader Model 3
|
||||
syn keyword shaderslangProfile ps_3_0 vs_3_0
|
||||
" Shader Model 4
|
||||
syn keyword shaderslangProfile gs_4_0 ps_4_0 vs_4_0 gs_4_1 ps_4_1 vs_4_1
|
||||
" Shader Model 5
|
||||
syn keyword shaderslangProfile cs_4_0 cs_4_1 cs_5_0 ds_5_0 gs_5_0 hs_5_0 ps_5_0 vs_5_0
|
||||
" Shader Model 6
|
||||
syn keyword shaderslangProfile cs_6_0 ds_6_0 gs_6_0 hs_6_0 ps_6_0 vs_6_0 lib_6_0
|
||||
|
||||
" Swizzling
|
||||
syn match shaderslangSwizzle /\.[xyzw]\{1,4\}\>/
|
||||
syn match shaderslangSwizzle /\.[rgba]\{1,4\}\>/
|
||||
syn match shaderslangSwizzle /\.\(_m[0-3]\{2}\)\{1,4\}/
|
||||
syn match shaderslangSwizzle /\.\(_[1-4]\{2}\)\{1,4\}/
|
||||
|
||||
" Other Statements
|
||||
syn keyword shaderslangStatement discard
|
||||
|
||||
" Storage class
|
||||
syn match shaderslangStorageClass /\<in\(\s+pipeline\)\?\>/
|
||||
syn match shaderslangStorageClass /\<out\(\s\+indices\|\s\+vertices\|\s\+primitives\)\?\>/
|
||||
syn keyword shaderslangStorageClass inout
|
||||
syn keyword shaderslangStorageClass extern nointerpolation precise shared groupshared static uniform volatile
|
||||
syn keyword shaderslangStorageClass snorm unorm
|
||||
syn keyword shaderslangStorageClass linear centroid nointerpolation noperspective sample
|
||||
syn keyword shaderslangStorageClass globallycoherent
|
||||
|
||||
" Types
|
||||
" Buffer types
|
||||
syn keyword shaderslangType ConstantBuffer Buffer ByteAddressBuffer ConsumeStructuredBuffer StructuredBuffer
|
||||
syn keyword shaderslangType AppendStructuredBuffer RWBuffer RWByteAddressBuffer RWStructuredBuffer
|
||||
syn keyword shaderslangType RasterizerOrderedBuffer RasterizerOrderedByteAddressBuffer RasterizerOrderedStructuredBuffer
|
||||
|
||||
" Scalar types
|
||||
syn keyword shaderslangType bool int uint dword half float double
|
||||
syn keyword shaderslangType min16float min10float min16int min12int min16uint
|
||||
syn keyword shaderslangType float16_t float32_t float64_t
|
||||
|
||||
" Vector types
|
||||
syn match shaderslangType /vector<\s*\w\+,\s*[1-4]\s*>/
|
||||
syn keyword shaderslangType bool1 bool2 bool3 bool4
|
||||
syn keyword shaderslangType int1 int2 int3 int4
|
||||
syn keyword shaderslangType uint1 uint2 uint3 uint4
|
||||
syn keyword shaderslangType dword1 dword2 dword3 dword4
|
||||
syn keyword shaderslangType half1 half2 half3 half4
|
||||
syn keyword shaderslangType float1 float2 float3 float4
|
||||
syn keyword shaderslangType double1 double2 double3 double4
|
||||
syn keyword shaderslangType min16float1 min16float2 min16float3 min16float4
|
||||
syn keyword shaderslangType min10float1 min10float2 min10float3 min10float4
|
||||
syn keyword shaderslangType min16int1 min16int2 min16int3 min16int4
|
||||
syn keyword shaderslangType min12int1 min12int2 min12int3 min12int4
|
||||
syn keyword shaderslangType min16uint1 min16uint2 min16uint3 min16uint4
|
||||
syn keyword shaderslangType float16_t1 float16_t2 float16_t3 float16_t4
|
||||
syn keyword shaderslangType float32_t1 float32_t2 float32_t3 float32_t4
|
||||
syn keyword shaderslangType float64_t1 float64_t2 float64_t3 float64_t4
|
||||
syn keyword shaderslangType int16_t1 int16_t2 int16_t3 int16_t4
|
||||
syn keyword shaderslangType int32_t1 int32_t2 int32_t3 int32_t4
|
||||
syn keyword shaderslangType int64_t1 int64_t2 int64_t3 int64_t4
|
||||
syn keyword shaderslangType uint16_t1 uint16_t2 uint16_t3 uint16_t4
|
||||
syn keyword shaderslangType uint32_t1 uint32_t2 uint32_t3 uint32_t4
|
||||
syn keyword shaderslangType uint64_t1 uint64_t2 uint64_t3 uint64_t4
|
||||
|
||||
" Packed types
|
||||
syn keyword shaderslangType uint8_t4_packed int8_t4_packed
|
||||
|
||||
" Matrix types
|
||||
syn match shaderslangType /matrix<\s*\w\+\s*,\s*[1-4]\s*,\s*[1-4]\s*>/
|
||||
syn keyword shaderslangType bool1x1 bool2x1 bool3x1 bool4x1 bool1x2 bool2x2 bool3x2 bool4x2 bool1x3 bool2x3 bool3x3 bool4x3 bool1x4 bool2x4 bool3x4 bool4x4
|
||||
syn keyword shaderslangType int1x1 int2x1 int3x1 int4x1 int1x2 int2x2 int3x2 int4x2 int1x3 int2x3 int3x3 int4x3 int1x4 int2x4 int3x4 int4x4
|
||||
syn keyword shaderslangType uint1x1 uint2x1 uint3x1 uint4x1 uint1x2 uint2x2 uint3x2 uint4x2 uint1x3 uint2x3 uint3x3 uint4x3 uint1x4 uint2x4 uint3x4 uint4x4
|
||||
syn keyword shaderslangType dword1x1 dword2x1 dword3x1 dword4x1 dword1x2 dword2x2 dword3x2 dword4x2 dword1x3 dword2x3 dword3x3 dword4x3 dword1x4 dword2x4 dword3x4 dword4x4
|
||||
syn keyword shaderslangType half1x1 half2x1 half3x1 half4x1 half1x2 half2x2 half3x2 half4x2 half1x3 half2x3 half3x3 half4x3 half1x4 half2x4 half3x4 half4x4
|
||||
syn keyword shaderslangType float1x1 float2x1 float3x1 float4x1 float1x2 float2x2 float3x2 float4x2 float1x3 float2x3 float3x3 float4x3 float1x4 float2x4 float3x4 float4x4
|
||||
syn keyword shaderslangType double1x1 double2x1 double3x1 double4x1 double1x2 double2x2 double3x2 double4x2 double1x3 double2x3 double3x3 double4x3 double1x4 double2x4 double3x4 double4x4
|
||||
syn keyword shaderslangType min16float1x1 min16float2x1 min16float3x1 min16float4x1 min16float1x2 min16float2x2 min16float3x2 min16float4x2 min16float1x3 min16float2x3 min16float3x3 min16float4x3 min16float1x4 min16float2x4 min16float3x4 min16float4x4
|
||||
syn keyword shaderslangType min10float1x1 min10float2x1 min10float3x1 min10float4x1 min10float1x2 min10float2x2 min10float3x2 min10float4x2 min10float1x3 min10float2x3 min10float3x3 min10float4x3 min10float1x4 min10float2x4 min10float3x4 min10float4x4
|
||||
syn keyword shaderslangType min16int1x1 min16int2x1 min16int3x1 min16int4x1 min16int1x2 min16int2x2 min16int3x2 min16int4x2 min16int1x3 min16int2x3 min16int3x3 min16int4x3 min16int1x4 min16int2x4 min16int3x4 min16int4x4
|
||||
syn keyword shaderslangType min12int1x1 min12int2x1 min12int3x1 min12int4x1 min12int1x2 min12int2x2 min12int3x2 min12int4x2 min12int1x3 min12int2x3 min12int3x3 min12int4x3 min12int1x4 min12int2x4 min12int3x4 min12int4x4
|
||||
syn keyword shaderslangType min16uint1x1 min16uint2x1 min16uint3x1 min16uint4x1 min16uint1x2 min16uint2x2 min16uint3x2 min16uint4x2 min16uint1x3 min16uint2x3 min16uint3x3 min16uint4x3 min16uint1x4 min16uint2x4 min16uint3x4 min16uint4x4
|
||||
syn keyword shaderslangType float16_t1x1 float16_t2x1 float16_t3x1 float16_t4x1 float16_t1x2 float16_t2x2 float16_t3x2 float16_t4x2 float16_t1x3 float16_t2x3 float16_t3x3 float16_t4x3 float16_t1x4 float16_t2x4 float16_t3x4 float16_t4x4
|
||||
syn keyword shaderslangType float32_t1x1 float32_t2x1 float32_t3x1 float32_t4x1 float32_t1x2 float32_t2x2 float32_t3x2 float32_t4x2 float32_t1x3 float32_t2x3 float32_t3x3 float32_t4x3 float32_t1x4 float32_t2x4 float32_t3x4 float32_t4x4
|
||||
syn keyword shaderslangType float64_t1x1 float64_t2x1 float64_t3x1 float64_t4x1 float64_t1x2 float64_t2x2 float64_t3x2 float64_t4x2 float64_t1x3 float64_t2x3 float64_t3x3 float64_t4x3 float64_t1x4 float64_t2x4 float64_t3x4 float64_t4x4
|
||||
syn keyword shaderslangType int16_t1x1 int16_t2x1 int16_t3x1 int16_t4x1 int16_t1x2 int16_t2x2 int16_t3x2 int16_t4x2 int16_t1x3 int16_t2x3 int16_t3x3 int16_t4x3 int16_t1x4 int16_t2x4 int16_t3x4 int16_t4x4
|
||||
syn keyword shaderslangType int32_t1x1 int32_t2x1 int32_t3x1 int32_t4x1 int32_t1x2 int32_t2x2 int32_t3x2 int32_t4x2 int32_t1x3 int32_t2x3 int32_t3x3 int32_t4x3 int32_t1x4 int32_t2x4 int32_t3x4 int32_t4x4
|
||||
syn keyword shaderslangType int64_t1x1 int64_t2x1 int64_t3x1 int64_t4x1 int64_t1x2 int64_t2x2 int64_t3x2 int64_t4x2 int64_t1x3 int64_t2x3 int64_t3x3 int64_t4x3 int64_t1x4 int64_t2x4 int64_t3x4 int64_t4x4
|
||||
syn keyword shaderslangType uint16_t1x1 uint16_t2x1 uint16_t3x1 uint16_t4x1 uint16_t1x2 uint16_t2x2 uint16_t3x2 uint16_t4x2 uint16_t1x3 uint16_t2x3 uint16_t3x3 uint16_t4x3 uint16_t1x4 uint16_t2x4 uint16_t3x4 uint16_t4x4
|
||||
syn keyword shaderslangType uint32_t1x1 uint32_t2x1 uint32_t3x1 uint32_t4x1 uint32_t1x2 uint32_t2x2 uint32_t3x2 uint32_t4x2 uint32_t1x3 uint32_t2x3 uint32_t3x3 uint32_t4x3 uint32_t1x4 uint32_t2x4 uint32_t3x4 uint32_t4x4
|
||||
syn keyword shaderslangType uint64_t1x1 uint64_t2x1 uint64_t3x1 uint64_t4x1 uint64_t1x2 uint64_t2x2 uint64_t3x2 uint64_t4x2 uint64_t1x3 uint64_t2x3 uint64_t3x3 uint64_t4x3 uint64_t1x4 uint64_t2x4 uint64_t3x4 uint64_t4x4
|
||||
|
||||
" Sampler types
|
||||
syn keyword shaderslangType SamplerState SamplerComparisonState
|
||||
syn keyword shaderslangType sampler sampler1D sampler2D sampler3D samplerCUBE sampler_state
|
||||
|
||||
" Texture types
|
||||
syn keyword shaderslangType Texture1D Texture1DArray Texture2D Texture2DArray Texture2DMS Texture2DMSArray Texture3D TextureCube TextureCubeArray
|
||||
syn keyword shaderslangType RWTexture1D RWTexture2D RWTexture2DArray RWTexture3D RWTextureCubeArray RWTexture2DMS RWTexture2DMSArray
|
||||
syn keyword shaderslangType FeedbackTexture2D FeedbackTexture2DArray
|
||||
syn keyword shaderslangType RasterizerOrderedTexture1D RasterizerOrderedTexture1DArray RasterizerOrderedTexture2D RasterizerOrderedTexture2DArray RasterizerOrderedTexture3D
|
||||
syn keyword shaderslangTypeDeprec texture texture1D texture2D texture3D
|
||||
|
||||
" Raytracing types
|
||||
syn keyword shaderslangType RaytracingAccelerationStructure RayDesc RayQuery BuiltInTriangleIntersectionAttributes
|
||||
|
||||
" Work graph input record objects
|
||||
syn keyword shaderslangType DispatchNodeInputRecord RWDispatchNodeInputRecord GroupNodeInputRecords RWGroupNodeInputRecords ThreadNodeInputRecord RWThreadNodeInputRecord EmptyNodeInput
|
||||
|
||||
" Work graph output node objects
|
||||
syn keyword shaderslangType NodeOutput NodeOutputArray EmptyNodeOutput EmptyNodeOutputArray
|
||||
|
||||
" Work graph output record objects
|
||||
syn keyword shaderslangType ThreadNodeOutputRecords GroupNodeOutputRecords
|
||||
|
||||
" State Groups args
|
||||
syn case ignore " This section case insensitive
|
||||
|
||||
" Blend state group
|
||||
syn keyword shaderslangStateGroupArg AlphaToCoverageEnable BlendEnable SrcBlend DestBlend BlendOp SrcBlendAlpha DestBlendAlpha BlendOpAlpha RenderTargetWriteMask
|
||||
syn keyword shaderslangStateGroupVal ZERO ONE SRC_COLOR INV_SRC_COLOR SRC_ALPHA INV_SRC_ALPHA DEST_ALPHA INV_DEST_ALPHA DEST_COLOR INV_DEST_COLOR SRC_ALPHA_SAT BLEND_FACTOR INV_BLEND_FACTOR SRC1_COLOR INV_SRC1_COLOR SRC1_ALPHA INV_SRC1_ALPHA
|
||||
syn keyword shaderslangStateGroupVal ADD SUBSTRACT REV_SUBSTRACT MIN MAX
|
||||
|
||||
" Rasterizer state group
|
||||
syn keyword shaderslangStateGroupArg FillMode CullMode FrontCounterClockwise DepthBias DepthBiasClamp SlopeScaledDepthBias ZClipEnable DepthClipEnable ScissorEnable MultisampleEnable AntialiasedLineEnable
|
||||
syn keyword shaderslangStateGroupVal SOLID WIREFRAME
|
||||
syn keyword shaderslangStateGroupVal NONE FRONT BACK
|
||||
|
||||
" Sampler state group
|
||||
syn keyword shaderslangStateGroupArg Filter AddressU AddressV AddressW MipLODBias MaxAnisotropy ComparisonFunc BorderColor MinLOD MaxLOD ComparisonFilter
|
||||
syn keyword shaderslangStateGroupVal MIN_MAG_MIP_POINT MIN_MAG_POINT_MIP_LINEAR MIN_POINT_MAG_LINEAR_MIP_POINT MIN_POINT_MAG_MIP_LINEAR MIN_LINEAR_MAG_MIP_POINT MIN_LINEAR_MAG_POINT_MIP_LINEAR MIN_MAG_LINEAR_MIP_POINT MIN_MAG_MIP_LINEAR ANISOTROPIC
|
||||
syn keyword shaderslangStateGroupVal COMPARISON_MIN_MAG_MIP_POINT COMPARISON_MIN_MAG_POINT_MIP_LINEAR COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT COMPARISON_MIN_POINT_MAG_MIP_LINEAR COMPARISON_MIN_LINEAR_MAG_MIP_POINT
|
||||
syn keyword shaderslangStateGroupVal COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR COMPARISON_MIN_MAG_LINEAR_MIP_POINT COMPARISON_MIN_MAG_MIP_LINEAR COMPARISON_ANISOTROPIC
|
||||
syn keyword shaderslangStateGroupVal COMPARISON_NEVER COMPARISON_LESS COMPARISON_EQUAL COMPARISON_LESS_EQUAL COMPARISON_GREATER COMPARISON_NOT_EQUAL COMPARISON_GREATER_EQUAL COMPARISON_ALWAYS
|
||||
syn keyword shaderslangStateGroupVal WRAP MIRROR CLAMP BORDER MIRROR_ONCE
|
||||
syn keyword shaderslangStateGroupVal SAMPLER_FEEDBACK_MIN_MIP SAMPLER_FEEDBACK_MIP_REGION_USED
|
||||
|
||||
" Ray flags
|
||||
syn keyword shaderslangStateGroupVal RAY_FLAG_NONE RAY_FLAG_FORCE_OPAQUE RAY_FLAG_FORCE_NON_OPAQUE RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH RAY_FLAG_SKIP_CLOSEST_HIT_SHADER
|
||||
syn keyword shaderslangStateGroupVal RAY_FLAG_CULL_BACK_FACING_TRIANGLES RAY_FLAG_CULL_FRONT_FACING_TRIANGLES RAY_FLAG_CULL_OPAQUE RAY_FLAG_CULL_NON_OPAQUE
|
||||
syn keyword shaderslangStateGroupVal RAY_FLAG_SKIP_TRIANGLES RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES
|
||||
|
||||
" HitKind enum
|
||||
syn keyword shaderslangStateGroupVal HIT_KIND_TRIANGLE_FRONT_FACE HIT_KIND_TRIANGLE_BACK_FACE
|
||||
|
||||
" RayQuery enums
|
||||
syn keyword shaderslangStateGroupVal COMMITTED_NOTHING COMMITTED_TRIANGLE_HIT COMMITTED_PROCEDURAL_PRIMITIVE_HIT
|
||||
syn keyword shaderslangStateGroupVal CANDIDATE_NON_OPAQUE_TRIANGLE CANDIDATE_PROCEDURAL_PRIMITIVE
|
||||
|
||||
" Heap objects
|
||||
syn keyword shaderslangStateGroupVal ResourceDescriptorHeap SamplerDescriptorHeap
|
||||
|
||||
" Work graph constants
|
||||
syn keyword shaderslangStateGroupVal UAV_MEMORY GROUP_SHARED_MEMORY NODE_INPUT_MEMORY NODE_OUTPUT_MEMORY ALL_MEMORY GROUP_SYNC GROUP_SCOPE DEVICE_SCOPE
|
||||
|
||||
syn case match " Case sensitive from now on
|
||||
|
||||
" Effect files declarations and functions
|
||||
" Effect groups, techniques passes
|
||||
syn keyword shaderslangEffectGroup fxgroup technique11 pass
|
||||
" Effect functions
|
||||
syn keyword shaderslangEffectFunc SetBlendState SetDepthStencilState SetRasterizerState SetVertexShader SetHullShader SetDomainShader SetGeometryShader SetPixelShader SetComputeShader CompileShader ConstructGSWithSO SetRenderTargets
|
||||
|
||||
" Default highlighting
|
||||
hi def link shaderslangProfile shaderslangStatement
|
||||
hi def link shaderslangStateGroupArg shaderslangStatement
|
||||
hi def link shaderslangStateGroupVal Number
|
||||
hi def link shaderslangStatement Statement
|
||||
hi def link shaderslangType Type
|
||||
hi def link shaderslangTypeDeprec WarningMsg
|
||||
hi def link shaderslangStorageClass StorageClass
|
||||
hi def link shaderslangSemantic PreProc
|
||||
hi def link shaderslangFunc shaderslangStatement
|
||||
hi def link shaderslangLayoutQual shaderslangFunc
|
||||
hi def link shaderslangAnnotation PreProc
|
||||
hi def link shaderslangStructure Structure
|
||||
hi def link shaderslangSwizzle SpecialChar
|
||||
hi def link shaderslangAttribute Statement
|
||||
|
||||
hi def link shaderslangEffectGroup Type
|
||||
hi def link shaderslangEffectFunc Statement
|
||||
|
||||
let b:current_syntax = "shaderslang"
|
||||
@@ -199,6 +199,9 @@ You can now examine the extracted screendumps:
|
||||
Viewing generated screendumps (submitted for a pull request)
|
||||
------------------------------------------------------------
|
||||
|
||||
Note: There is also a "git difftool" extension described in
|
||||
src/testdir/commondumps.vim
|
||||
|
||||
First, you need to check out the topic branch with the proposed changes and
|
||||
write down a difference list between the HEAD commit (index) and its parent
|
||||
commit with respect to the changed "dumps" filenames:
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62
|
||||
|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41
|
||||
|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39
|
||||
@75
|
||||
|#+0#0000e05&| |F|i|r|s|t| |l|i|n|e| |i|s| |O|K| |e|x|c|e|p|t| |i|t|s| |m|i|s@1|i|n|g| |a| |c|l|o|s|i|n|g| |"|}|"|,| +0#0000000&@22
|
||||
|#+0#0000e05&| |s|o| |s|e|c|o|n|d| |l|i|n|e| |s|h|o|u|l|d| |h|a|v|e| |s|o|m|e| |e|r@1|o|r| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@22
|
||||
|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&| +0#0000000&@18
|
||||
|V+0#ffffff16#ff404010|a|r|i|a|b|l|e|=|$+0#e000e06#ffffff0|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&| +0#0000000&@27
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|1|9|,|0|-|1| @7|B|o|t|
|
||||
|
||||
20
runtime/syntax/testdir/dumps/sh_12_00.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_00.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
>#+0#0000e05#ffffff0|!|/|b|i|n|/|b|a|s|h| +0#0000000&@63
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |s|h|A|r@1|a|y|V|a|l|u|e| |I|d|e|n|t|i|f|i|e|r| +0#0000000&@19
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |s|h|B|r|a|c|k|e|t|E|x|p|r|D|e|l|i|m| |S|t|r|u|c|t|u|r|e| +0#0000000&@14
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |s|h|C|h|a|r|C|l|a|s@1| |T|o|d|o| +0#0000000&@26
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |s|h|R|a|n|g|e| |C|u|r|s|o|r|L|i|n|e| +0#0000000&@24
|
||||
@75
|
||||
@75
|
||||
@75
|
||||
@75
|
||||
|[+0#e000e06&@1| +0#0000000&|(+0#e000002&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|1|"+0#af5f00255&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|?+0#e000002&|(|-|)|+|(|[+0#00e0003&|0+0#0000000&|-|9|]+0#00e0003&|)+0#e000002&| +0#0000000&|&+0#e000002&@1| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|1|"+0#af5f00255&| +0#0000000&|=+0#af5f00255&|~| +0#0000000&|^+0#e000002&|-|?|[+0#00e0003&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|++0#e000002&|$| +0#0000000&|&+0#e000002&@1| +0#0000000&@18
|
||||
|'+0#af5f00255&|^+0#e000002&|?|(|-|)|+|(|[@1|:|d|i|g|i|t|:|]@1|)|$|'+0#af5f00255&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|2|"+0#af5f00255&| +0#0000000&|&+0#e000002&@1| +0#0000000&|!+0#af5f00255&| +0#0000000&|"+0#af5f00255&|^+0#e000002&|-|?|[|0|-|9|]|+|$|"+0#af5f00255&| +0#0000000&|=+0#af5f00255&|~| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|2|"+0#af5f00255&| +0#0000000&|)+0#e000002&| +0#0000000&|]+0#e000e06&@1| +0#0000000&||@1| |:| @8
|
||||
@75
|
||||
|[+8&&| +0&&|\+0#e000e06&|(| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|1|"+0#af5f00255&| +0#0000000&|!+0#af5f00255&|=| +0#0000000&|"+0#af5f00255&|?+0#e000002&|(|-|)|+|(|[|0|-|9|]|)|"+0#af5f00255&| +0#0000000&|-+0#af5f00255&|a| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|1|"+0#af5f00255&| +0#0000000&|!+0#af5f00255&|=| +0#0000000&|'+0#af5f00255&|?+0#e000002&|(|-|)|+|(|[@1|:|d|i|g|i|t|:|]@1|)|'+0#af5f00255&| +0#0000000&|\+0#e000e06&|)| +0#0000000&|]+8&&| +0&&|&@1| @7
|
||||
|[+8&&| +0&&|\+0#e000e06&|(| +0#0000000&|"+0#af5f00255&|?+0#e000002&|(|-|)|+|(|[@1|:|d|i|g|i|t|:|]@1|)|"+0#af5f00255&| +0#0000000&|!+0#af5f00255&|=| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|2|"+0#af5f00255&| +0#0000000&|-+0#af5f00255&|a| +0#0000000&|'+0#af5f00255&|?+0#e000002&|(|-|)|+|(|[|0|-|9|]|)|'+0#af5f00255&| +0#0000000&|!+0#af5f00255&|=| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|2|"+0#af5f00255&| +0#0000000&|\+0#e000e06&|)| +0#0000000&|]+8&&| +0&&||@1| |:| @5
|
||||
@75
|
||||
|#+0#0000e05&| |M|a|t|c|h| |"|\|[|0|\|]|\|[|0|\|]|"|,| |"|{|0|}|{|0|}|"|,| |e|t|c|.| +0#0000000&@38
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@38
|
||||
|:| |[+0#00e0003&|\+0#0000000&| @70
|
||||
|[|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@41
|
||||
|i|s|_|b|a|s|h|:| |1|,| @45|1|,|1| @10|T|o|p|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_01.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_01.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|[+8&#ffffff0| +0&&|\+0#e000e06&|(| +0#0000000&|"+0#af5f00255&|?+0#e000002&|(|-|)|+|(|[@1|:|d|i|g|i|t|:|]@1|)|"+0#af5f00255&| +0#0000000&|!+0#af5f00255&|=| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|2|"+0#af5f00255&| +0#0000000&|-+0#af5f00255&|a| +0#0000000&|'+0#af5f00255&|?+0#e000002&|(|-|)|+|(|[|0|-|9|]|)|'+0#af5f00255&| +0#0000000&|!+0#af5f00255&|=| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|2|"+0#af5f00255&| +0#0000000&|\+0#e000e06&|)| +0#0000000&|]+8&&| +0&&||@1| |:| @5
|
||||
@75
|
||||
|#+0#0000e05&| |M|a|t|c|h| |"|\|[|0|\|]|\|[|0|\|]|"|,| |"|{|0|}|{|0|}|"|,| |e|t|c|.| +0#0000000&@38
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@38
|
||||
|:| |[+0#00e0003&|\+0#0000000&| @70
|
||||
>[|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@41
|
||||
|:| |[+0#00e0003&|[+0#0000000&|\| @69
|
||||
|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@42
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|\| @68
|
||||
|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@43
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|\+0#af5f00255&| +0#0000000&@67
|
||||
|[+0#00e0003&|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@44
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|\+0#0000000&| @66
|
||||
|0|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@45
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|\| @63
|
||||
|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@48
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|\+0#af5f00255&| +0#0000000&@62
|
||||
|*|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@49
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|\+0#af5f00255&| +0#0000000&@61
|
||||
@57|1|9|,|1| @10|6|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_02.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_02.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|:+0&#ffffff0| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|\+0#af5f00255&| +0#0000000&@61
|
||||
|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@50
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|\| @59
|
||||
|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@52
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|\| @58
|
||||
>]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@53
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|\+0#af5f00255&| +0#0000000&@57
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@54
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|\+0#0000000&| @56
|
||||
|[|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@55
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|\| @55
|
||||
|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@56
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|\| @54
|
||||
|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@57
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|\+0#af5f00255&| +0#0000000&@53
|
||||
|[+0#00e0003&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@58
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|\+0#0000000&| @52
|
||||
|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@59
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|\+0#0000000#ffffff0| @43
|
||||
@57|3|7|,|1| @9|1|6|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_03.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_03.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|:+0&#ffffff0| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|\+0#0000000#ffffff0| @43
|
||||
|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@68
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|\+0#af5f00255&| +0#0000000&@42
|
||||
|*|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@69
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|\+0#af5f00255&| +0#0000000&@41
|
||||
>[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&| +0#0000000&@70
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|\| @39
|
||||
|}|]+0#00e0003&| +0#0000000&@72
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|\| @38
|
||||
|]+0#00e0003&| +0#0000000&@73
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|]+0#00e0003&| +0#0000000&@34
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|\+0#0000000&| @40
|
||||
|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|]+0#00e0003&| +0#0000000&@67
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|\+0#0000000#ffffff0| @35
|
||||
|}|]+0#00e0003&| +0#0000000&@72
|
||||
|:| |[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|\| @34
|
||||
|]+0#00e0003&| +0#0000000&@73
|
||||
@75
|
||||
|#+0#0000e05&| |M|a|t|c|h| |"|\|[|0|\|]|\|[|0|\|]|"|,| |"|{|0|}|{|0|}|"|,| |e|t|c|.| +0#0000000&@38
|
||||
@57|5@1|,|1| @9|2|6|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_04.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_04.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|#+0#0000e05#ffffff0| |M|a|t|c|h| |"|\|[|0|\|]|\|[|0|\|]|"|,| |"|{|0|}|{|0|}|"|,| |e|t|c|.| +0#0000000&@38
|
||||
|c+0#af5f00255&|a|s|e| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|1|"+0#af5f00255&| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@62
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|0+0#0000000&|-|9|]+0#00e0003&|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|!+8#e000e06&|0+0#0000000&|-|9|]+0#00e0003&|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|^+8#e000e06&|0+0#0000000&|-|9|]+0#00e0003&|;+0#af5f00255&@1| +0#0000000&@8
|
||||
|[+0#00e0003&|\+0#0000000&| @72
|
||||
|[|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|0+0#0000000&|1|2|3|]+0#00e0003&|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|!+8#e000e06&|0+0#0000000&|1|2|3|]+0#00e0003&|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|^+8#e000e06&|0+0#0000000&|1|2|3|]+0#00e0003&|;+0#af5f00255&@1| +0#0000000&@6
|
||||
>[+0#00e0003&|[+0#0000000&|\| @71
|
||||
|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|1+0#0000000&|[+0#0000001#ffff4012|.|0|.|]|]+0#00e0003#ffffff0|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|!+8#e000e06&|[+0#0000001#ffff4012|.|0|.|]|]+0#00e0003#ffffff0|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|^+8#e000e06&|[+0#0000001#ffff4012|.|0|.|]|^+0#0000000#ffffff0|]+0#00e0003&|;+0#af5f00255&@1| +0#0000000&@2
|
||||
|[+0#00e0003&|[+0#0000000&|{|\| @70
|
||||
|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|1+0#0000000&|[+0#0000001#ffff4012|=|0|=|]|]+0#00e0003#ffffff0|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|!+8#e000e06&|[+0#0000001#ffff4012|=|0|=|]|!+0#0000000#ffffff0|]+0#00e0003&|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|^+8#e000e06&|[+0#0000001#ffff4012|=|0|=|]|]+0#00e0003#ffffff0|;+0#af5f00255&@1| +0#0000000&@3
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|\+0#0000000&| @69
|
||||
|[+0#00e0003&|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@39
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|\+0#0000000&| @68
|
||||
|0|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@40
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|\| @65
|
||||
|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |?|[+0#00e0003&|[+0#0000000&|:|f|o@1|:|]|]+0#00e0003&|?+0#0000000&|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|!+8#e000e06&|[+0#0000000&|:|f|o@1|:|]|]+0#00e0003&|?+0#0000000&|;+0#af5f00255&| +0#0000000&|:| |?|[+0#00e0003&|^+8#e000e06&|[+0#0000000&|:|f|o@1|:|]|]+0#00e0003&|;+0#af5f00255&@1| +0#0000000&
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|\+0#0000000&| @64
|
||||
|*|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|!+8#e000e06&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|;+0#af5f00255&| +0#0000000&|:| |[+0#00e0003&|^+8#e000e06&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|;+0#af5f00255&@1
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|\| @63
|
||||
|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|^+0#af5f00255&|[+0#00e0003&|[+0#0000001#ffff4012|:|l|o|w|e|r|:|]|]+0#00e0003#ffffff0|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|^+0#af5f00255&@1|[+0#00e0003&|a+0#0000000&|-|z|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&@8
|
||||
@57|7|3|,|1| @9|3|5|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_05.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_05.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|[+0#00e0003#ffffff0|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|^+0#af5f00255&|[+0#00e0003&|[+0#0000001#ffff4012|:|l|o|w|e|r|:|]|]+0#00e0003#ffffff0|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|^+0#af5f00255&@1|[+0#00e0003&|a+0#0000000&|-|z|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&@8
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|\| @61
|
||||
|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|,+0#af5f00255&|[+0#00e0003&|[+0#0000001#ffff4012|:|u|p@1|e|r|:|]|]+0#00e0003#ffffff0|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|,+0#af5f00255&@1|[+0#00e0003&|A+0#0000000&|-|Z|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&@10
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|\| @60
|
||||
|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@48
|
||||
>[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|\+0#0000000&| @59
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@49
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|\+0#0000000&| @58
|
||||
|[|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|[+0#00e0003&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&@1|[+0#00e0003&|0+0#0000000&|-|9|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&@13
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|\| @57
|
||||
|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&|[+0#00e0003&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&@1|[+0#00e0003&|0+0#0000000&|-|9|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&@14
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|\| @56
|
||||
|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|/+0#af5f00255&|[+0#00e0003&|]+0#0000000&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|[+0#0000000#ffffff0|]+0#00e0003&|/+0#af5f00255&|[+0#0000000&|0|-|9|]|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|/+0#af5f00255&@1|[+0#00e0003&|]+0#0000000&|0|-|9|[|]+0#00e0003&|/+0#af5f00255&|[+0#0000000&|0|-|9|]|}+0#e000e06&|"+0#af5f00255&|;@1
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|\+0#0000000&| @55
|
||||
|[+0#00e0003&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|/+0#af5f00255&|#|[+0#00e0003&|]+0#0000000&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|[+0#0000000#ffffff0|]+0#00e0003&|/+0#af5f00255&|[+0#0000000&|0|-|9|]|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|/+0#af5f00255&|%|[+0#00e0003&|]+0#0000000&|0|-|9|[|]+0#00e0003&|/+0#af5f00255&|[+0#0000000&|0|-|9|]|}+0#e000e06&|"+0#af5f00255&|;@1
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|\+0#0000000&| @54
|
||||
|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@54
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|\+0#0000000#ffffff0| @45
|
||||
|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@63
|
||||
@57|9|1|,|1| @9|4|5|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_06.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_06.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@63
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|\+0#0000000&| @44
|
||||
|*|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|[|.|]|[|.|]|.|]|]+0#00e0003#ffffff0|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|[|.|[|.|]|]+0#00e0003#ffffff0|*+0#0000000&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|[+0#00e0003&|]+0#0000000&|[|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;@1
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|\| @43
|
||||
|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|=|[|=|]|[|=|]|=|]|]+0#00e0003#ffffff0|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&|[+0#00e0003&|[+0#0000001#ffff4012|=|]|=|]|[|=|[|=|]|]+0#00e0003#ffffff0|*+0#0000000&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|\| |[+0#00e0003&|!+8#e000e06&|]+0#0000000&|[|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&
|
||||
>[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|\| @41
|
||||
|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|!+8#e000e06&|]+0#0000000&|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|^+8#e000e06&|]+0#0000000&|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&|[+0#00e0003&|!+8#e000e06&|[+0#0000000&|]+0#00e0003&|*+0#0000000&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&|[+0#00e0003&|^+8#e000e06&|[+0#0000000&|]+0#00e0003&|*+0#0000000&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&@5
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|\| @40
|
||||
|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|!+8#e000e06&|\+0#0000000&|]|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|^+8#e000e06&|\+0#0000000&|]|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&|[+0#00e0003&|!+8#e000e06&|\+0#0000000&|[|]+0#00e0003&|*+0#0000000&|}+0#e000e06&|"+0#af5f00255&|;| +0#0000000&|:| |"+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&|[+0#00e0003&|^+8#e000e06&|\+0#0000000&|[|]+0#00e0003&|*+0#0000000&|}+0#e000e06&|"+0#af5f00255&|;@1| +0#0000000&@2
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|\+0#0000000&| @39
|
||||
|*|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@69
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|]+0#00e0003&|\+0#0000000&| @35
|
||||
|*|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@69
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|\+0#0000000&| @42
|
||||
|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@62
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|\+0#0000000#ffffff0| @37
|
||||
|}|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@67
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|\| @36
|
||||
|]+0#00e0003&|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@68
|
||||
@57|1|0|9|,|1| @8|5@1|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_07.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_07.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|]+0#00e0003#ffffff0|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@68
|
||||
|[+0#00e0003&|!+8#e000e06&|]+0#0000000&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|[|:|x|d|i|g|i|t|:|]|\+0#0000000#ffffff0| |[|^|[+0#0000001#ffff4012|:|l|o|w|e|r|:|]|!+0#0000000#ffffff0|[+0#0000001#ffff4012|:|u|p@1|e|r|:|]|]+0#00e0003#ffffff0|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@23
|
||||
|[+0#00e0003&|^+8#e000e06&|]+0#0000000&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|0+0#0000000#ffffff0|-|9|a|-|f|A|-|F|\| |[|!|[+0#0000001#ffff4012|:|l|o|w|e|r|:|]|^+0#0000000#ffffff0|[+0#0000001#ffff4012|:|u|p@1|e|r|:|]|]+0#00e0003#ffffff0|*+0#0000000&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@24
|
||||
|[+0#00e0003&|!+8#e000e06&|!+0#0000000&|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|!+8#e000e06&|!+0#0000000&|[|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|!+8#e000e06&|]+0#0000000&|!|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|!+8#e000e06&|^+0#0000000&|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|!+8#e000e06&|^+0#0000000&|[|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|!+8#e000e06&|]+0#0000000&|^|]+0#00e0003&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@27
|
||||
|[+0#00e0003&|^+8#e000e06&|!+0#0000000&|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|^+8#e000e06&|!+0#0000000&|[|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|^+8#e000e06&|]+0#0000000&|!|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|^+8#e000e06&|^+0#0000000&|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|^+8#e000e06&|^+0#0000000&|[|]+0#00e0003&| +0#0000000&||+0#af5f00255&| +0#0000000&|[+0#00e0003&|^+8#e000e06&|]+0#0000000&|^|]+0#00e0003&|)+0#af5f00255&| +0#0000000&|;+0#af5f00255&@1| +0#0000000&@27
|
||||
>e+0#af5f00255&|s|a|c| +0#0000000&@70
|
||||
@75
|
||||
|#+0#0000e05&| |M|a|t|c|h| |"|\|[|0|\|]|\|[|0|\|]|"|,| |"|{|0|}|{|0|}|"|,| |e|t|c|.| +0#0000000&@38
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@30
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|\| @65
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@38
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|\+0#0000000&| @64
|
||||
|[|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@39
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|\| @63
|
||||
|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@40
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|\| @62
|
||||
|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@41
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|\+0#0000000&| @61
|
||||
|[+0#00e0003&|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@42
|
||||
@57|1|2|7|,|1| @8|6|4|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_08.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_08.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|[+0#00e0003#ffffff0|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@42
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|\+0#0000000&| @60
|
||||
|0|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@43
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|\| @57
|
||||
|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@46
|
||||
>:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|\+0#0000000&| @56
|
||||
|*|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@47
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|\| @55
|
||||
|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@48
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|\| @53
|
||||
|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@50
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|\| @52
|
||||
|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@51
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|\+0#0000000&| @51
|
||||
|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@52
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|\+0#0000000&| @50
|
||||
|[|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@53
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|\| @49
|
||||
|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@54
|
||||
@57|1|4|5|,|1| @8|7|4|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_09.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_09.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|{+0&#ffffff0|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@54
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|\| @48
|
||||
|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@55
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|\+0#0000000&| @47
|
||||
|[+0#00e0003&|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@56
|
||||
>:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|\+0#0000000&| @46
|
||||
|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@57
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|\+0#0000000#ffffff0| @37
|
||||
|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@66
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|\+0#0000000&| @36
|
||||
|*|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@67
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|\| @35
|
||||
|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@68
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|\| @33
|
||||
|}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@70
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|\| @32
|
||||
|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@71
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|\+0#0000000&| @31
|
||||
|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@72
|
||||
@57|1|6|3|,|1| @8|8|3|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_10.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_10.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|}+0#e000e06#ffffff0|"+0#af5f00255&| +0#0000000&@72
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@26
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|\+0#0000000&| @34
|
||||
|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@65
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|\+0#0000000#ffffff0| @29
|
||||
>}|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@70
|
||||
|:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|*+0#0000000&|[+0#00e0003&|[+0#0000000&|{|]+0#00e0003&|[|0+0#0000000&|-|9|]+0#00e0003&|*+0#0000000&|[+0#00e0003&|]+0#0000000&|}|]+0#00e0003&|[|[+0#0000000&|{|]+0#00e0003&|[|[+0#0000001#ffff4012|:|d|i|g|i|t|:|]|]+0#00e0003#ffffff0|*+0#0000000&|[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|}+0#0000000#ffffff0|]+0#00e0003&|\+0#0000000&| @27
|
||||
|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@72
|
||||
@75
|
||||
|:| |*|[+0#00e0003&|x+0#0000000&|[+0#0000001#ffff4012|=|[|=|]|[|=|]|=|]|]+0#00e0003#ffffff0|;+0#0000000&| |:| |[+0#00e0003&|x+0#0000000&|[+0#0000001#ffff4012|=|]|=|]|[|=|[|=|]|]+0#00e0003#ffffff0|*+0#0000000&|;| |:| |*|[+0#00e0003&|x+0#0000000&|[+0#0000001#ffff4012|.|[|.|]|[|.|]|.|]|]+0#00e0003#ffffff0|;+0#0000000&| |:| |[+0#00e0003&|x+0#0000000&|[+0#0000001#ffff4012|.|]|.|]|[|.|[|.|]|]+0#00e0003#ffffff0|*+0#0000000&| @4
|
||||
|:| |*|[+0#00e0003&|[+0#0000001#ffff4012|=|[|=|]|x+0#0000000#ffffff0|[+0#0000001#ffff4012|=|]|=|]|]+0#00e0003#ffffff0|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000001#ffff4012|=|]|=|]|x+0#0000000#ffffff0|[+0#0000001#ffff4012|=|[|=|]|]+0#00e0003#ffffff0|*+0#0000000&|;| |:| |*|[+0#00e0003&|[+0#0000001#ffff4012|.|[|.|]|x+0#0000000#ffffff0|[+0#0000001#ffff4012|.|]|.|]|]+0#00e0003#ffffff0|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|x+0#0000000#ffffff0|[+0#0000001#ffff4012|.|[|.|]|]+0#00e0003#ffffff0|*+0#0000000&| @4
|
||||
|:| |*|[+0#00e0003&|[+0#0000001#ffff4012|=|[|=|]|[|=|]|=|]|x+0#0000000#ffffff0|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000001#ffff4012|=|]|=|]|[|=|[|=|]|x+0#0000000#ffffff0|]+0#00e0003&|*+0#0000000&|;| |:| |*|[+0#00e0003&|[+0#0000001#ffff4012|.|[|.|]|[|.|]|.|]|x+0#0000000#ffffff0|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000001#ffff4012|.|]|.|]|[|.|[|.|]|x+0#0000000#ffffff0|]+0#00e0003&|*+0#0000000&| @4
|
||||
|:| |[+0#00e0003&|!+8#e000e06&|]+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|^+8#e000e06&|]+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|!+8#e000e06&|[+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|^+8#e000e06&|[+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|!+8#e000e06&|\+0#0000000&|]|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|^+8#e000e06&|\+0#0000000&|]|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|!+8#e000e06&|\+0#0000000&|[|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|^+8#e000e06&|\+0#0000000&|[|]+0#00e0003&| +0#0000000&@8
|
||||
|:| |[+0#00e0003&|$+0#0000000&|'|\|x|5|b|'|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|$+0#0000000&|'|\|x|5|d|'|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|]+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|\+0#0000000&|]|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|\+0#0000000&|[|]+0#00e0003&| +0#0000000&@20
|
||||
|:| |[+0#00e0003&|$+0#0000000&|'|\|x|2|0|'|[|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|[+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|'+0#0000000&| |'|[|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|\+0#0000000&| |[|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|\+0#0000000&| |\|[|]+0#00e0003&|;+0#0000000&| |:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|[+0#00e0003&| +0#0000000&@2|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@7
|
||||
|:| |[+0#00e0003&|[+0#0000000&|$|'|\|x|2|0|'|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000000&|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000000&|'| |'|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|[+0#0000000&|\| |]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|\+0#0000000&|[|\| |]+0#00e0003&|;+0#0000000&| |:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|[+0#00e0003&| +0#0000000&@3|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@6
|
||||
|:| |[+0#00e0003&|^+8#e000e06&|$+0#0000000&|'|\|x|2|0|'|[|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|!+8#e000e06&|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|[+0#0000000&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|^+8#e000e06&|'+0#0000000&| |'|[|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|!+8#e000e06&|\+0#0000000&| |[|]+0#00e0003&|;+0#0000000&| |:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|[+0#00e0003&|^+8#e000e06&| +0#0000000&@7|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@7
|
||||
|:| |[+0#00e0003&|!+8#e000e06&|[+0#0000000&|$|'|\|x|2|0|'|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|^+8#e000e06&|[+0#0000000&|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|!+8#e000e06&|[+0#0000000&|'| |'|]+0#00e0003&|;+0#0000000&| |:| |[+0#00e0003&|^+8#e000e06&|[+0#0000000&|\| |]+0#00e0003&|;+0#0000000&| |:| |"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|[+0#00e0003&|!+8#e000e06&| +0#0000000&@8|]+0#00e0003&|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@6
|
||||
@75
|
||||
@57|1|8|1|,|1| @8|9|3|%|
|
||||
20
runtime/syntax/testdir/dumps/sh_12_11.dump
Normal file
20
runtime/syntax/testdir/dumps/sh_12_11.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
|n+0#00e0e07&|l|=+0#0000000&|'+0#af5f00255&| +0#0000000&@70
|
||||
|'+0#af5f00255&| +0#0000000&@73
|
||||
|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&@1|[+0#00e0003&|!+8#e000e06&|"+0#af5f00255&|$+0#e000e06&|{|n|l|}|"+0#af5f00255&|]+0#00e0003&|*+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&@1|[+0#00e0003&|!+8#e000e06&|'+0#0000000&|$|{|n|l|}|'|]+0#00e0003&|*+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@14
|
||||
|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&@1|[+0#00e0003&|!+8#e000e06&|\+0#0000000&|"|$|{|n|l|}|]+0#00e0003&|*+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&@1|[+0#00e0003&|!+8#e000e06&|\+0#0000000&|'|$|{|n|l|}|]+0#00e0003&|*+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@14
|
||||
>e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&@1|[+0#00e0003&|!+8#e000e06&|$+0#0000000&|{|n|l|}|\|"|]+0#00e0003&|*+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|{|1|#+0#af5f00255&|$+0#e000e06&|{|1|%+0#af5f00255&@1|[+0#00e0003&|!+8#e000e06&|$+0#0000000&|{|n|l|}|\|'|]+0#00e0003&|*+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@14
|
||||
@75
|
||||
|b+0#00e0e07&|i|n|s|=+0#0000000&|(+0#e000e06&|)|;+0#0000000&| |b+0#00e0e07&|i|n|s|=+0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&|1+0#e000002&|)+0#e000e06&|;+0#0000000&| |e+0#af5f00255&|v|a|l| +0#0000000&|b+0#00e0e07&|i|n|s|++0#0000000&|=|(+0#e000e06&|{|0+0#e000002&|.+0#0000000&@1|1+0#e000002&|}+0#e000e06&|)| +0#0000000&@34
|
||||
|b+0#00e0e07&|i|n|s|[+0#e000e06&|0+0#e000002&|]+0#e000e06&|=+0#0000000&|0+0#e000002&|;+0#0000000&| |b+0#00e0e07&|i|n|s|[+0#e000e06&|1+0#e000002&|]+0#e000e06&|=+0#0000000&|1+0#e000002&|;+0#0000000&| |e+0#af5f00255&|v|a|l| +0#0000000&|b+0#00e0e07&|i|n|s|++0#0000000&|=|(+0#e000e06&|\+0#0000000&|$+0#e000e06&|{|b|i|n|s|[|{|1+0#e000002&|.+0#0000000&@1|0+0#e000002&|}+0#e000e06&|]|}|)|;+0#0000000&| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|b|i|n|s|[+0#e000e06&|3+0#e000002&|]+0#e000e06&| +0#00e0e07&|b|i|n|s|[+0#e000e06&|2+0#e000002&|]+0#e000e06&| +0#0000000&
|
||||
|b+0#00e0e07&|i|n|s|=+0#0000000&|(+0#e000e06&|[+0#00e0e07&|8+0#e000002&|#|0|]+0#00e0e07&|=+0#0000000&|$+0#e000e06&|(@1|2+0#e000002&|#|1|0@1|)+0#e000e06&@1| +0#0000000&|[+0#00e0e07&|$+0#e000e06&|(@1|8+0#e000002&|#|1|)+0#e000e06&@1|]+0#00e0e07&|=+0#0000000&|$+0#e000e06&|(@1|2+0#e000002&|#|1|0|)+0#e000e06&@1| +0#0000000&|[+0#00e0e07&|3+0#e000002&|]+0#00e0e07&|=+0#0000000&|$+0#e000e06&|{|b|i|n|s|[|2+0#e000002&|#|1|]+0#e000e06&|}| +0#0000000&|$+0#e000e06&|{|b|i|n|s|[|0+0#e000002&|]+0#e000e06&|}|)| +0#0000000&@2
|
||||
|(+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|s|u|m|[+0#e000e06&|$|(@1|b|i|n|s|[|1+0#e000002&|6|#|3|]+0#e000e06&| |+| |b|i|n|s|[|8+0#e000002&|#|2|]+0#e000e06&| |+| |b|i|n|s|[|2+0#e000002&|#|1|]+0#e000e06&| |+| |b|i|n|s|[|0+0#e000002&|]+0#e000e06&|)@1|]|)| +0#0000000&@13
|
||||
|e+0#af5f00255&|v|a|l| +0#0000000&|u+0#af5f00255&|n|s|e|t| +0#00e0e07&|b|i|n|s|[+0#e000e06&|{|0+0#e000002&|.+0#0000000&@1|$+0#e000e06&|(@1|$|{|#|b|i|n|s|[|*+0#0000000&|]+0#e000e06&|}| |-| |1+0#e000002&|)+0#e000e06&@1|}|]| +0#0000000&@32
|
||||
|:| @73
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|1|9@1|,|1| @8|B|o|t|
|
||||
@@ -16,5 +16,5 @@
|
||||
@75
|
||||
|"+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |o|n|l|y| +0#0000000&@56
|
||||
@75
|
||||
|:|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@65
|
||||
|:|a|b|s|t|r|a|c|t| @65
|
||||
@57|1@1|7|1|,|1| @7|9|7|%|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|:+0&#ffffff0|a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@65
|
||||
|:+0&#ffffff0|a|b|s|t|r|a|c|t| @65
|
||||
|:|c|l|a|s@1| @68
|
||||
|:|e|n|d|c|l|a|s@1| @65
|
||||
|:|e|n|d|i|n|t|e|r|f|a|c|e| @61
|
||||
@@ -12,7 +12,7 @@
|
||||
|:|t|y|p|e| @69
|
||||
|:|v+0#af5f00255&|a|r| +0#0000000&@70
|
||||
@75
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|s|t|r|a|c|t| +0#0000000&@58
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a|b|s|t|r|a|c|t| @58
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c|l|a|s@1| @61
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|c|l|a|s@1| @58
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e|n|d|e|n|u|m| @59
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user