mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-05-28 00:21:57 +02:00
Compare commits
151 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e7808c296 | |||
| 3710248dbc | |||
| af567e9eb0 | |||
| 08e946fa19 | |||
| 27f5136761 | |||
| e3fed4828c | |||
| 106899eb21 | |||
| 52fd867f5e | |||
| 4418041698 | |||
| 3af0a8d8f5 | |||
| 08a83a033a | |||
| e700ddeea4 | |||
| 911742a975 | |||
| d5218a81b4 | |||
| 7402362114 | |||
| 7861c788f0 | |||
| f4680b8f79 | |||
| 9b30caf13d | |||
| 460dffeb9f | |||
| 4af622dfd6 | |||
| d6e3c9048d | |||
| 07f0dbe3aa | |||
| ee1a24b21d | |||
| 44c1c04ddb | |||
| 5647c91355 | |||
| 778ada48fb | |||
| b34a688ba0 | |||
| 68ba6c2c6c | |||
| 5887cce1d7 | |||
| b5f463ce4f | |||
| 44831e4bea | |||
| c0f0e2380e | |||
| 27822a0441 | |||
| 8969ff8787 | |||
| 25b448f236 | |||
| 3f60114236 | |||
| 8bac9064f7 | |||
| aaf55031bf | |||
| e67eff2e24 | |||
| b6c900be9c | |||
| faf4112cdc | |||
| 73d8222b31 | |||
| 961c25235b | |||
| fa4f21c122 | |||
| d4f3eca4ee | |||
| 0b82a98ba9 | |||
| 347d8c7327 | |||
| dd1a253df4 | |||
| e2f0b2421e | |||
| bf7c88d852 | |||
| e70587dbdb | |||
| 977561a719 | |||
| d7deeffe11 | |||
| 407319fe89 | |||
| 2c47ab8fcd | |||
| c0b7ca406b | |||
| 4f010c90bd | |||
| 8f3277fbbe | |||
| a9c06429ac | |||
| 6eea0b8931 | |||
| b6dbf0540a | |||
| 712e067015 | |||
| 88ce0c546b | |||
| 7e89800988 | |||
| f0ed0e6f63 | |||
| db26a3b1ac | |||
| 5881828104 | |||
| 8cc725e927 | |||
| bfc7719e48 | |||
| 40891bac5d | |||
| 35e02af7bf | |||
| 1aa287e048 | |||
| 54d7f18c38 | |||
| e3647c8bf5 | |||
| c5654b8448 | |||
| 97baa1cfe8 | |||
| 7de6b1bb56 | |||
| 68d0858892 | |||
| f30eb4a170 | |||
| 3cfac59f92 | |||
| 2e4361bd40 | |||
| ec7a4e4d69 | |||
| aae1bfbdb9 | |||
| 6f14ef4b0b | |||
| 934d9ab3a2 | |||
| 645a4288e2 | |||
| 76bdb82527 | |||
| 746fe54d4f | |||
| b7147f8236 | |||
| a35040f795 | |||
| a17f8bfb28 | |||
| a6d5778d9b | |||
| 252a1330da | |||
| 16b2af7aa7 | |||
| a3a185c309 | |||
| 024706611d | |||
| a41dfcd55b | |||
| 9c8f9b10fc | |||
| a5e03f68a8 | |||
| b69cd52447 | |||
| cde8ff63e2 | |||
| f50d5364d7 | |||
| dc49d725a7 | |||
| 767ffc4eef | |||
| 5c462e7cbc | |||
| 34e1e8de91 | |||
| f7cb9f9280 | |||
| 9162e2c802 | |||
| 4a530a632b | |||
| 449c2e5454 | |||
| 23da16d3d0 | |||
| ccd7f454fc | |||
| 04d2a3fdc0 | |||
| edf0f7db28 | |||
| 001c26cd61 | |||
| e0a2ab397f | |||
| cbc1f409c1 | |||
| 44a21351a8 | |||
| 2101230f40 | |||
| ac134634d3 | |||
| d04d99de73 | |||
| 7b4df97ece | |||
| 1ca0a976db | |||
| dbdc27d0f8 | |||
| 3a621188ee | |||
| c078675ac7 | |||
| b32800f7c5 | |||
| 3219da514c | |||
| 7c930eb61a | |||
| 195fcc90d0 | |||
| c22b4df9e7 | |||
| 85e3f24bea | |||
| d7f5854fcc | |||
| bfb4eea786 | |||
| fe0a9a3269 | |||
| 8297e2cee3 | |||
| 6d6ec2ee05 | |||
| edd4ac3e89 | |||
| ec961b05dc | |||
| 766801295d | |||
| a5d19aa44d | |||
| 04cc897593 | |||
| db23436b92 | |||
| 279dd703e1 | |||
| fb49e3cde7 | |||
| c729d6d154 | |||
| d65aa1bbdb | |||
| 509a8d58f9 | |||
| 99181205c5 | |||
| 3acfbb4b54 | |||
| 08ea2e1fb0 |
@@ -153,6 +153,7 @@ runtime/ftplugin/debchangelog.vim @jamessan
|
||||
runtime/ftplugin/debcontrol.vim @jamessan
|
||||
runtime/ftplugin/debsources.vim @jamessan
|
||||
runtime/ftplugin/desktop.vim @e-kwsm
|
||||
runtime/ftplugin/dnsmasq.vim @dringsim
|
||||
runtime/ftplugin/dosbatch.vim @mrdubya
|
||||
runtime/ftplugin/editorconfig.vim @ribru17
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
@@ -160,6 +161,7 @@ runtime/ftplugin/elixir.vim @mhanberg
|
||||
runtime/ftplugin/erlang.vim @hcs42
|
||||
runtime/ftplugin/eruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/expect.vim @dkearns
|
||||
runtime/ftplugin/exports.vim @mperry2
|
||||
runtime/ftplugin/fennel.vim @gpanders
|
||||
runtime/ftplugin/fetchmail.vim @dkearns
|
||||
runtime/ftplugin/forth.vim @jkotlinski
|
||||
@@ -267,6 +269,7 @@ runtime/ftplugin/routeros.vim @zainin
|
||||
runtime/ftplugin/rst.vim @marshallward
|
||||
runtime/ftplugin/ruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/rust.vim @lilyball
|
||||
runtime/ftplugin/samba.vim @mperry2
|
||||
runtime/ftplugin/sass.vim @tpope
|
||||
runtime/ftplugin/scala.vim @derekwyatt
|
||||
runtime/ftplugin/scheme.vim @evhan
|
||||
@@ -404,6 +407,7 @@ runtime/keymap/armenian-eastern_utf-8.vim @blinskey
|
||||
runtime/keymap/armenian-western_utf-8.vim @blinskey
|
||||
runtime/keymap/russian-typograph.vim @RestorerZ
|
||||
runtime/keymap/tamil_tscii.vim @yegappan
|
||||
runtime/keymap/ukrainian-enhanced.vim @Dolfost
|
||||
runtime/lang/menu_en_gb.latin1.vim @mrdubya
|
||||
runtime/lang/menu_ru_ru.cp1251.vim @RestorerZ
|
||||
runtime/lang/menu_ru_ru.koi8-r.vim @RestorerZ
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
name: MacVim GitHub CI
|
||||
|
||||
# Main CI workflow for MacVim. Will build and test MacVim on different platforms.
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
@@ -11,60 +13,21 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
MACOSX_DEPLOYMENT_TARGET: '10.13'
|
||||
MACOSX_DEPLOYMENT_TARGET_LEGACY: '10.9'
|
||||
|
||||
MACVIM_ARCHS: "x86_64 arm64" # Universal app for Intel/Apple Silicon
|
||||
MACVIM_ARCHS_LEGACY: "x86_64" # Legacy builds only need to build x86-64 because Apple Silicon can't run on these old OSes
|
||||
|
||||
CC: clang
|
||||
|
||||
MAKE_BUILD_ARGS: LINK_AS_NEEDED=yes # In macOS we never over-specify link dependencies and we already check against external deps in smoketest. With LTO, linking takes a while, so we want to avoid using link.sh.
|
||||
|
||||
VERSIONER_PERL_VERSION: '5.34' # macOS default Perl installation uses this to determine which one to use
|
||||
|
||||
vi_cv_path_python: /Library/Frameworks/Python.framework/Versions/2.7/bin/python
|
||||
vi_cv_path_python3: "%s/bin/python3"
|
||||
vi_cv_path_plain_lua: "%s/bin/lua"
|
||||
vi_cv_path_ruby: "%s/opt/ruby/bin/ruby"
|
||||
vi_cv_dll_name_perl: /System/Library/Perl/%s/darwin-thread-multi-2level/CORE/libperl.dylib
|
||||
vi_cv_dll_name_python: /Library/Frameworks/Python.framework/Versions/2.7/Python
|
||||
vi_cv_dll_name_python3: /usr/local/Frameworks/Python.framework/Versions/Current/Python
|
||||
vi_cv_dll_name_python3_arm64: /opt/homebrew/Frameworks/Python.framework/Versions/Current/Python
|
||||
vi_cv_dll_name_ruby: /usr/local/opt/ruby/lib/libruby.dylib
|
||||
vi_cv_dll_name_ruby_arm64: /opt/homebrew/opt/ruby/lib/libruby.dylib
|
||||
vi_cv_dll_name_lua: /usr/local/lib/liblua.dylib
|
||||
vi_cv_dll_name_lua_arm64: /opt/homebrew/lib/liblua.dylib
|
||||
|
||||
MACVIM_APP: src/MacVim/build/Release/MacVim.app
|
||||
VIM_BIN: src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
|
||||
MACVIM_BIN: src/MacVim/build/Release/MacVim.app/Contents/MacOS/MacVim
|
||||
|
||||
TERM: xterm
|
||||
BASH_SILENCE_DEPRECATION_WARNING: 1
|
||||
|
||||
jobs:
|
||||
# Builds and test MacVim
|
||||
build-and-test:
|
||||
|
||||
# Test on macOS 11.x / 12.x, and also older versions of Xcode for compatibility testing.
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# # Oldest version of Xcode supported on GitHub Action to test source code backwards compatibility
|
||||
# # This version of Xcode can run on macOS 11 where as 13.3 has to run on macOS 12.
|
||||
# - os: macos-12
|
||||
# xcode: '13.2.1'
|
||||
# extra: [vimtags, check-xcodeproj-compat]
|
||||
#
|
||||
# # Older version of Xcode, and used to publish legacy builds (for macOS 10.9 - 10.12)
|
||||
# - os: macos-12
|
||||
# xcode: '14.0' # last version of Xcode that uses the macOS 12 SDK, which still supports deploying to macOS 10.9
|
||||
# publish: true
|
||||
# legacy: true
|
||||
# publish_postfix: '_10.9'
|
||||
# Self-hosted runner with old enough software (Xcode 14.0.1) to be
|
||||
# able to make legacy builds. We only run this when making a full
|
||||
# release build.
|
||||
- os: macos-13-xcode14-self-hosted
|
||||
publish: true
|
||||
publish_postfix: '_10.9'
|
||||
skip: ${{ ! startswith(github.ref, 'refs/tags/release') }}
|
||||
legacy: true
|
||||
|
||||
- os: macos-13
|
||||
xcode: '15.2'
|
||||
@@ -75,7 +38,6 @@ jobs:
|
||||
- os: macos-14
|
||||
xcode: '15.4'
|
||||
testgui: false
|
||||
optimized: true
|
||||
|
||||
# Most up to date OS and Xcode. Used to publish release for the main build.
|
||||
- os: macos-15
|
||||
@@ -84,346 +46,14 @@ jobs:
|
||||
publish: true
|
||||
optimized: true
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up legacy build
|
||||
if: matrix.legacy
|
||||
run: |
|
||||
# Set the correct build env vars to target the correct architectures and min OS targets.
|
||||
echo "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET_LEGACY" >> $GITHUB_ENV
|
||||
echo "MACVIM_ARCHS=$MACVIM_ARCHS_LEGACY" >> $GITHUB_ENV
|
||||
|
||||
# Use Sparkle 1 because Sparkle 2 requires newer OS version than our legacy build.
|
||||
# Later, we pass the --enable-sparkle_1 flag to configure to set the corresponding ifdef.
|
||||
ln -fhs Sparkle_1.framework src/MacVim/Sparkle.framework
|
||||
|
||||
# Sparkle shows a dialog asking if the user wants to check for updates on 2nd launch of
|
||||
# MacVim. On Sparkle 1 this is annoyingly a modal dialog box and interferes with tests.
|
||||
# Just disable it by pre-setting to not check for updates.
|
||||
defaults write org.vim.MacVim SUEnableAutomaticChecks 0
|
||||
|
||||
- name: Set up Xcode
|
||||
if: matrix.xcode != ''
|
||||
run: |
|
||||
sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
|
||||
xcode-select -p
|
||||
xcodebuild -version
|
||||
|
||||
# Set up, install, and cache gettext library for localization.
|
||||
#
|
||||
- name: Set up gettext
|
||||
if: matrix.publish
|
||||
uses: ./.github/actions/universal-package
|
||||
with:
|
||||
formula: gettext
|
||||
contents: lib/libintl.a,lib/libintl.dylib
|
||||
|
||||
# Set up, install, and cache libsodium library for encryption.
|
||||
|
||||
- name: Set up libsodium
|
||||
if: matrix.publish
|
||||
uses: ./.github/actions/universal-package
|
||||
with:
|
||||
formula: libsodium
|
||||
contents: lib/libsodium.a,lib/libsodium.dylib
|
||||
|
||||
# Set up remaining packages and tools
|
||||
|
||||
- name: Install packages
|
||||
run: |
|
||||
brew install --quiet libtool
|
||||
|
||||
- name: Install packages for testing
|
||||
run: |
|
||||
# Apple diff is broken. Use GNU diff instead. See http://github.com/vim/vim/issues/14056.
|
||||
brew install --quiet diffutils
|
||||
|
||||
- name: Grant microphone access for macos-14
|
||||
if: matrix.os == 'macos-14'
|
||||
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);"
|
||||
|
||||
- name: Install scripting runtimes
|
||||
if: matrix.publish
|
||||
run: |
|
||||
# We no longer need to install/update Python 3, as it's guaranteed to
|
||||
# be installed on runners. Since we use stable ABI, the exact version
|
||||
# on CI does not matter.
|
||||
|
||||
brew install --quiet ruby
|
||||
brew install --quiet lua
|
||||
|
||||
if [[ -d $(brew --prefix)/Cellar/perl ]]; then
|
||||
# We just use system perl to reduce dependencies
|
||||
brew unlink perl
|
||||
fi
|
||||
|
||||
echo "vi_cv_path_python3=$(printf $vi_cv_path_python3 $(brew --prefix))" >> $GITHUB_ENV
|
||||
echo "vi_cv_path_plain_lua=$(printf $vi_cv_path_plain_lua $(brew --prefix))" >> $GITHUB_ENV
|
||||
echo "vi_cv_path_ruby=$(printf $vi_cv_path_ruby $(brew --prefix))" >> $GITHUB_ENV
|
||||
|
||||
# With Perl, we need to manually specify the version number because the dylib path depends on it.
|
||||
echo "vi_cv_dll_name_perl=$(printf $vi_cv_dll_name_perl $VERSIONER_PERL_VERSION)" >> $GITHUB_ENV
|
||||
|
||||
# New runner images (macos-13) no longer have Python2 installed. We
|
||||
# need to install Python2 manually. Installing from the official
|
||||
# installer is the easiest way as Homebrew no longer ships python@2
|
||||
# and this way does not invole manual building from source. We
|
||||
# mostly only need the headers to build a dynamic build anyway.
|
||||
#
|
||||
# This will be removed in the future as Python2 has been completely
|
||||
# unsupported for years.
|
||||
curl https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg -o ~/Downloads/python-2.7.18-macosx10.9.pkg
|
||||
sudo installer -pkg ~/Downloads/python-2.7.18-macosx10.9.pkg -target /
|
||||
|
||||
# All set up steps are done. Build and test MacVim below.
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
CONFOPT=(
|
||||
--with-local-dir=$(brew --prefix)
|
||||
--with-features=huge
|
||||
--enable-netbeans
|
||||
--with-tlib=ncurses
|
||||
--enable-cscope
|
||||
--enable-gui=macvim
|
||||
--with-compiledby="GitHub Actions"
|
||||
)
|
||||
if ${{ matrix.publish == true }}; then
|
||||
CONFOPT+=(
|
||||
--enable-perlinterp=dynamic
|
||||
--enable-pythoninterp=dynamic
|
||||
--enable-python3interp=dynamic
|
||||
--with-python3-stable-abi=3.9 # macOS and Xcode currently ships 3.9, so we don't want go higher than that.
|
||||
--enable-rubyinterp=dynamic
|
||||
--enable-luainterp=dynamic
|
||||
--with-lua-prefix=$(brew --prefix)
|
||||
--with-macarchs="$MACVIM_ARCHS"
|
||||
)
|
||||
else
|
||||
CONFOPT+=(
|
||||
--disable-sparkle # Disable Sparkle for testing that this flag builds and works
|
||||
--enable-nls=no --enable-libsodium=no # Disable gettext and libsodium unless we built them ourselves for publish
|
||||
)
|
||||
fi
|
||||
if ${{ matrix.legacy == true }}; then
|
||||
CONFOPT+=(
|
||||
--enable-sparkle_1
|
||||
)
|
||||
fi
|
||||
echo "CONFOPT: ${CONFOPT[@]}"
|
||||
|
||||
./configure "${CONFOPT[@]}" --enable-fail-if-missing
|
||||
|
||||
sed -i.bak -f ci/config.mk.sed -f ci/config.mk.clang.sed -f ci/config.mk.xcode.sed src/auto/config.mk
|
||||
if clang --version | grep -qs '^Apple clang version \(1[3-9]\|[2-9]\d\)\.'; then
|
||||
sed -i.bak -f ci/config.mk.clang-12.sed src/auto/config.mk
|
||||
fi
|
||||
|
||||
if ${{ matrix.optimized == true }}; then
|
||||
# Additional optimizations like link-time optimizations that are a bit slower to build.
|
||||
sed -i.bak -f ci/config.mk.optimized.sed src/auto/config.mk
|
||||
fi
|
||||
|
||||
- name: Modify configure result
|
||||
if: matrix.publish
|
||||
run: |
|
||||
# Ruby is keg-only in Homebrew, so need to manually link in the path so Vim will know where to look for the binaries.
|
||||
perl -p -i -e "s#(?<=-DDYNAMIC_RUBY_DLL=\\\\\").*?(?=\\\\\")#${vi_cv_dll_name_ruby}#" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_PERL_DLL=\\\\\"${vi_cv_dll_name_perl}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_PYTHON_DLL=\\\\\"${vi_cv_dll_name_python}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_PYTHON3_DLL=\\\\\"${vi_cv_dll_name_python3}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_RUBY_DLL=\\\\\"${vi_cv_dll_name_ruby}\\\\\"" src/auto/config.mk
|
||||
|
||||
# Also search for the arm64 overrides for the default library locations, which are different from x86_64
|
||||
# because Homebrew puts them at a different place.
|
||||
grep -q -- "-DDYNAMIC_PYTHON3_DLL_ARM64=\\\\\"${vi_cv_dll_name_python3_arm64}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_RUBY_DLL_ARM64=\\\\\"${vi_cv_dll_name_ruby_arm64}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_LUA_DLL_ARM64=\\\\\"${vi_cv_dll_name_lua_arm64}\\\\\"" src/auto/config.mk
|
||||
|
||||
- name: Show configure output
|
||||
run: |
|
||||
cat src/auto/config.mk
|
||||
cat src/auto/config.h
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
LC_ALL: C
|
||||
run: |
|
||||
NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
echo "Building MacVim with ${NPROC} cores"
|
||||
|
||||
set -o verbose
|
||||
make ${MAKE_BUILD_ARGS} -j${NPROC}
|
||||
|
||||
- name: Check version
|
||||
run: |
|
||||
${VIM_BIN} --version
|
||||
${VIM_BIN} -u NONE -i NONE --not-a-term -esNX -V1 -c 'echo "\nprof_nsec:" .. has("prof_nsec") .. "\n"' -c quit
|
||||
${VIM_BIN} -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
${VIM_BIN} -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
|
||||
- name: Smoketest
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
# Make sure there isn't any dynamic linkage to third-party dependencies in the built binary, as we should only use
|
||||
# static linkage to avoid dependency hell. Test that all those dylib's are in /usr/lib which is bundled with macOS and not third-party.
|
||||
if otool -L ${VIM_BIN} | grep '\.dylib\s' | grep -v '^\s*/usr/lib/'; then
|
||||
echo 'Found external dynamic linkage!'; false
|
||||
fi
|
||||
|
||||
# Make sure that --disable-sparkle flag will properly exclude all references to Sparkle symbols. This is
|
||||
# necessary because we still use weak linking to Sparkle when that flag is set and so references to Sparkle
|
||||
# wouldn't fail the build (we just remove Sparkle.framework from the built app after the fact).
|
||||
if ${{ matrix.publish == false }}; then
|
||||
# Currently we pass --disable-sparkle flag when publish==false
|
||||
if objdump -t ${MACVIM_BIN} | grep "_SPU\|_SUUpdate"; then
|
||||
echo 'Found references to Sparkle even when using --disable-sparkle'; false
|
||||
fi
|
||||
fi
|
||||
|
||||
# Make sure man pages were bundled
|
||||
man -M `pwd`/${MACVIM_APP}/Contents/man -w mvim
|
||||
|
||||
# Make sure xxd was bundled
|
||||
echo "AB" | ${MACVIM_APP}/Contents/bin/xxd | grep "4142"
|
||||
|
||||
- name: Smoketest (publish)
|
||||
if: matrix.publish
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
macvim_excmd() {
|
||||
${VIM_BIN} -u NONE -i NONE -g -f -X -V1 -es "$@" -c 'echo ""' -c 'qall!' 2>&1
|
||||
}
|
||||
|
||||
# Smoketest scripting languages
|
||||
macvim_excmd -c 'lua print("Test")' | grep Test
|
||||
macvim_excmd -c 'perl VIM::Msg("Test")' | grep Test
|
||||
macvim_excmd -c 'py3 print("Test")' | grep Test
|
||||
macvim_excmd -c 'ruby puts("Test")' | grep Test
|
||||
|
||||
if [[ "$(uname -m)" == "x86_64" ]]; then
|
||||
macvim_excmd -c 'py print "x86 Test"' | grep Test
|
||||
else
|
||||
# Python2 doesn't work in Apple Silicon, test under Rosetta
|
||||
(VIM_BIN="arch -x86_64 ${VIM_BIN}"; macvim_excmd -c 'py print "rosetta Test"' | grep Test)
|
||||
fi
|
||||
|
||||
# Check that localized messages work by printing ':version' and checking against localized word
|
||||
macvim_excmd -c 'lang es_ES' -c 'version' | grep Enlazado
|
||||
|
||||
# Check that libsodium is working
|
||||
macvim_excmd -c 'set cryptmethod=xchacha20v2'
|
||||
|
||||
# Make sure we are building universal x86_64 / arm64 builds and didn't accidentally create a thin app.
|
||||
check_arch() {
|
||||
local archs=($(lipo -archs "$1"))
|
||||
if [[ ${archs[@]} != "$MACVIM_ARCHS" ]]; then
|
||||
echo "Wrong arch(s) in $1: ${archs[@]}"; false
|
||||
else
|
||||
lipo -info "$1"
|
||||
fi
|
||||
}
|
||||
check_arch "${VIM_BIN}"
|
||||
check_arch "${MACVIM_BIN}"
|
||||
|
||||
- name: Check Vim help tags
|
||||
if: contains(matrix.extra, 'vimtags')
|
||||
run: |
|
||||
# Confirm that we can build the help tags, and they match what's in source.
|
||||
make -C runtime/doc vimtags VIMEXE=../../${VIM_BIN}
|
||||
git diff --exit-code -- runtime/doc/tags
|
||||
|
||||
- name: Check Xcode project compatibility version
|
||||
if: contains(matrix.extra, 'check-xcodeproj-compat')
|
||||
run: |
|
||||
# Confirm that the compatibility version of xcodeproj is correct and not outdated.
|
||||
rm -rf src/MacVim/MacVim_xcode8.xcodeproj
|
||||
make -C src macvim-xcodeproj-compat
|
||||
if ! git diff --exit-code -- src/MacVim/MacVim_xcode8.xcodeproj; then
|
||||
echo 'MacVim_xcode8.xcodeproj is outdated. Run "make -C src macvim-xcodeproj-compat" to re-generate it.'; false
|
||||
fi
|
||||
|
||||
- name: Test MacVim
|
||||
id: test_macvim
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
make ${MAKE_BUILD_ARGS} -C src macvim-tests
|
||||
|
||||
- name: Upload failed MacVim test results
|
||||
if: ${{ !cancelled() && failure() && steps.test_macvim.conclusion == 'failure' }}
|
||||
uses: ./.github/actions/test_macvim_artifacts
|
||||
|
||||
- name: Build Vim test binaries
|
||||
run: |
|
||||
# Build the unit test binaries first. With link-time-optimization they take some time to link. Running them
|
||||
# separately de-couples them from the timeout in tests, and allow us to build in parallel jobs (since tests
|
||||
# can't run in parallel).
|
||||
NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
|
||||
set -o verbose
|
||||
make ${MAKE_BUILD_ARGS} -j${NPROC} -C src unittesttargets
|
||||
|
||||
- name: Test Vim
|
||||
if: startsWith(github.ref, 'refs/tags/') || !matrix.testgui
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
defaults delete org.vim.MacVim # Clean up stale states
|
||||
# Currently we don't run any non-src tests, as syntax tests are fragile and prone to spamming escape codes.
|
||||
# This needs to be investigated and fixed upstream.
|
||||
# MacVim is unlikely to introduce breaking changes in runtime files anyway.
|
||||
make ${MAKE_BUILD_ARGS} -C src test
|
||||
|
||||
- name: Test Vim (GUI)
|
||||
if: startsWith(github.ref, 'refs/tags/') || matrix.testgui
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
defaults delete org.vim.MacVim # Clean up stale states
|
||||
make ${MAKE_BUILD_ARGS} -C src/testdir clean
|
||||
make ${MAKE_BUILD_ARGS} -C src testgui
|
||||
|
||||
- name: Upload failed test files
|
||||
if: ${{ !cancelled() && failure() }}
|
||||
uses: ./.github/actions/test_artifacts
|
||||
|
||||
- name: Build MacVim dmg image
|
||||
if: matrix.publish && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master')
|
||||
run: |
|
||||
# Use the --skip-jenkins flag to skip the prettify osascript calls which could fail due to permission issues in
|
||||
# CI environment.
|
||||
if ${{ matrix.legacy == true }}; then
|
||||
make -C src macvim-dmg-legacy
|
||||
else
|
||||
make -C src macvim-dmg
|
||||
fi
|
||||
|
||||
if ${{ matrix.publish_postfix != '' }}; then
|
||||
mv src/MacVim/build/Release/MacVim.dmg src/MacVim/build/Release/MacVim${{ matrix.publish_postfix }}.dmg
|
||||
fi
|
||||
|
||||
# Upload the dmg installer only when making tagged release or making a dev build from a master branch.
|
||||
# Note that this doesn't create a GitHub release for us, because we would prefer to do it manually, for two
|
||||
# reasons: 1) signing / notarization are currently done out of CI, 2) we want to manually format our release notes
|
||||
# and add pictures to make them look nice.
|
||||
- name: Upload MacVim image
|
||||
if: matrix.publish && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master')
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: MacVim${{ matrix.publish_postfix }}.dmg
|
||||
path: src/MacVim/build/Release/MacVim${{ matrix.publish_postfix }}.dmg
|
||||
|
||||
# If doing a tagged release, use repository-specified number of retention days (usually 90 days) to make it
|
||||
# easier to audit. (specify "0" to indicate using repository settings)
|
||||
#
|
||||
# Otherwise, we are just doing a dev build for potential testing, just use a maximum of 21 days as we don't
|
||||
# tend to need these for long.
|
||||
retention-days: ${{ startsWith(github.ref, 'refs/tags/') && 0 || (github.retention_days > 21 && 21 || 0) }}
|
||||
uses: ./.github/workflows/macvim-buildtest.yaml
|
||||
with:
|
||||
skip: ${{ matrix.skip && true || false }}
|
||||
os: ${{ matrix.os }}
|
||||
legacy: ${{ matrix.legacy && true || false }}
|
||||
xcode: ${{ matrix.xcode }}
|
||||
publish: ${{ matrix.publish && true || false }}
|
||||
publish_postfix: ${{ matrix.publish_postfix }}
|
||||
optimized: ${{ matrix.optimized && true || false }}
|
||||
vimtags: ${{ contains(matrix.extra, 'vimtags') }}
|
||||
check-xcodeproj-compat: ${{ contains(matrix.extra, 'check-xcodeproj-compat') }}
|
||||
|
||||
@@ -0,0 +1,416 @@
|
||||
name: MacVim Build and Test
|
||||
|
||||
# Child workflow to be called by other workflows for building/testing MacVim
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
skip:
|
||||
type: boolean
|
||||
os:
|
||||
type: string
|
||||
legacy:
|
||||
type: boolean
|
||||
xcode:
|
||||
type: string
|
||||
publish:
|
||||
type: boolean
|
||||
publish_postfix:
|
||||
type: string
|
||||
optimized:
|
||||
type: boolean
|
||||
vimtags:
|
||||
type: boolean
|
||||
check-xcodeproj-compat:
|
||||
type: boolean
|
||||
|
||||
env:
|
||||
MACOSX_DEPLOYMENT_TARGET: '10.13'
|
||||
MACOSX_DEPLOYMENT_TARGET_LEGACY: '10.9'
|
||||
|
||||
MACVIM_ARCHS: "x86_64 arm64" # Universal app for Intel/Apple Silicon
|
||||
MACVIM_ARCHS_LEGACY: "x86_64 arm64" # Build universal for legacy too, mostly just to make building/testing on Apple Silicon CI work. In reality all Apple Silicon Macs shoud use non-legacy.
|
||||
|
||||
CC: clang
|
||||
|
||||
MAKE_BUILD_ARGS: LINK_AS_NEEDED=yes # In macOS we never over-specify link dependencies and we already check against external deps in smoketest. With LTO, linking takes a while, so we want to avoid using link.sh.
|
||||
|
||||
vi_cv_path_python: /Library/Frameworks/Python.framework/Versions/2.7/bin/python
|
||||
vi_cv_path_python3: "%s/bin/python3"
|
||||
vi_cv_path_plain_lua: "%s/bin/lua"
|
||||
vi_cv_path_ruby: "%s/opt/ruby/bin/ruby"
|
||||
vi_cv_dll_name_perl: /System/Library/Perl/%s/darwin-thread-multi-2level/CORE/libperl.dylib
|
||||
vi_cv_dll_name_python: /Library/Frameworks/Python.framework/Versions/2.7/Python
|
||||
vi_cv_dll_name_python3: /usr/local/Frameworks/Python.framework/Versions/Current/Python
|
||||
vi_cv_dll_name_python3_arm64: /opt/homebrew/Frameworks/Python.framework/Versions/Current/Python
|
||||
vi_cv_dll_name_ruby: /usr/local/opt/ruby/lib/libruby.dylib
|
||||
vi_cv_dll_name_ruby_arm64: /opt/homebrew/opt/ruby/lib/libruby.dylib
|
||||
vi_cv_dll_name_lua: /usr/local/lib/liblua.dylib
|
||||
vi_cv_dll_name_lua_arm64: /opt/homebrew/lib/liblua.dylib
|
||||
|
||||
MACVIM_APP: src/MacVim/build/Release/MacVim.app
|
||||
VIM_BIN: src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
|
||||
MACVIM_BIN: src/MacVim/build/Release/MacVim.app/Contents/MacOS/MacVim
|
||||
|
||||
TERM: xterm
|
||||
BASH_SILENCE_DEPRECATION_WARNING: 1
|
||||
|
||||
jobs:
|
||||
# Builds and test MacVim
|
||||
build-and-test:
|
||||
if: ${{ !inputs.skip }}
|
||||
runs-on: ${{ inputs.os }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up legacy build
|
||||
if: inputs.legacy
|
||||
run: |
|
||||
# Set the correct build env vars to target the correct architectures and min OS targets.
|
||||
echo "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET_LEGACY" >> $GITHUB_ENV
|
||||
echo "MACVIM_ARCHS=$MACVIM_ARCHS_LEGACY" >> $GITHUB_ENV
|
||||
|
||||
# Use Sparkle 1 because Sparkle 2 requires newer OS version than our legacy build.
|
||||
# Later, we pass the --enable-sparkle_1 flag to configure to set the corresponding ifdef.
|
||||
ln -fhs Sparkle_1.framework src/MacVim/Sparkle.framework
|
||||
|
||||
# Sparkle shows a dialog asking if the user wants to check for updates on 2nd launch of
|
||||
# MacVim. On Sparkle 1 this is annoyingly a modal dialog box and interferes with tests.
|
||||
# Just disable it by pre-setting to not check for updates.
|
||||
defaults write org.vim.MacVim SUEnableAutomaticChecks 0
|
||||
|
||||
- name: Set up Xcode
|
||||
if: inputs.xcode != ''
|
||||
run: |
|
||||
sudo xcode-select -s /Applications/Xcode_${{ inputs.xcode }}.app/Contents/Developer
|
||||
xcode-select -p
|
||||
xcodebuild -version
|
||||
|
||||
# Set up, install, and cache gettext library for localization.
|
||||
|
||||
- name: Set up gettext
|
||||
if: inputs.publish
|
||||
uses: ./.github/actions/universal-package
|
||||
with:
|
||||
formula: gettext
|
||||
contents: lib/libintl.a,lib/libintl.dylib
|
||||
|
||||
# Set up, install, and cache libsodium library for encryption.
|
||||
|
||||
- name: Set up libsodium
|
||||
if: inputs.publish
|
||||
uses: ./.github/actions/universal-package
|
||||
with:
|
||||
formula: libsodium
|
||||
contents: lib/libsodium.a,lib/libsodium.dylib
|
||||
|
||||
# Set up remaining packages and tools
|
||||
|
||||
- name: Install packages
|
||||
run: |
|
||||
brew install --quiet libtool
|
||||
|
||||
- name: Install packages for testing
|
||||
run: |
|
||||
# Apple diff is broken. Use GNU diff instead. See http://github.com/vim/vim/issues/14056.
|
||||
brew install --quiet diffutils
|
||||
|
||||
# Cache Python 2 to avoid downloading the installer every time. This cache shouldn't change
|
||||
# over time as Python 2.7 is legacy. Can't directly cache to
|
||||
# /Library/Frameworks/Python.framework due to permission issues.
|
||||
#
|
||||
# Note: Legacy self-hosted runner already has this installed and doesn't need this.
|
||||
- name: Cache Python 2
|
||||
if: inputs.publish && !inputs.legacy
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: python27-cache
|
||||
key: ${{ inputs.os }}-python27
|
||||
|
||||
- name: Install scripting runtimes
|
||||
if: inputs.publish
|
||||
run: |
|
||||
# We no longer need to install/update Python 3, as it's guaranteed to
|
||||
# be installed on runners. Since we use stable ABI, the exact version
|
||||
# on CI does not matter.
|
||||
|
||||
brew install --quiet ruby
|
||||
brew install --quiet lua
|
||||
|
||||
if [[ -d $(brew --prefix)/Cellar/perl ]]; then
|
||||
# We just use system perl to reduce dependencies
|
||||
brew unlink perl
|
||||
fi
|
||||
|
||||
echo "vi_cv_path_python3=$(printf $vi_cv_path_python3 $(brew --prefix))" >> $GITHUB_ENV
|
||||
echo "vi_cv_path_plain_lua=$(printf $vi_cv_path_plain_lua $(brew --prefix))" >> $GITHUB_ENV
|
||||
echo "vi_cv_path_ruby=$(printf $vi_cv_path_ruby $(brew --prefix))" >> $GITHUB_ENV
|
||||
|
||||
# With Perl, we need to manually specify the version number because the dylib path depends on it.
|
||||
export PERL_VERSION=$(perl -e 'print $^V =~ s/v(\d\.\d+).*/\1/r')
|
||||
echo "vi_cv_dll_name_perl=$(printf $vi_cv_dll_name_perl $PERL_VERSION)" >> $GITHUB_ENV
|
||||
|
||||
# New runner images (macos-13) no longer have Python2 installed. We
|
||||
# need to install Python2 manually. Installing from the official
|
||||
# installer is the easiest way as Homebrew no longer ships python@2
|
||||
# and this way does not invole manual building from source. We
|
||||
# mostly only need the headers to build a dynamic build anyway.
|
||||
#
|
||||
# This will be removed in the future as Python2 has been completely
|
||||
# unsupported for years.
|
||||
if [ -d /Library/Frameworks/Python.framework/Versions/2.7 ]; then
|
||||
echo "Python 2.7 already installed"
|
||||
elif [ -d python27-cache ]; then
|
||||
sudo cp -R python27-cache /Library/Frameworks/Python.framework/Versions/2.7
|
||||
else
|
||||
curl https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg -o ~/Downloads/python-2.7.18-macosx10.9.pkg
|
||||
sudo installer -pkg ~/Downloads/python-2.7.18-macosx10.9.pkg -target /
|
||||
cp -R /Library/Frameworks/Python.framework/Versions/2.7 python27-cache # Allow this to be cached
|
||||
fi
|
||||
|
||||
# All set up steps are done. Build and test MacVim below.
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
CONFOPT=(
|
||||
--with-local-dir=$(brew --prefix)
|
||||
--with-features=huge
|
||||
--enable-netbeans
|
||||
--with-tlib=ncurses
|
||||
--enable-cscope
|
||||
--enable-gui=macvim
|
||||
--with-compiledby="GitHub Actions"
|
||||
)
|
||||
if ${{ inputs.publish == true }}; then
|
||||
CONFOPT+=(
|
||||
--enable-perlinterp=dynamic
|
||||
--enable-pythoninterp=dynamic
|
||||
--enable-python3interp=dynamic
|
||||
--with-python3-stable-abi=3.9 # macOS and Xcode currently ships 3.9, so we don't want go higher than that.
|
||||
--enable-rubyinterp=dynamic
|
||||
--enable-luainterp=dynamic
|
||||
--with-lua-prefix=$(brew --prefix)
|
||||
--with-macarchs="$MACVIM_ARCHS"
|
||||
)
|
||||
else
|
||||
CONFOPT+=(
|
||||
--disable-sparkle # Disable Sparkle for testing that this flag builds and works
|
||||
--enable-nls=no --enable-libsodium=no # Disable gettext and libsodium unless we built them ourselves for publish
|
||||
)
|
||||
fi
|
||||
if ${{ inputs.legacy == true }}; then
|
||||
CONFOPT+=(
|
||||
--enable-sparkle_1
|
||||
)
|
||||
fi
|
||||
echo "CONFOPT: ${CONFOPT[@]}"
|
||||
|
||||
./configure "${CONFOPT[@]}" --enable-fail-if-missing
|
||||
|
||||
sed -i.bak -f ci/config.mk.sed -f ci/config.mk.clang.sed -f ci/config.mk.xcode.sed src/auto/config.mk
|
||||
if clang --version | grep -qs '^Apple clang version \(1[3-9]\|[2-9]\d\)\.'; then
|
||||
sed -i.bak -f ci/config.mk.clang-12.sed src/auto/config.mk
|
||||
fi
|
||||
|
||||
if ${{ inputs.optimized == true }}; then
|
||||
# Additional optimizations like link-time optimizations that are a bit slower to build.
|
||||
sed -i.bak -f ci/config.mk.optimized.sed src/auto/config.mk
|
||||
fi
|
||||
|
||||
- name: Modify configure result
|
||||
if: inputs.publish
|
||||
run: |
|
||||
set -o verbose
|
||||
# Ruby is keg-only in Homebrew, so need to manually link in the path so Vim will know where to look for the binaries.
|
||||
perl -p -i -e "s#(?<=-DDYNAMIC_RUBY_DLL=\\\\\").*?(?=\\\\\")#${vi_cv_dll_name_ruby}#" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_PERL_DLL=\\\\\"${vi_cv_dll_name_perl}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_PYTHON_DLL=\\\\\"${vi_cv_dll_name_python}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_PYTHON3_DLL=\\\\\"${vi_cv_dll_name_python3}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_RUBY_DLL=\\\\\"${vi_cv_dll_name_ruby}\\\\\"" src/auto/config.mk
|
||||
|
||||
# Also search for the arm64 overrides for the default library locations, which are different from x86_64
|
||||
# because Homebrew puts them at a different place.
|
||||
grep -q -- "-DDYNAMIC_PYTHON3_DLL_ARM64=\\\\\"${vi_cv_dll_name_python3_arm64}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_RUBY_DLL_ARM64=\\\\\"${vi_cv_dll_name_ruby_arm64}\\\\\"" src/auto/config.mk
|
||||
grep -q -- "-DDYNAMIC_LUA_DLL_ARM64=\\\\\"${vi_cv_dll_name_lua_arm64}\\\\\"" src/auto/config.mk
|
||||
|
||||
- name: Show configure output
|
||||
run: |
|
||||
cat src/auto/config.mk
|
||||
cat src/auto/config.h
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
LC_ALL: C
|
||||
run: |
|
||||
NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
echo "Building MacVim with ${NPROC} cores"
|
||||
|
||||
set -o verbose
|
||||
make ${MAKE_BUILD_ARGS} -j${NPROC}
|
||||
|
||||
- name: Check version
|
||||
run: |
|
||||
${VIM_BIN} --version
|
||||
${VIM_BIN} -u NONE -i NONE --not-a-term -esNX -V1 -c 'echo "\nprof_nsec:" .. has("prof_nsec") .. "\n"' -c quit
|
||||
${VIM_BIN} -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
${VIM_BIN} -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
|
||||
- name: Smoketest
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
# Make sure there isn't any dynamic linkage to third-party dependencies in the built binary, as we should only use
|
||||
# static linkage to avoid dependency hell. Test that all those dylib's are in /usr/lib which is bundled with macOS and not third-party.
|
||||
if otool -L ${VIM_BIN} | grep '\.dylib\s' | grep -v '^\s*/usr/lib/'; then
|
||||
echo 'Found external dynamic linkage!'; false
|
||||
fi
|
||||
|
||||
# Make sure that --disable-sparkle flag will properly exclude all references to Sparkle symbols. This is
|
||||
# necessary because we still use weak linking to Sparkle when that flag is set and so references to Sparkle
|
||||
# wouldn't fail the build (we just remove Sparkle.framework from the built app after the fact).
|
||||
if ${{ inputs.publish == false }}; then
|
||||
# Currently we pass --disable-sparkle flag when publish==false
|
||||
if objdump -t ${MACVIM_BIN} | grep "_SPU\|_SUUpdate"; then
|
||||
echo 'Found references to Sparkle even when using --disable-sparkle'; false
|
||||
fi
|
||||
fi
|
||||
|
||||
# Make sure man pages were bundled
|
||||
man -M `pwd`/${MACVIM_APP}/Contents/man -w mvim
|
||||
|
||||
# Make sure xxd was bundled
|
||||
echo "AB" | ${MACVIM_APP}/Contents/bin/xxd | grep "4142"
|
||||
|
||||
- name: Smoketest (publish)
|
||||
if: inputs.publish
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
macvim_excmd() {
|
||||
${VIM_BIN} -u NONE -i NONE -g -f -X -V1 -es "$@" -c 'echo ""' -c 'qall!' 2>&1
|
||||
}
|
||||
|
||||
# Smoketest scripting languages
|
||||
macvim_excmd -c 'lua print("Test")' | grep Test
|
||||
macvim_excmd -c 'perl VIM::Msg("Test")' | grep Test
|
||||
macvim_excmd -c 'py3 print("Test")' | grep Test
|
||||
macvim_excmd -c 'ruby puts("Test")' | grep Test
|
||||
|
||||
if [[ "$(uname -m)" == "x86_64" ]]; then
|
||||
macvim_excmd -c 'py print "x86 Test"' | grep Test
|
||||
else
|
||||
# Python2 doesn't work in Apple Silicon, test under Rosetta
|
||||
(VIM_BIN="arch -x86_64 ${VIM_BIN}"; macvim_excmd -c 'py print "rosetta Test"' | grep Test)
|
||||
fi
|
||||
|
||||
# Check that localized messages work by printing ':version' and checking against localized word
|
||||
macvim_excmd -c 'lang es_ES' -c 'version' | grep Enlazado
|
||||
|
||||
# Check that libsodium is working
|
||||
macvim_excmd -c 'set cryptmethod=xchacha20v2'
|
||||
|
||||
# Make sure we are building universal x86_64 / arm64 builds and didn't accidentally create a thin app.
|
||||
check_arch() {
|
||||
local archs=($(lipo -archs "$1"))
|
||||
if [[ ${archs[@]} != "$MACVIM_ARCHS" ]]; then
|
||||
echo "Wrong arch(s) in $1: ${archs[@]}"; false
|
||||
else
|
||||
lipo -info "$1"
|
||||
fi
|
||||
}
|
||||
check_arch "${VIM_BIN}"
|
||||
check_arch "${MACVIM_BIN}"
|
||||
|
||||
- name: Check Vim help tags
|
||||
if: inputs.vimtags
|
||||
run: |
|
||||
# Confirm that we can build the help tags, and they match what's in source.
|
||||
make -C runtime/doc vimtags VIMEXE=../../${VIM_BIN}
|
||||
git diff --exit-code -- runtime/doc/tags
|
||||
|
||||
- name: Check Xcode project compatibility version
|
||||
if: inputs['check-xcodeproj-compat']
|
||||
run: |
|
||||
# Confirm that the compatibility version of xcodeproj is correct and not outdated.
|
||||
rm -rf src/MacVim/MacVim_xcode8.xcodeproj
|
||||
make -C src macvim-xcodeproj-compat
|
||||
if ! git diff --exit-code -- src/MacVim/MacVim_xcode8.xcodeproj; then
|
||||
echo 'MacVim_xcode8.xcodeproj is outdated. Run "make -C src macvim-xcodeproj-compat" to re-generate it.'; false
|
||||
fi
|
||||
|
||||
- name: Test MacVim
|
||||
id: test_macvim
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
make ${MAKE_BUILD_ARGS} -C src macvim-tests
|
||||
|
||||
- name: Upload failed MacVim test results
|
||||
if: ${{ !cancelled() && failure() && steps.test_macvim.conclusion == 'failure' }}
|
||||
uses: ./.github/actions/test_macvim_artifacts
|
||||
|
||||
- name: Build Vim test binaries
|
||||
run: |
|
||||
# Build the unit test binaries first. With link-time-optimization they take some time to link. Running them
|
||||
# separately de-couples them from the timeout in tests, and allow us to build in parallel jobs (since tests
|
||||
# can't run in parallel).
|
||||
NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
|
||||
set -o verbose
|
||||
make ${MAKE_BUILD_ARGS} -j${NPROC} -C src unittesttargets
|
||||
|
||||
- name: Test Vim
|
||||
if: startsWith(github.ref, 'refs/tags/') || !matrix.testgui
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
defaults delete org.vim.MacVim # Clean up stale states
|
||||
# Currently we don't run any non-src tests, as syntax tests are fragile and prone to spamming escape codes.
|
||||
# This needs to be investigated and fixed upstream.
|
||||
# MacVim is unlikely to introduce breaking changes in runtime files anyway.
|
||||
make ${MAKE_BUILD_ARGS} -C src test
|
||||
|
||||
- name: Test Vim (GUI)
|
||||
if: startsWith(github.ref, 'refs/tags/') || matrix.testgui
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
defaults delete org.vim.MacVim # Clean up stale states
|
||||
make ${MAKE_BUILD_ARGS} -C src/testdir clean
|
||||
make ${MAKE_BUILD_ARGS} -C src testgui
|
||||
|
||||
- name: Upload failed test files
|
||||
if: ${{ !cancelled() && failure() }}
|
||||
uses: ./.github/actions/test_artifacts
|
||||
|
||||
- name: Build MacVim dmg image
|
||||
if: inputs.publish && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master')
|
||||
run: |
|
||||
if ${{ inputs.legacy == true }}; then
|
||||
make -C src macvim-dmg-legacy
|
||||
else
|
||||
make -C src macvim-dmg
|
||||
fi
|
||||
|
||||
if ${{ inputs.publish_postfix != '' }}; then
|
||||
mv src/MacVim/build/Release/MacVim.dmg src/MacVim/build/Release/MacVim${{ inputs.publish_postfix }}.dmg
|
||||
fi
|
||||
|
||||
# Upload the dmg installer only when making tagged release or making a dev build from a master branch.
|
||||
# Note that this doesn't create a GitHub release for us, because we would prefer to do it manually, for two
|
||||
# reasons: 1) signing / notarization are currently done out of CI, 2) we want to manually format our release notes
|
||||
# and add pictures to make them look nice.
|
||||
- name: Upload MacVim image
|
||||
if: inputs.publish && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master')
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: MacVim${{ inputs.publish_postfix }}.dmg
|
||||
path: src/MacVim/build/Release/MacVim${{ inputs.publish_postfix }}.dmg
|
||||
|
||||
# If doing a tagged release, use repository-specified number of retention days (usually 90 days) to make it
|
||||
# easier to audit. (specify "0" to indicate using repository settings)
|
||||
#
|
||||
# Otherwise, we are just doing a dev build for potential testing, just use a maximum of 21 days as we don't
|
||||
# tend to need these for long.
|
||||
retention-days: ${{ startsWith(github.ref, 'refs/tags/') && 0 || (github.retention_days > 21 && 21 || 0) }}
|
||||
@@ -231,6 +231,8 @@ SRC_ALL = \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/popupbounce.vim \
|
||||
src/testdir/crash/* \
|
||||
src/testdir/ru_RU/LC_MESSAGES/Makefile \
|
||||
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.po \
|
||||
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.mo \
|
||||
src/proto.h \
|
||||
src/protodef.h \
|
||||
@@ -773,6 +775,8 @@ RT_ALL = \
|
||||
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/sr/vim-01-beginner.tutor \
|
||||
runtime/tutor/sr/vim-01-beginner.tutor.json \
|
||||
runtime/tutor/tutor.tutor \
|
||||
runtime/tutor/tutor.tutor.json \
|
||||
runtime/tutor/tutor.vim \
|
||||
@@ -812,6 +816,7 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/netrw/LICENSE.txt \
|
||||
runtime/pack/dist/opt/netrw/README.md \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw/own.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrwSettings.vim \
|
||||
runtime/pack/dist/opt/netrw/autoload/netrw_gitignore.vim \
|
||||
runtime/pack/dist/opt/netrw/doc/netrw.txt \
|
||||
|
||||
Vendored
+5
-4
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jan 11
|
||||
# Last Change: 2025 Jan 25
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -1384,7 +1384,7 @@ export def FTdsp()
|
||||
setf faust
|
||||
enddef
|
||||
|
||||
# Set the filetype of a *.v file to Verilog, V or Cog based on the first 200
|
||||
# Set the filetype of a *.v file to Verilog, V or Cog based on the first 500
|
||||
# lines.
|
||||
export def FTv()
|
||||
if did_filetype()
|
||||
@@ -1397,7 +1397,7 @@ export def FTv()
|
||||
endif
|
||||
|
||||
var in_comment = 0
|
||||
for lnum in range(1, min([line("$"), 200]))
|
||||
for lnum in range(1, min([line("$"), 500]))
|
||||
var line = getline(lnum)
|
||||
# Skip Verilog and V comments (lines and blocks).
|
||||
if line =~ '^\s*/\*'
|
||||
@@ -1429,7 +1429,8 @@ export def FTv()
|
||||
# Verilog: line ends with ';' followed by an optional variable number of
|
||||
# spaces and an optional start of a comment.
|
||||
# Example: " b <= a + 1; // Add 1".
|
||||
if line =~ ';\s*\(/[/*].*\)\?$'
|
||||
# Alternatively: a module is defined: " module MyModule ( input )"
|
||||
if line =~ ';\s*\(/[/*].*\)\?$' || line =~ '\C^\s*module\s\+\w\+\s*('
|
||||
setf verilog
|
||||
return
|
||||
endif
|
||||
|
||||
Vendored
+119
-9
@@ -2,19 +2,129 @@ vim9script
|
||||
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Oct 25
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jan 29
|
||||
|
||||
export def IsSafeExecutable(filetype: string, executable: string): bool
|
||||
if empty(exepath(executable))
|
||||
return v:false
|
||||
if empty(exepath(executable))
|
||||
return v:false
|
||||
endif
|
||||
var cwd = getcwd()
|
||||
return get(g:, filetype .. '_exec', get(g:, 'plugin_exec', 0))
|
||||
&& (fnamemodify(exepath(executable), ':p:h') !=# cwd
|
||||
|| (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1
|
||||
&& cwd != '.'))
|
||||
enddef
|
||||
|
||||
def Redir(): string
|
||||
if get(g:, 'netrw_suppress_gx_mesg', true)
|
||||
if &srr =~# "%s"
|
||||
return printf(&srr, has("win32") ? "nul" : "/dev/null")
|
||||
elseif &srr =~# '>&\?$'
|
||||
return &srr .. (has("win32") ? "nul" : "/dev/null")
|
||||
else
|
||||
return &srr .. (has("win32") ? "> nul" : "> /dev/null")
|
||||
endif
|
||||
var cwd = getcwd()
|
||||
return get(g:, filetype .. '_exec', get(g:, 'plugin_exec', 0))
|
||||
&& (fnamemodify(exepath(executable), ':p:h') !=# cwd
|
||||
|| (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1
|
||||
&& cwd != '.'))
|
||||
endif
|
||||
return ''
|
||||
enddef
|
||||
|
||||
if has('unix')
|
||||
if has('win32unix')
|
||||
# Cygwin provides cygstart
|
||||
if executable('cygstart')
|
||||
export def Launch(args: string)
|
||||
execute $'silent ! cygstart --hide {args} {Redir()}' | redraw!
|
||||
enddef
|
||||
elseif !empty($MSYSTEM) && executable('start')
|
||||
# MSYS2/Git Bash comes by default without cygstart; see
|
||||
# https://www.msys2.org/wiki/How-does-MSYS2-differ-from-Cygwin
|
||||
# Instead it provides /usr/bin/start script running `cmd.exe //c start`
|
||||
# Adding "" //b` sets void title, hides cmd window and blocks path conversion
|
||||
# of /b to \b\ " by MSYS2; see https://www.msys2.org/docs/filesystem-paths/
|
||||
export def Launch(args: string)
|
||||
execute $'silent !start "" //b {args} {Redir()}' | redraw!
|
||||
enddef
|
||||
else
|
||||
# imitate /usr/bin/start script for other environments and hope for the best
|
||||
export def Launch(args: string)
|
||||
execute $'silent !cmd /c start "" /b {args} {Redir()}' | redraw!
|
||||
enddef
|
||||
endif
|
||||
elseif exists('$WSL_DISTRO_NAME') # use cmd.exe to start GUI apps in WSL
|
||||
export def Launch(args: string)
|
||||
const command = (args =~? '\v<\f+\.(exe|com|bat|cmd)>')
|
||||
? $'cmd.exe /c start /b {args} {Redir()}'
|
||||
: $'nohup {args} {Redir()} &'
|
||||
execute $'silent ! {command}' | redraw!
|
||||
enddef
|
||||
else
|
||||
export def Launch(args: string)
|
||||
const fork = has('gui_running') ? '' : '&'
|
||||
execute $':silent ! nohup {args} {Redir()} {fork}' | redraw!
|
||||
enddef
|
||||
endif
|
||||
elseif has('win32')
|
||||
export def Launch(args: string)
|
||||
const shell = (&shell =~? '\<cmd\.exe\>') ? '' : 'cmd.exe /c'
|
||||
const quotes = empty(shell) ? '' : '""'
|
||||
execute $'silent ! {shell} start {quotes} /b {args} {Redir()}' | redraw!
|
||||
enddef
|
||||
else
|
||||
export def Launch(dummy: string)
|
||||
echom 'No common launcher found'
|
||||
enddef
|
||||
endif
|
||||
|
||||
var os_viewer = null_string
|
||||
# Git Bash
|
||||
if has('win32unix')
|
||||
# (cyg)start suffices
|
||||
os_viewer = ''
|
||||
# Windows / WSL
|
||||
elseif executable('explorer.exe')
|
||||
os_viewer = 'explorer.exe'
|
||||
# Linux / BSD
|
||||
elseif executable('xdg-open')
|
||||
os_viewer = 'xdg-open'
|
||||
# MacOS
|
||||
elseif executable('open')
|
||||
os_viewer = 'open'
|
||||
endif
|
||||
|
||||
def Viewer(): string
|
||||
# g:Openprg could be a string of program + its arguments, test if first
|
||||
# argument is executable
|
||||
var user_viewer = get(g:, "Openprg", get(g:, "netrw_browsex_viewer", ""))
|
||||
|
||||
# Take care of an off-by-one check for "for" too
|
||||
if executable(trim(user_viewer))
|
||||
return user_viewer
|
||||
endif
|
||||
|
||||
var args = split(user_viewer, '\s\+\zs')
|
||||
var viewer = get(args, 0, '')
|
||||
|
||||
for arg in args[1 :]
|
||||
if executable(trim(viewer))
|
||||
return user_viewer
|
||||
endif
|
||||
|
||||
viewer ..= arg
|
||||
endfor
|
||||
|
||||
if os_viewer == null
|
||||
echoerr "No program to open this path found. See :help Open for more information."
|
||||
endif
|
||||
|
||||
return os_viewer
|
||||
enddef
|
||||
|
||||
export def Open(file: string)
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
# defcompile
|
||||
|
||||
# vim: ts=8 sts=2 sw=2 et
|
||||
|
||||
+37
-105
@@ -1,6 +1,5 @@
|
||||
" tar.vim: Handles browsing tarfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Nov 11, 2024
|
||||
" tar.vim: Handles browsing tarfiles - AUTOLOAD PORTION
|
||||
" Date: Feb 06, 2025
|
||||
" Version: 32b (with modifications from the Vim Project)
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Former Maintainer: Charles E Campbell
|
||||
@@ -17,7 +16,6 @@
|
||||
" By using this plugin, you agree that in no event will the
|
||||
" copyright holder be liable for any damages resulting from
|
||||
" the use of this software.
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_tar")
|
||||
@@ -32,8 +30,6 @@ if v:version < 702
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
"call Decho("loading autoload/tar.vim")
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Default Settings: {{{1
|
||||
@@ -96,7 +92,6 @@ if !exists("g:tar_shq")
|
||||
else
|
||||
let g:tar_shq= "'"
|
||||
endif
|
||||
" call Decho("g:tar_shq<".g:tar_shq.">")
|
||||
endif
|
||||
|
||||
" ----------------
|
||||
@@ -106,29 +101,23 @@ endif
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Browse: {{{2
|
||||
fun! tar#Browse(tarfile)
|
||||
" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
|
||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse")
|
||||
return
|
||||
endif
|
||||
if !filereadable(a:tarfile)
|
||||
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
|
||||
if a:tarfile !~# '^\a\+://'
|
||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">")
|
||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||
endif
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
|
||||
return
|
||||
endif
|
||||
if &ma != 1
|
||||
@@ -144,7 +133,6 @@ fun! tar#Browse(tarfile)
|
||||
set ft=tar
|
||||
|
||||
" give header
|
||||
" call Decho("printing header")
|
||||
let lastline= line("$")
|
||||
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
|
||||
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
|
||||
@@ -161,10 +149,10 @@ fun! tar#Browse(tarfile)
|
||||
let curlast= line("$")
|
||||
|
||||
if tarfile =~# '\.\(gz\)$'
|
||||
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
|
||||
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzst\)$'
|
||||
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' ||
|
||||
\ tarfile =~# '\.\(tzst\)$' || tarfile =~# '\.\(tlz4\)$'
|
||||
if has("unix") && executable("file")
|
||||
let filekind= system("file ".shellescape(tarfile,1))
|
||||
else
|
||||
@@ -177,36 +165,34 @@ fun! tar#Browse(tarfile)
|
||||
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "Zstandard"
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "LZ4"
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
else
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
endif
|
||||
|
||||
elseif tarfile =~# '\.lrp'
|
||||
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
|
||||
" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(lzma\|tlz\)$'
|
||||
" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(zst\|tzst\)$'
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(lz4\|tlz4\)$'
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
|
||||
exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
|
||||
endif
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
"
|
||||
@@ -237,29 +223,24 @@ fun! tar#Browse(tarfile)
|
||||
endif
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" TarBrowseSelect: {{{2
|
||||
fun! s:TarBrowseSelect()
|
||||
" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
let &report= repkeep
|
||||
" call Dret("TarBrowseSelect")
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -283,19 +264,17 @@ fun! s:TarBrowseSelect()
|
||||
exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(<q-args>,"'.fnameescape(fname).'")'
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Read: {{{2
|
||||
fun! tar#Read(fname,mode)
|
||||
" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
|
||||
" changing the directory to the temporary earlier to allow tar to extract the file with permissions intact
|
||||
" changing the directory to the temporary earlier to allow tar to extract the file with permissions intact
|
||||
if !exists("*mkdir")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||
@@ -333,8 +312,6 @@ fun! tar#Read(fname,mode)
|
||||
" assuming cygwin
|
||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile.">")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
if fname =~ '\.bz2$' && executable("bzcat")
|
||||
let decmp= "|bzcat"
|
||||
@@ -351,6 +328,9 @@ fun! tar#Read(fname,mode)
|
||||
elseif fname =~ '\.zst$' && executable("zstdcat")
|
||||
let decmp= "|zstdcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.lz4$' && executable("lz4cat")
|
||||
let decmp= "|lz4cat"
|
||||
let doro = 1
|
||||
else
|
||||
let decmp=""
|
||||
let doro = 0
|
||||
@@ -400,12 +380,14 @@ fun! tar#Read(fname,mode)
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
elseif tarfile =~# '\.\(lz4\|tlz4\)$'
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".fname
|
||||
endif
|
||||
@@ -432,16 +414,13 @@ if v:shell_error != 0
|
||||
set nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Read : b:tarfile<".b:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Write: {{{2
|
||||
fun! tar#Write(fname)
|
||||
" call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
" temporary buffer variable workaround because too fucking tired. but it works now
|
||||
let curdir= b:curdir
|
||||
let tmpdir= b:tmpdir
|
||||
@@ -449,16 +428,13 @@ fun! tar#Write(fname)
|
||||
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
|
||||
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -470,43 +446,38 @@ fun! tar#Write(fname)
|
||||
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.bz2','','e')
|
||||
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.gz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.gz','','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.tgz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
let tgz = 1
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.xz'
|
||||
call system("xz -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.xz','','e')
|
||||
let compress= "xz -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.zst'
|
||||
call system("zstd --decompress --rm -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.zst','','e')
|
||||
let compress= "zstd --rm -- ".shellescape(tarfile,0)
|
||||
elseif tarfile =~# '\.lz4'
|
||||
call system("lz4 --decompress --rm -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.lz4','','e')
|
||||
let compress= "lz4 --rm -- ".shellescape(tarfile,0)
|
||||
elseif tarfile =~# '\.lzma'
|
||||
call system("lzma -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.lzma','','e')
|
||||
let compress= "lzma -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile.">")
|
||||
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname)
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
||||
else
|
||||
|
||||
" call Decho("tarfile<".tarfile."> fname<".fname.">")
|
||||
|
||||
if fname =~ '/'
|
||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
@@ -521,7 +492,6 @@ fun! tar#Write(fname)
|
||||
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile."> fname<".fname.">")
|
||||
|
||||
if exists("g:tar_secure")
|
||||
let tar_secure= " -- "
|
||||
@@ -534,26 +504,20 @@ fun! tar#Write(fname)
|
||||
endif
|
||||
|
||||
" delete old file from tarfile
|
||||
" call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
||||
call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
else
|
||||
|
||||
" update tarfile with new file
|
||||
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
elseif exists("compress")
|
||||
" call Decho("call system(".compress.")")
|
||||
call system(compress)
|
||||
if exists("tgz")
|
||||
" call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")")
|
||||
call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e'))
|
||||
endif
|
||||
endif
|
||||
@@ -561,7 +525,6 @@ fun! tar#Write(fname)
|
||||
|
||||
" support writing tarfiles across a network
|
||||
if s:tblfile_{winnr()} =~ '^\a\+://'
|
||||
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
||||
let tblfile= s:tblfile_{winnr()}
|
||||
1split|noswapfile enew
|
||||
let binkeep= &l:binary
|
||||
@@ -583,13 +546,11 @@ fun! tar#Write(fname)
|
||||
setlocal nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Diff: {{{2
|
||||
fun! tar#Diff(userfname,fname)
|
||||
" call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")")
|
||||
let fname= a:fname
|
||||
if a:userfname != ""
|
||||
let fname= a:userfname
|
||||
@@ -607,133 +568,126 @@ fun! tar#Diff(userfname,fname)
|
||||
redraw!
|
||||
echo "***warning*** unable to read file<".fname.">"
|
||||
endif
|
||||
" call Dret("tar#Diff")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Extract: extract a file from a (possibly compressed) tar archive {{{2
|
||||
fun! tar#Extract()
|
||||
" call Dfunc("tar#Extract()")
|
||||
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
let &report= repkeep
|
||||
" call Dret("TarBrowseSelect")
|
||||
return
|
||||
endif
|
||||
|
||||
let tarball = expand("%")
|
||||
" call Decho("tarball<".tarball.">")
|
||||
let tarbase = substitute(tarball,'\..*$','','')
|
||||
" call Decho("tarbase<".tarbase.">")
|
||||
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
if filereadable(tarbase.".tar")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tgz")
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd."t ".tarbase.".tgz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.gz")
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tbz")
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.bz2")
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".txz")
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.xz")
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tzst")
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.zst")
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tlz4")
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tlz4 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tlz4 ".fname.": failed!" | echohl NONE
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.lz4")
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.lz4".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.lz4 ".fname.": failed!" | echohl NONE
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -741,14 +695,11 @@ fun! tar#Extract()
|
||||
|
||||
" restore option
|
||||
let &report= repkeep
|
||||
|
||||
" call Dret("tar#Extract")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Rmdir: {{{2
|
||||
fun! s:Rmdir(fname)
|
||||
" call Dfunc("Rmdir(fname<".a:fname.">)")
|
||||
if has("unix")
|
||||
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
@@ -758,44 +709,32 @@ fun! s:Rmdir(fname)
|
||||
call system("del /S ".shellescape(a:fname,0))
|
||||
endif
|
||||
endif
|
||||
" call Dret("Rmdir")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
|
||||
fun! tar#Vimuntar(...)
|
||||
" call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
|
||||
let tarball = expand("%")
|
||||
" call Decho("tarball<".tarball.">")
|
||||
let tarbase = substitute(tarball,'\..*$','','')
|
||||
" call Decho("tarbase<".tarbase.">")
|
||||
let tarhome = expand("%:p")
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
let tarhome= substitute(tarhome,'\\','/','g')
|
||||
endif
|
||||
let tarhome= substitute(tarhome,'/[^/]*$','','')
|
||||
" call Decho("tarhome<".tarhome.">")
|
||||
let tartail = expand("%:t")
|
||||
" call Decho("tartail<".tartail.">")
|
||||
let curdir = getcwd()
|
||||
" call Decho("curdir <".curdir.">")
|
||||
" set up vimhome
|
||||
if a:0 > 0 && a:1 != ""
|
||||
let vimhome= a:1
|
||||
else
|
||||
let vimhome= vimball#VimballHome()
|
||||
endif
|
||||
" call Decho("vimhome<".vimhome.">")
|
||||
|
||||
" call Decho("curdir<".curdir."> vimhome<".vimhome.">")
|
||||
if simplify(curdir) != simplify(vimhome)
|
||||
" copy (possibly compressed) tarball to .vim/vimfiles
|
||||
" call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
" call Decho("exe cd ".fnameescape(vimhome))
|
||||
exe "cd ".fnameescape(vimhome)
|
||||
endif
|
||||
" call Decho("getcwd<".getcwd().">")
|
||||
|
||||
" if necessary, decompress the tarball; then, extract it
|
||||
if tartail =~ '\.tgz'
|
||||
@@ -807,24 +746,19 @@ fun! tar#Vimuntar(...)
|
||||
echoerr "unable to decompress<".tartail."> on this system"
|
||||
if simplify(curdir) != simplify(tarhome)
|
||||
" remove decompressed tarball, restore directory
|
||||
" call Decho("delete(".tartail.".tar)")
|
||||
call delete(tartail.".tar")
|
||||
" call Decho("exe cd ".fnameescape(curdir))
|
||||
exe "cd ".fnameescape(curdir)
|
||||
endif
|
||||
" call Dret("tar#Vimuntar")
|
||||
return
|
||||
endif
|
||||
else
|
||||
call vimball#Decompress(tartail,0)
|
||||
endif
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
|
||||
call system(extractcmd." ".shellescape(tarbase.".tar"))
|
||||
|
||||
" set up help
|
||||
if filereadable("doc/".tarbase.".txt")
|
||||
" call Decho("exe helptags ".getcwd()."/doc")
|
||||
exe "helptags ".getcwd()."/doc"
|
||||
endif
|
||||
|
||||
@@ -833,8 +767,6 @@ fun! tar#Vimuntar(...)
|
||||
call delete(vimhome."/".tarbase.".tar")
|
||||
exe "cd ".fnameescape(curdir)
|
||||
endif
|
||||
|
||||
" call Dret("tar#Vimuntar")
|
||||
endfun
|
||||
|
||||
" =====================================================================
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Maxim Kim <habamax@gmail.com>, ported from gruvbox8 of Lifepillar <lifepillar@lifepillar.me>
|
||||
" Website: https://www.github.com/vim/colorschemes
|
||||
" License: Vim License (see `:help license`)
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Change: 2025 Feb 15
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -150,7 +150,7 @@ else
|
||||
hi StatusLine guifg=#bdae93 guibg=#3c3836 gui=bold,reverse cterm=bold,reverse
|
||||
hi StatusLineNC guifg=#ebdbb2 guibg=#3c3836 gui=reverse cterm=reverse
|
||||
hi TabLine guifg=#665c54 guibg=#ebdbb2 gui=NONE cterm=NONE
|
||||
hi TabLineFill guifg=#ebdbb2 guibg=#ebdbb2 gui=NONE cterm=NONE
|
||||
hi TabLineFill guifg=#3c3836 guibg=#ebdbb2 gui=NONE cterm=NONE
|
||||
hi TabLineSel guifg=#282828 guibg=#fbf1c7 gui=bold cterm=bold
|
||||
hi ToolbarButton guifg=#282828 guibg=#bdae93 gui=bold cterm=bold
|
||||
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
@@ -332,7 +332,7 @@ if s:t_Co >= 256
|
||||
hi StatusLine ctermfg=144 ctermbg=237 cterm=bold,reverse
|
||||
hi StatusLineNC ctermfg=187 ctermbg=237 cterm=reverse
|
||||
hi TabLine ctermfg=59 ctermbg=187 cterm=NONE
|
||||
hi TabLineFill ctermfg=187 ctermbg=187 cterm=NONE
|
||||
hi TabLineFill ctermfg=237 ctermbg=187 cterm=NONE
|
||||
hi TabLineSel ctermfg=235 ctermbg=230 cterm=bold
|
||||
hi ToolbarButton ctermfg=235 ctermbg=144 cterm=bold
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2024 Dec 04
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Feb 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2000,6 +2000,9 @@ To disable autocommands for some time use the 'eventignore' option. Note that
|
||||
this may cause unexpected behavior, make sure you restore 'eventignore'
|
||||
afterwards, using a |:try| block with |:finally|.
|
||||
|
||||
To disable autocmds indefinitely in a specific window use the 'eventignorewin'
|
||||
option. This can only be used to ignore window and buffer related events.
|
||||
|
||||
*:noautocmd* *:noa*
|
||||
To disable autocommands for just one command use the ":noautocmd" command
|
||||
modifier. This will set 'eventignore' to "all" for the duration of the
|
||||
|
||||
+60
-21
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Jan 17
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Feb 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -228,12 +228,12 @@ getbufvar({buf}, {varname} [, {def}])
|
||||
getcellpixels() List get character cell pixel size
|
||||
getcellwidths() List get character cell width overrides
|
||||
getchangelist([{buf}]) List list of change list items
|
||||
getchar([{expr}]) Number or String
|
||||
getchar([{expr} [, {opts}]]) Number or String
|
||||
get one character from the user
|
||||
getcharmod() Number modifiers for the last typed character
|
||||
getcharpos({expr}) List position of cursor, mark, etc.
|
||||
getcharsearch() Dict last character search
|
||||
getcharstr([{expr}]) String get one character from the user
|
||||
getcharstr([{expr} [, {opts}]]) String get one character from the user
|
||||
getcmdcomplpat() String return the completion pattern of the
|
||||
current command-line completion
|
||||
getcmdcompltype() String return the type of the current
|
||||
@@ -416,6 +416,8 @@ mkdir({name} [, {flags} [, {prot}]])
|
||||
mode([{expr}]) String current editing mode
|
||||
mzeval({expr}) any evaluate |MzScheme| expression
|
||||
nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
|
||||
ngettext({single}, {plural}, {number}[, {domain}])
|
||||
String translate text based on {number}
|
||||
nr2char({expr} [, {utf8}]) String single char with ASCII/UTF-8 value {expr}
|
||||
or({expr}, {expr}) Number bitwise OR
|
||||
pathshorten({expr} [, {len}]) String shorten directory names in a path
|
||||
@@ -612,8 +614,7 @@ split({expr} [, {pat} [, {keepempty}]])
|
||||
sqrt({expr}) Float square root of {expr}
|
||||
srand([{expr}]) List get seed for |rand()|
|
||||
state([{what}]) String current state of Vim
|
||||
str2blob({list} [, {options}])
|
||||
Blob convert list of strings into a Blob
|
||||
str2blob({list} [, {options}]) Blob convert list of strings into a Blob
|
||||
str2float({expr} [, {quoted}]) Float convert String to Float
|
||||
str2list({expr} [, {utf8}]) List convert each character of {expr} to
|
||||
ASCII/UTF-8 value
|
||||
@@ -3007,7 +3008,8 @@ extend({expr1}, {expr2} [, {expr3}]) *extend()*
|
||||
When {expr3} is omitted then "force" is assumed.
|
||||
|
||||
{expr1} is changed when {expr2} is not empty. If necessary
|
||||
make a copy of {expr1} first.
|
||||
make a copy of {expr1} first or use |extendnew()| to return a
|
||||
new List/Dictionary.
|
||||
{expr2} remains unchanged.
|
||||
When {expr1} is locked and {expr2} is not empty the operation
|
||||
fails.
|
||||
@@ -3884,6 +3886,8 @@ getcellpixels() *getcellpixels()*
|
||||
On macOS, system Terminal.app returns sizes in points (before
|
||||
Retina scaling), whereas third-party terminals return raw pixel
|
||||
sizes (post Retina scaling).
|
||||
In MacVim, there is a small delay after startup or changing
|
||||
'guifont' before this will return the updated values.
|
||||
|
||||
Return type: list<any>
|
||||
|
||||
@@ -3919,14 +3923,16 @@ getchangelist([{buf}]) *getchangelist()*
|
||||
Return type: list<any>
|
||||
|
||||
|
||||
getchar([{expr}]) *getchar()*
|
||||
getchar([{expr} [, {opts}]]) *getchar()*
|
||||
Get a single character from the user or input stream.
|
||||
If {expr} is omitted, wait until a character is available.
|
||||
If {expr} is omitted or is -1, wait until a character is
|
||||
available.
|
||||
If {expr} is 0, only get a character when one is available.
|
||||
Return zero otherwise.
|
||||
If {expr} is 1, only check if a character is available, it is
|
||||
not consumed. Return zero if no character available.
|
||||
If you prefer always getting a string use |getcharstr()|.
|
||||
If you prefer always getting a string use |getcharstr()|, or
|
||||
specify |FALSE| as "number" in {opts}.
|
||||
|
||||
Without {expr} and when {expr} is 0 a whole character or
|
||||
special key is returned. If it is a single character, the
|
||||
@@ -3936,7 +3942,8 @@ getchar([{expr}]) *getchar()*
|
||||
starting with 0x80 (decimal: 128). This is the same value as
|
||||
the String "\<Key>", e.g., "\<Left>". The returned value is
|
||||
also a String when a modifier (shift, control, alt) was used
|
||||
that is not included in the character.
|
||||
that is not included in the character. |keytrans()| can also
|
||||
be used to convert a returned String into a readable form.
|
||||
|
||||
When {expr} is 0 and Esc is typed, there will be a short delay
|
||||
while Vim waits to see if this is the start of an escape
|
||||
@@ -3948,6 +3955,31 @@ getchar([{expr}]) *getchar()*
|
||||
|
||||
Use getcharmod() to obtain any additional modifiers.
|
||||
|
||||
The optional argument {opts} is a Dict and supports the
|
||||
following items:
|
||||
|
||||
cursor A String specifying cursor behavior
|
||||
when waiting for a character.
|
||||
"hide": hide the cursor.
|
||||
"keep": keep current cursor unchanged.
|
||||
"msg": move cursor to message area.
|
||||
(default: "msg")
|
||||
|
||||
number If |TRUE|, return a Number when getting
|
||||
a single character.
|
||||
If |FALSE|, the return value is always
|
||||
converted to a String, and an empty
|
||||
String (instead of 0) is returned when
|
||||
no character is available.
|
||||
(default: |TRUE|)
|
||||
|
||||
simplify If |TRUE|, include modifiers in the
|
||||
character if possible. E.g., return
|
||||
the same value for CTRL-I and <Tab>.
|
||||
If |FALSE|, don't include modifiers in
|
||||
the character.
|
||||
(default: |TRUE|)
|
||||
|
||||
When the user clicks a mouse button, the mouse event will be
|
||||
returned. The position can then be found in |v:mouse_col|,
|
||||
|v:mouse_lnum|, |v:mouse_winid| and |v:mouse_win|.
|
||||
@@ -4063,17 +4095,9 @@ getcharsearch() *getcharsearch()*
|
||||
Return type: dict<any>
|
||||
|
||||
|
||||
getcharstr([{expr}]) *getcharstr()*
|
||||
Get a single character from the user or input stream as a
|
||||
string.
|
||||
If {expr} is omitted, wait until a character is available.
|
||||
If {expr} is 0 or false, only get a character when one is
|
||||
available. Return an empty string otherwise.
|
||||
If {expr} is 1 or true, only check if a character is
|
||||
available, it is not consumed. Return an empty string
|
||||
if no character is available.
|
||||
Otherwise this works like |getchar()|, except that a number
|
||||
result is converted to a string.
|
||||
getcharstr([{expr} [, {opts}]]) *getcharstr()*
|
||||
The same as |getchar()|, except that this always returns a
|
||||
String, and "number" isn't allowed in {opts}.
|
||||
|
||||
Return type: |String|
|
||||
|
||||
@@ -7690,6 +7714,20 @@ nextnonblank({lnum}) *nextnonblank()*
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
ngettext({single}, {plural}, {number}[, {domain}) *ngettext()*
|
||||
Return a string that contains the correct value for a
|
||||
message based on the rules for plural form(s) in
|
||||
a language. Examples: >
|
||||
ngettext("File", "Files", 2) # returns "Files"
|
||||
<
|
||||
Can be used as a |method|: >
|
||||
1->ngettext("File", "Files") # returns "File"
|
||||
<
|
||||
See |gettext()| for information on the domain parameter.
|
||||
|
||||
Return type: |String|
|
||||
|
||||
|
||||
nr2char({expr} [, {utf8}]) *nr2char()*
|
||||
Return a string with a single character, which has the number
|
||||
value {expr}. Examples: >
|
||||
@@ -12739,6 +12777,7 @@ gui_win32s idem, and Win32s system being used (Windows 3.1)
|
||||
haiku Haiku version of Vim.
|
||||
hangul_input Compiled with Hangul input support. |hangul|
|
||||
hpux HP-UX version of Vim.
|
||||
hurd GNU/Hurd version of Vim
|
||||
iconv Can use iconv() for conversion.
|
||||
insert_expand Compiled with support for CTRL-X expansion commands in
|
||||
Insert mode. (always true)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 9.1. Last change: 2023 Oct 20
|
||||
*digraph.txt* For Vim version 9.1. Last change: 2025 Feb 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -125,8 +125,8 @@ see them.
|
||||
|
||||
On most systems Vim uses the same digraphs. They work for the Unicode and
|
||||
ISO-8859-1 character sets. These default digraphs are taken from the RFC1345
|
||||
mnemonics. To make it easy to remember the mnemonic, the second character has
|
||||
a standard meaning:
|
||||
mnemonics (with some additions). To make it easy to remember the mnemonic,
|
||||
the second character has a standard meaning:
|
||||
|
||||
char name char meaning ~
|
||||
Exclamation mark ! Grave
|
||||
@@ -1075,6 +1075,7 @@ char digraph hex dec official name ~
|
||||
≅ ?= 2245 8773 APPROXIMATELY EQUAL TO
|
||||
≈ ?2 2248 8776 ALMOST EQUAL TO
|
||||
≌ =? 224C 8780 ALL EQUAL TO
|
||||
≐ .= 2250 8784 APPROACHES THE LIMIT
|
||||
≓ HI 2253 8787 IMAGE OF OR APPROXIMATELY EQUAL TO
|
||||
≠ != 2260 8800 NOT EQUAL TO
|
||||
≡ =3 2261 8801 IDENTICAL TO
|
||||
|
||||
+48
-1
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Jan 02
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Jan 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -4922,5 +4922,52 @@ executable. It takes the following arguments:
|
||||
filetype string
|
||||
executable string
|
||||
|
||||
*dist#vim9#Open()* *:Open*
|
||||
*g:Openprg* *gx*
|
||||
dist#vim9#Open(file: string) ~
|
||||
|
||||
Opens `path` with the system default handler (macOS `open`, Windows
|
||||
`explorer.exe`, Linux `xdg-open`, …). If the variable |g:Openprg| exists the
|
||||
string specified in the variable is used instead.
|
||||
|
||||
This function is by default called using the gx mapping. In visual mode
|
||||
tries to open the visually selected text.
|
||||
|
||||
Associated setting variables:
|
||||
`g:gx_word`: control how gx picks up the text under the cursor. Uses
|
||||
`g:netrw_gx` as a fallback for backward compatibility.
|
||||
(default: `<cfile>`)
|
||||
|
||||
`g:nogx`: disables the gx mapping. Uses `g:netrw_nogx` as a fallback for
|
||||
backward compatibility. (default: `unset`)
|
||||
|
||||
|
||||
NOTE: Escaping of the path is automatically applied.
|
||||
|
||||
Usage: >vim
|
||||
:call dist#vim9#Open(<path>)
|
||||
:Open <path>
|
||||
<
|
||||
|
||||
*dist#vim9#Launch()* *:Launch*
|
||||
dist#vim9#Launch(file: string) ~
|
||||
|
||||
Launches <args> with the appropriate system programs. Intended for launching
|
||||
GUI programs within Vim.
|
||||
|
||||
NOTE: escaping of <args> is left to the user
|
||||
|
||||
Examples: >vim
|
||||
vim9script
|
||||
|
||||
import autoload 'dist/vim9.vim'
|
||||
# Execute 'makeprg' into another xterm window
|
||||
vim9.Launch('xterm ' .. expandcmd(&makeprg))
|
||||
<
|
||||
|
||||
Usage: >vim
|
||||
:call dist#vim9#Launch(<args>)
|
||||
:Launch <app> <args>.
|
||||
<
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2024 Dec 04
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Feb 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -762,7 +762,7 @@ Options:
|
||||
You can also format quoted text with |gq|.
|
||||
|
||||
Local mappings:
|
||||
<LocalLeader>q or \\MailQuote
|
||||
<LocalLeader>q or \MailQuote
|
||||
Quotes the text selected in Visual mode, or from the cursor position
|
||||
to the end of the file in Normal mode. This means "> " is inserted in
|
||||
each line.
|
||||
|
||||
@@ -803,8 +803,6 @@ tag char note action in Normal mode ~
|
||||
|gu| gu{motion} 2 make Nmove text lowercase
|
||||
|gv| gv reselect the previous Visual area
|
||||
|gw| gw{motion} 2 format Nmove text and keep cursor
|
||||
|netrw-gx| gx execute application for file name under the
|
||||
cursor (only with |netrw| plugin)
|
||||
|g@| g@{motion} call 'operatorfunc'
|
||||
|g~| g~{motion} 2 swap case for Nmove text
|
||||
|g<Down>| g<Down> 1 same as "gj"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.1. Last change: 2024 Dec 31
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Feb 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -657,6 +657,11 @@ CTRL-N (next), and CTRL-P (previous).
|
||||
To get the current completion information, |complete_info()| can be used.
|
||||
Also see the 'infercase' option if you want to adjust the case of the match.
|
||||
|
||||
When inserting a selected candidate word from the |popup-menu|, the part of
|
||||
the candidate word that does not match the query is highlighted using
|
||||
|hl-ComplMatchIns|. If fuzzy is enabled in 'completopt', highlighting will not
|
||||
be applied.
|
||||
|
||||
*complete_CTRL-E*
|
||||
When completion is active you can use CTRL-E to stop it and go back to the
|
||||
originally typed text. The CTRL-E will not be inserted.
|
||||
|
||||
+17
-3
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Jan 23
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Feb 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2183,6 +2183,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
scores when "fuzzy" is enabled. Candidates will appear
|
||||
in their original order.
|
||||
|
||||
preinsert
|
||||
Preinsert the portion of the first candidate word that is
|
||||
not part of the current completion leader and using the
|
||||
|hl-ComplMatchIns| highlight group. Does not work when
|
||||
"fuzzy" is also included.
|
||||
|
||||
*'completepopup'* *'cpp'*
|
||||
'completepopup' 'cpp' string (default empty)
|
||||
global
|
||||
@@ -3292,6 +3298,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Otherwise this is a comma-separated list of event names. Example: >
|
||||
:set ei=WinEnter,WinLeave
|
||||
<
|
||||
*'eventignorewin'* *'eiw'*
|
||||
'eventignorewin' 'eiw' string (default "")
|
||||
window-local
|
||||
Similar to 'eventignore' but applies to a particular window and its
|
||||
buffers, for which window and buffer related autocommands can be
|
||||
ignored indefinitely without affecting the global 'eventignore'.
|
||||
|
||||
*'expandtab'* *'et'* *'noexpandtab'* *'noet'*
|
||||
'expandtab' 'et' boolean (default off)
|
||||
local to buffer
|
||||
@@ -5189,7 +5202,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set keyprotocol=kitty:kitty,foot:kitty,ghostty:kitty,wezterm:kitty
|
||||
set keyprotocol+=xterm:mok2
|
||||
|
||||
< This means that when 'term' contains "kitty, "foot", "ghostty" or
|
||||
< 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.
|
||||
|
||||
@@ -8631,7 +8644,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< You need to do this when your system has no locale support for UTF-8.
|
||||
|
||||
*'termguicolors'* *'tgc'* *'notermguicolors'* *'notgc'* *E954*
|
||||
'termguicolors' 'tgc' boolean (default off)
|
||||
'termguicolors' 'tgc' boolean (default off unless Vim detects that it runs
|
||||
in a capable terminal)
|
||||
global
|
||||
{not available when compiled without the
|
||||
|+termguicolors| feature}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_gzip.txt* For Vim version 9.1. Last change: 2023 Nov 14
|
||||
*pi_gzip.txt* For Vim version 9.1. Last change: 2025 Feb 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -28,12 +28,13 @@ The plugin installs autocommands to intercept reading and writing of files
|
||||
with these extensions:
|
||||
|
||||
extension compression ~
|
||||
*.Z compress (Lempel-Ziv)
|
||||
*.gz gzip
|
||||
*.bz2 bzip2
|
||||
*.gz gzip
|
||||
*.lz lzip
|
||||
*.lz4 lz4
|
||||
*.lzma lzma
|
||||
*.xz xz
|
||||
*.lz lzip
|
||||
*.Z compress (Lempel-Ziv)
|
||||
*.zst zstd
|
||||
|
||||
That's actually the only thing you need to know. There are no options.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 9.1. Last change: 2025 Jan 08
|
||||
*popup.txt* For Vim version 9.1. Last change: 2025 Feb 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -504,7 +504,7 @@ popup_menu({what}, {options}) *popup_menu()*
|
||||
\ mapping: 0,
|
||||
\ })
|
||||
< The current line is highlighted with a match using
|
||||
"PopupSelected", or "PmenuSel" if that is not defined.
|
||||
|hl-PopupSelected| which is linked to "PmenuSel" by default.
|
||||
|
||||
Use {options} to change the properties. Should at least set
|
||||
"callback" to a function that handles the selected item.
|
||||
@@ -559,7 +559,7 @@ popup_notification({what}, {options}) *popup_notification()*
|
||||
\ close: 'click',
|
||||
\ padding: [0,1,0,1],
|
||||
\ })
|
||||
< The PopupNotification highlight group is used instead of
|
||||
< The |hl-PopupNotification| highlight group is used instead of
|
||||
WarningMsg if it is defined.
|
||||
|
||||
Without the |+timers| feature the popup will not disappear
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2024 Nov 02
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2025 Feb 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -700,6 +700,7 @@ Short explanation of each option: *option-list*
|
||||
'errorformat' 'efm' description of the lines in the error file
|
||||
'esckeys' 'ek' recognize function keys in Insert mode
|
||||
'eventignore' 'ei' autocommand events that are ignored
|
||||
'eventignorewin' 'eiw' autocommand events that are ignored in a window
|
||||
'expandtab' 'et' use spaces when <Tab> is inserted
|
||||
'exrc' 'ex' read .vimrc and .exrc in the current directory
|
||||
'fileencoding' 'fenc' file encoding for multibyte text
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Jan 20
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Feb 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -5831,8 +5831,8 @@ CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
|
||||
MatchParen Character under the cursor or just before it, if it
|
||||
is a paired bracket, and its match. |pi_paren.txt|
|
||||
*hl-MessageWindow*
|
||||
MessageWindow Messages popup window used by `:echowindow`. If not defined
|
||||
|hl-WarningMsg| is used.
|
||||
MessageWindow Messages popup window used by `:echowindow`. Linked to
|
||||
|hl-WarningMsg| by default.
|
||||
*hl-ModeMsg*
|
||||
ModeMsg 'showmode' message (e.g., "-- INSERT --").
|
||||
*hl-MsgArea*
|
||||
@@ -5872,10 +5872,13 @@ 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-PopupSelected*
|
||||
PopupSelected Popup window created with |popup_menu()|. Linked to
|
||||
|hl-PmenuSel| by default.
|
||||
*hl-PopupNotification*
|
||||
PopupNotification
|
||||
Popup window created with |popup_notification()|. If not
|
||||
defined |hl-WarningMsg| is used.
|
||||
Popup window created with |popup_notification()|. Linked to
|
||||
|hl-WarningMsg| by default.
|
||||
*hl-Question*
|
||||
Question |hit-enter| prompt and yes/no questions.
|
||||
*hl-QuickFixLine*
|
||||
|
||||
+10
-13
@@ -234,6 +234,7 @@ $quote eval.txt /*$quote*
|
||||
'ef' options.txt /*'ef'*
|
||||
'efm' options.txt /*'efm'*
|
||||
'ei' options.txt /*'ei'*
|
||||
'eiw' options.txt /*'eiw'*
|
||||
'ek' options.txt /*'ek'*
|
||||
'emo' options.txt /*'emo'*
|
||||
'emoji' options.txt /*'emoji'*
|
||||
@@ -252,6 +253,7 @@ $quote eval.txt /*$quote*
|
||||
'esckeys' options.txt /*'esckeys'*
|
||||
'et' options.txt /*'et'*
|
||||
'eventignore' options.txt /*'eventignore'*
|
||||
'eventignorewin' options.txt /*'eventignorewin'*
|
||||
'ex' options.txt /*'ex'*
|
||||
'expandtab' options.txt /*'expandtab'*
|
||||
'exrc' options.txt /*'exrc'*
|
||||
@@ -2156,14 +2158,13 @@ $quote eval.txt /*$quote*
|
||||
:LP pi_logipat.txt /*:LP*
|
||||
:LPE pi_logipat.txt /*:LPE*
|
||||
:LPF pi_logipat.txt /*:LPF*
|
||||
:Launch pi_netrw.txt /*:Launch*
|
||||
:Launch eval.txt /*:Launch*
|
||||
:Lexplore pi_netrw.txt /*:Lexplore*
|
||||
:Lfilter quickfix.txt /*:Lfilter*
|
||||
:LogiPat pi_logipat.txt /*:LogiPat*
|
||||
:Man filetype.txt /*:Man*
|
||||
:MkVimball pi_vimball.txt /*:MkVimball*
|
||||
:N editing.txt /*:N*
|
||||
:NetrwClean pi_netrw.txt /*:NetrwClean*
|
||||
:Nexplore pi_netrw.txt /*:Nexplore*
|
||||
:Next editing.txt /*:Next*
|
||||
:NoMatchParen pi_paren.txt /*:NoMatchParen*
|
||||
@@ -2174,7 +2175,7 @@ $quote eval.txt /*$quote*
|
||||
:Ntree pi_netrw.txt /*:Ntree*
|
||||
:Nw pi_netrw.txt /*:Nw*
|
||||
:Nwrite pi_netrw.txt /*:Nwrite*
|
||||
:Open pi_netrw.txt /*:Open*
|
||||
:Open eval.txt /*:Open*
|
||||
:Over terminal.txt /*:Over*
|
||||
:P various.txt /*:P*
|
||||
:Pexplore pi_netrw.txt /*:Pexplore*
|
||||
@@ -6981,6 +6982,8 @@ disable-menus gui.txt /*disable-menus*
|
||||
discard editing.txt /*discard*
|
||||
dist#vim eval.txt /*dist#vim*
|
||||
dist#vim9 eval.txt /*dist#vim9*
|
||||
dist#vim9#Launch() eval.txt /*dist#vim9#Launch()*
|
||||
dist#vim9#Open() eval.txt /*dist#vim9#Open()*
|
||||
distribute-script usr_51.txt /*distribute-script*
|
||||
distributed-plugins usr_05.txt /*distributed-plugins*
|
||||
distribution intro.txt /*distribution*
|
||||
@@ -7630,6 +7633,7 @@ g:NetrwTopLvlMenu pi_netrw.txt /*g:NetrwTopLvlMenu*
|
||||
g:Netrw_UserMaps pi_netrw.txt /*g:Netrw_UserMaps*
|
||||
g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler*
|
||||
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
|
||||
g:Openprg eval.txt /*g:Openprg*
|
||||
g:actual_curbuf options.txt /*g:actual_curbuf*
|
||||
g:actual_curwin options.txt /*g:actual_curwin*
|
||||
g:ada#Comment ft_ada.txt /*g:ada#Comment*
|
||||
@@ -7735,8 +7739,6 @@ g:netrw_altv pi_netrw.txt /*g:netrw_altv*
|
||||
g:netrw_banner pi_netrw.txt /*g:netrw_banner*
|
||||
g:netrw_bannerbackslash pi_netrw.txt /*g:netrw_bannerbackslash*
|
||||
g:netrw_browse_split pi_netrw.txt /*g:netrw_browse_split*
|
||||
g:netrw_browsex_support_remote pi_netrw.txt /*g:netrw_browsex_support_remote*
|
||||
g:netrw_browsex_viewer pi_netrw.txt /*g:netrw_browsex_viewer*
|
||||
g:netrw_bufsettings pi_netrw.txt /*g:netrw_bufsettings*
|
||||
g:netrw_chgperm pi_netrw.txt /*g:netrw_chgperm*
|
||||
g:netrw_chgwin pi_netrw.txt /*g:netrw_chgwin*
|
||||
@@ -7765,7 +7767,6 @@ g:netrw_ftp_timelist_cmd pi_netrw.txt /*g:netrw_ftp_timelist_cmd*
|
||||
g:netrw_ftpextracmd pi_netrw.txt /*g:netrw_ftpextracmd*
|
||||
g:netrw_ftpmode pi_netrw.txt /*g:netrw_ftpmode*
|
||||
g:netrw_glob_escape pi_netrw.txt /*g:netrw_glob_escape*
|
||||
g:netrw_gx pi_netrw.txt /*g:netrw_gx*
|
||||
g:netrw_hide pi_netrw.txt /*g:netrw_hide*
|
||||
g:netrw_home pi_netrw.txt /*g:netrw_home*
|
||||
g:netrw_http_cmd pi_netrw.txt /*g:netrw_http_cmd*
|
||||
@@ -7791,7 +7792,6 @@ g:netrw_menu pi_netrw.txt /*g:netrw_menu*
|
||||
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
|
||||
g:netrw_mousemaps pi_netrw.txt /*g:netrw_mousemaps*
|
||||
g:netrw_nobeval pi_netrw.txt /*g:netrw_nobeval*
|
||||
g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
|
||||
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
|
||||
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
|
||||
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
|
||||
@@ -7817,7 +7817,6 @@ g:netrw_special_syntax pi_netrw.txt /*g:netrw_special_syntax*
|
||||
g:netrw_ssh_browse_reject pi_netrw.txt /*g:netrw_ssh_browse_reject*
|
||||
g:netrw_ssh_cmd pi_netrw.txt /*g:netrw_ssh_cmd*
|
||||
g:netrw_sshport pi_netrw.txt /*g:netrw_sshport*
|
||||
g:netrw_suppress_gx_mesg pi_netrw.txt /*g:netrw_suppress_gx_mesg*
|
||||
g:netrw_timefmt pi_netrw.txt /*g:netrw_timefmt*
|
||||
g:netrw_tmpfile_escape pi_netrw.txt /*g:netrw_tmpfile_escape*
|
||||
g:netrw_uid pi_netrw.txt /*g:netrw_uid*
|
||||
@@ -8162,6 +8161,7 @@ gvimrc gui.txt /*gvimrc*
|
||||
gw change.txt /*gw*
|
||||
gwgw change.txt /*gwgw*
|
||||
gww change.txt /*gww*
|
||||
gx eval.txt /*gx*
|
||||
gzip pi_gzip.txt /*gzip*
|
||||
gzip-autocmd pi_gzip.txt /*gzip-autocmd*
|
||||
gzip-example autocmd.txt /*gzip-example*
|
||||
@@ -8299,6 +8299,7 @@ hl-PmenuSbar syntax.txt /*hl-PmenuSbar*
|
||||
hl-PmenuSel syntax.txt /*hl-PmenuSel*
|
||||
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
|
||||
hl-PopupNotification syntax.txt /*hl-PopupNotification*
|
||||
hl-PopupSelected syntax.txt /*hl-PopupSelected*
|
||||
hl-Question syntax.txt /*hl-Question*
|
||||
hl-QuickFixLine syntax.txt /*hl-QuickFixLine*
|
||||
hl-Scrollbar syntax.txt /*hl-Scrollbar*
|
||||
@@ -9159,7 +9160,6 @@ netrw-call pi_netrw.txt /*netrw-call*
|
||||
netrw-cb pi_netrw.txt /*netrw-cb*
|
||||
netrw-cd pi_netrw.txt /*netrw-cd*
|
||||
netrw-chgup pi_netrw.txt /*netrw-chgup*
|
||||
netrw-clean pi_netrw.txt /*netrw-clean*
|
||||
netrw-contents pi_netrw.txt /*netrw-contents*
|
||||
netrw-copyright pi_netrw.txt /*netrw-copyright*
|
||||
netrw-cr pi_netrw.txt /*netrw-cr*
|
||||
@@ -9169,7 +9169,6 @@ netrw-ctrl-h pi_netrw.txt /*netrw-ctrl-h*
|
||||
netrw-ctrl-l pi_netrw.txt /*netrw-ctrl-l*
|
||||
netrw-ctrl-r pi_netrw.txt /*netrw-ctrl-r*
|
||||
netrw-ctrl_l pi_netrw.txt /*netrw-ctrl_l*
|
||||
netrw-curdir pi_netrw.txt /*netrw-curdir*
|
||||
netrw-d pi_netrw.txt /*netrw-d*
|
||||
netrw-del pi_netrw.txt /*netrw-del*
|
||||
netrw-delete pi_netrw.txt /*netrw-delete*
|
||||
@@ -9198,8 +9197,6 @@ netrw-gitignore pi_netrw.txt /*netrw-gitignore*
|
||||
netrw-gn pi_netrw.txt /*netrw-gn*
|
||||
netrw-gp pi_netrw.txt /*netrw-gp*
|
||||
netrw-grep pi_netrw.txt /*netrw-grep*
|
||||
netrw-gx pi_netrw.txt /*netrw-gx*
|
||||
netrw-handler pi_netrw.txt /*netrw-handler*
|
||||
netrw-help pi_netrw.txt /*netrw-help*
|
||||
netrw-hexplore pi_netrw.txt /*netrw-hexplore*
|
||||
netrw-hide pi_netrw.txt /*netrw-hide*
|
||||
@@ -9328,7 +9325,6 @@ netrw-vexplore pi_netrw.txt /*netrw-vexplore*
|
||||
netrw-windows-netrc pi_netrw.txt /*netrw-windows-netrc*
|
||||
netrw-windows-s pi_netrw.txt /*netrw-windows-s*
|
||||
netrw-write pi_netrw.txt /*netrw-write*
|
||||
netrw-x pi_netrw.txt /*netrw-x*
|
||||
netrw-xfer pi_netrw.txt /*netrw-xfer*
|
||||
netrw.txt pi_netrw.txt /*netrw.txt*
|
||||
netrw.vim pi_netrw.txt /*netrw.vim*
|
||||
@@ -9434,6 +9430,7 @@ new-vimscript-8.2 version8.txt /*new-vimscript-8.2*
|
||||
new-virtedit version6.txt /*new-virtedit*
|
||||
news intro.txt /*news*
|
||||
nextnonblank() builtin.txt /*nextnonblank()*
|
||||
ngettext() builtin.txt /*ngettext()*
|
||||
no-eval-feature eval.txt /*no-eval-feature*
|
||||
no-type-checking eval.txt /*no-type-checking*
|
||||
no_buffers_menu gui.txt /*no_buffers_menu*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
*terminal.txt* For Vim version 9.1. Last change: 2025 Feb 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -999,7 +999,8 @@ term_wait({buf} [, {time}]) *term_wait()*
|
||||
Wait for pending updates of {buf} to be handled.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{time} is how long to wait for updates to arrive in msec. If
|
||||
not set then 10 msec will be used.
|
||||
not set then 10 msec will be used. Queued messages will also
|
||||
be processed similar to |:sleep|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetBufnr()->term_wait()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Jan 16
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Feb 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -467,9 +467,6 @@ IDEA: when drawing the text, store the text byte index in ScreenLinesIdx[].
|
||||
When converting screen column to text position use this.
|
||||
The line number can be obtained from win->w_lines[].
|
||||
|
||||
Version of getchar() that does not move the cursor - #10603 Use a separate
|
||||
argument for the new flag.
|
||||
|
||||
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
|
||||
|
||||
Can we add highlighting to ":echowindow"?
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_02.txt* For Vim version 9.1. Last change: 2025 Jan 16
|
||||
*usr_02.txt* For Vim version 9.1. Last change: 2025 Feb 01
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -698,8 +698,8 @@ Summary: *help-summary* >
|
||||
package-<name>. So >
|
||||
:help package-comment
|
||||
<
|
||||
will bring you to the help section for the included comment plugin and how to
|
||||
enable it.
|
||||
will bring you to the help section for the included comment plugin and how
|
||||
to enable it.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_25.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
*usr_25.txt* For Vim version 9.1. Last change: 2025 Feb 01
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -190,7 +190,7 @@ This results in the following:
|
||||
story. ~
|
||||
|
||||
|
||||
JUSTIFYING TEXT *justify* *:Justify* *Justify()* *package-justify*
|
||||
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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Jan 16
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Feb 01
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -801,6 +801,7 @@ String manipulation: *string-functions*
|
||||
trim() trim characters from a string
|
||||
bindtextdomain() set message lookup translation base path
|
||||
gettext() lookup message translation
|
||||
ngettext() lookup single/plural message translation
|
||||
str2blob() convert a list of strings into a blob
|
||||
blob2str() convert a blob into a list of strings
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 9.1. Last change: 2024 Dec 16
|
||||
*various.txt* For Vim version 9.1. Last change: 2025 Feb 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -768,9 +768,8 @@ K Run a program to lookup the keyword under the
|
||||
MS-Windows). "gs" stands for "goto sleep".
|
||||
While sleeping the cursor is positioned in the text,
|
||||
if at a visible position.
|
||||
Also process the received netbeans messages. {only
|
||||
available when compiled with the |+netbeans_intg|
|
||||
feature}
|
||||
Queued messages and timers (|+timers|) are processed
|
||||
during the sleep as well.
|
||||
|
||||
*:sl!* *:sleep!*
|
||||
:[N]sl[eep]! [N][m] Same as above, but hide the cursor.
|
||||
|
||||
+26
-11
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Jan 23
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -41551,6 +41551,8 @@ Add support for internal builtin functions with vim9 objects, see
|
||||
|
||||
Enum support for Vim9 script |:enum|
|
||||
|
||||
Support for protected _new() method
|
||||
|
||||
*new-other-9.2*
|
||||
Other new features ~
|
||||
------------------
|
||||
@@ -41563,7 +41565,7 @@ Support for the XDG Desktop Specification |xdg-base-dir|
|
||||
Support for translating messages in Vim script plugins using the |gettext()|
|
||||
and |bindtextdomain()| functions.
|
||||
|
||||
Support highlighting the matched text and the completion kind for insert-mode
|
||||
Support highlighting the matched text and the completion kind for insert-mode
|
||||
completion and command-line completion in |ins-completion-menu|, see
|
||||
|complete-items|
|
||||
|
||||
@@ -41571,6 +41573,17 @@ Include the "linematch" algorithm for the 'diffopt' setting. This aligns
|
||||
changes between buffers on similar lines improving the diff highlighting in
|
||||
Vim
|
||||
|
||||
Adjusted default values ~
|
||||
-----------------------
|
||||
- the default 'history' option value has been increased to 200 and removed
|
||||
from |defaults.vim|
|
||||
- the default 'backspace' option for Vim has been set to "indent,eol,start"
|
||||
and removed from |defaults.vim|
|
||||
- the default fontsize for the GTK builds of Vim (Windows and Unix) has been
|
||||
increased to 12pt to accomodate modern high-dpi monitors
|
||||
- the default value of the 'keyprotocol' option has been updated and support
|
||||
for the ghostty terminal emulator (using kitty protocol) has been added
|
||||
|
||||
*changed-9.2*
|
||||
Changed~
|
||||
-------
|
||||
@@ -41611,21 +41624,21 @@ Changed~
|
||||
- allow to pass local Vim script variables to python interpreter |py3eval()|
|
||||
- |getwininfo()| now also returns the "leftcol" property for a window
|
||||
- 'rulerformat' now supports the |stl-%!| item
|
||||
- the default 'history' option value has been increased to 200 and removed
|
||||
from |defaults.vim|
|
||||
- the default 'backspace' option for Vim has been set to "indent,eol,start"
|
||||
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
|
||||
- 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
|
||||
- New option value "nosort" for 'completeopt'
|
||||
- New option value for 'completeopt':
|
||||
"nosort" - do not sort completion results
|
||||
"preinsert" - highlight to be inserted values
|
||||
- add |dist#vim9#Launch()| and |dist#vim9#Open()| to the |vim-script-library|
|
||||
and decouple it from |netrw|
|
||||
- new digraph "APPROACHES THE LIMIT" using ".="
|
||||
- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
|
||||
behaviour, return type and whether or not to simplify the returned key
|
||||
- handle multi-line completion as expected
|
||||
|
||||
*added-9.2*
|
||||
Added ~
|
||||
@@ -41651,6 +41664,7 @@ Functions: ~
|
||||
Channel or Blob variable
|
||||
|matchbufline()| all the matches of a pattern in a buffer
|
||||
|matchstrlist()| all the matches of a pattern in a List of strings
|
||||
|ngettext()| lookup single/plural message translation
|
||||
|popup_setbuf()| switch to a different buffer in a popup
|
||||
|str2blob()| convert a List of strings into a blob
|
||||
|
||||
@@ -41683,6 +41697,7 @@ Options: ~
|
||||
|
||||
'completeitemalign' Order of |complete-items| in Insert mode completion
|
||||
popup
|
||||
'eventignorewin' autocommand events that are ignored in a window
|
||||
'findfunc' Vim function to obtain the results for a |:find|
|
||||
command
|
||||
'messagesopt' configure |:messages| and |hit-enter| prompt
|
||||
|
||||
+14
-22
@@ -1,4 +1,4 @@
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2024 Dec 29
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2025 Feb 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -52,7 +52,6 @@ An interface is used to specify properties of an object:
|
||||
The class hierarchy allows for single inheritance. Otherwise interfaces are
|
||||
to be used where needed.
|
||||
|
||||
|
||||
Class modeling ~
|
||||
|
||||
You can model classes any way you like. Keep in mind what you are building,
|
||||
@@ -122,7 +121,6 @@ using the object name followed by a dot following by the member: >
|
||||
A class name cannot be used as an expression. A class name cannot be used in
|
||||
the left-hand-side of an assignment.
|
||||
|
||||
|
||||
Object variable write access ~
|
||||
*read-only-variable*
|
||||
Now try to change an object variable directly: >
|
||||
@@ -272,6 +270,9 @@ no need to call "super()" or "new()" on the parent.
|
||||
When defining the new() method the return type should not be specified. It
|
||||
always returns an object of the class.
|
||||
|
||||
The new() method can be made a protected method by using "_new()". This can
|
||||
be used to support the singleton design pattern.
|
||||
|
||||
*E1386*
|
||||
When invoking an object method, the method name should be preceded by the
|
||||
object variable name. An object method cannot be invoked using the class
|
||||
@@ -623,13 +624,15 @@ once. They can appear in any order, although this order is recommended: >
|
||||
extends ClassName
|
||||
implements InterfaceName, OtherInterface
|
||||
specifies SomeInterface
|
||||
< *E1355* *E1369*
|
||||
<
|
||||
The "specifies" feature is currently not implemented.
|
||||
|
||||
*E1355* *E1369*
|
||||
Each variable and method name can be used only once. It is not possible to
|
||||
define a method with the same name and different type of arguments. It is not
|
||||
possible to use a public and protected member variable with the same name. An
|
||||
object variable name used in a super class cannot be reused in a child class.
|
||||
|
||||
|
||||
Object Variable Initialization ~
|
||||
|
||||
If the type of a variable is not explicitly specified in a class, then it is
|
||||
@@ -686,13 +689,12 @@ A class can implement one or more interfaces. The "implements" keyword can
|
||||
only appear once *E1350* . Multiple interfaces can be specified, separated by
|
||||
commas. Each interface name can appear only once. *E1351*
|
||||
|
||||
|
||||
A class defining an interface ~
|
||||
*specifies*
|
||||
A class can declare its interface, the object variables and methods, with a
|
||||
named interface. This avoids the need for separately specifying the
|
||||
interface, which is often done in many languages, especially Java.
|
||||
|
||||
TODO: This is currently not implemented.
|
||||
|
||||
Items in a class ~
|
||||
*E1318* *E1325* *E1388*
|
||||
@@ -733,25 +735,25 @@ Some of the builtin functions like |empty()|, |len()| and |string()| can be
|
||||
used with an object. An object can implement a method with the same name as
|
||||
these builtin functions to return an object-specific value.
|
||||
|
||||
*E1412*
|
||||
*E1412*
|
||||
The following builtin methods are supported:
|
||||
*object-empty()*
|
||||
*object-empty()*
|
||||
empty() Invoked by the |empty()| function to check whether an object is
|
||||
empty. If this method is missing, then true is returned. This
|
||||
method should not accept any arguments and must return a boolean.
|
||||
*object-len()*
|
||||
*object-len()*
|
||||
len() Invoked by the |len()| function to return the length of an
|
||||
object. If this method is missing in the class, then an error is
|
||||
given and zero is returned. This method should not accept any
|
||||
arguments and must return a number.
|
||||
*object-string()*
|
||||
*object-string()*
|
||||
string() Invoked by the |string()| function to get a textual
|
||||
representation of an object. Also used by the |:echo| command
|
||||
for an object. If this method is missing in the class, then a
|
||||
built-in default textual representation is used. This method
|
||||
should not accept any arguments and must return a string.
|
||||
|
||||
*E1413*
|
||||
*E1413*
|
||||
A class method cannot be used as a builtin method.
|
||||
|
||||
Defining an interface ~
|
||||
@@ -783,7 +785,6 @@ An interface can only be defined in a |Vim9| script file. *E1342*
|
||||
An interface cannot "implement" another interface but it can "extend" another
|
||||
interface. *E1381*
|
||||
|
||||
|
||||
null object ~
|
||||
|
||||
When a variable is declared to have the type of an object, but it is not
|
||||
@@ -792,7 +793,6 @@ does not know what class was supposed to be used. Vim then cannot check if
|
||||
a variable name is correct and you will get a "Using a null object" error,
|
||||
even when the variable name is invalid. *E1360* *E1362*
|
||||
|
||||
|
||||
Default constructor ~
|
||||
*default-constructor*
|
||||
In case you define a class without a new() method, one will be automatically
|
||||
@@ -1115,7 +1115,6 @@ For |Vim9| script using the same method name for all constructors seemed like
|
||||
the right choice, and by calling it new() the relation between the caller and
|
||||
the method being called is obvious.
|
||||
|
||||
|
||||
No overloading of the constructor ~
|
||||
|
||||
In Vim script, both legacy and |Vim9| script, there is no overloading of
|
||||
@@ -1136,7 +1135,6 @@ That way multiple constructors with different arguments are possible, while it
|
||||
is very easy to see which constructor is being used. And the type of
|
||||
arguments can be properly checked.
|
||||
|
||||
|
||||
No overloading of methods ~
|
||||
|
||||
Same reasoning as for the constructor: It is often not obvious what type
|
||||
@@ -1145,7 +1143,6 @@ actually being called. Better just give the methods a different name, then
|
||||
type checking will make sure it works as you intended. This rules out
|
||||
polymorphism, which we don't really need anyway.
|
||||
|
||||
|
||||
Single inheritance and interfaces ~
|
||||
|
||||
Some languages support multiple inheritance. Although that can be useful in
|
||||
@@ -1161,7 +1158,6 @@ it will be checked if that change was also changed. The mechanism to assume a
|
||||
class implements an interface just because the methods happen to match is
|
||||
brittle and leads to obscure problems, let's not do that.
|
||||
|
||||
|
||||
Using "this.variable" everywhere ~
|
||||
|
||||
The object variables in various programming languages can often be accessed in
|
||||
@@ -1180,7 +1176,6 @@ variables. Simple and consistent. When looking at the code inside a class
|
||||
it's also directly clear which variable references are object variables and
|
||||
which aren't.
|
||||
|
||||
|
||||
Using class variables ~
|
||||
|
||||
Using "static variable" to declare a class variable is very common, nothing
|
||||
@@ -1194,7 +1189,6 @@ the class. This has two problems: The class name can be rather long, taking
|
||||
up quite a bit of space, and when the class is renamed all these places need
|
||||
to be changed too.
|
||||
|
||||
|
||||
Declaring object and class variables ~
|
||||
|
||||
The main choice is whether to use "var" as with variable declarations.
|
||||
@@ -1248,7 +1242,6 @@ function declaration syntax for class/object variables and methods. Vim9 also
|
||||
reuses the general function declaration syntax for methods. So, for the sake
|
||||
of consistency, we require "var" in these declarations.
|
||||
|
||||
|
||||
Using "ClassName.new()" to construct an object ~
|
||||
|
||||
Many languages use the "new" operator to create an object, which is actually
|
||||
@@ -1312,7 +1305,6 @@ An alternative would have been using the "protected" keyword, just like
|
||||
"public" changes the access in the other direction. Well, that's just to
|
||||
reduce the number of keywords.
|
||||
|
||||
|
||||
No private object variables ~
|
||||
|
||||
Some languages provide several ways to control access to object variables.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Jan 21
|
||||
" Last Change: 2025 Feb 08
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
@@ -2212,7 +2212,7 @@ au BufNewFile,BufRead *.sass setf sass
|
||||
au BufNewFile,BufRead *.sa call dist#ft#FTsa()
|
||||
|
||||
" Scala
|
||||
au BufNewFile,BufRead *.scala setf scala
|
||||
au BufNewFile,BufRead *.scala,*.mill setf scala
|
||||
|
||||
" SBT - Scala Build Tool
|
||||
au BufNewFile,BufRead *.sbt setf sbt
|
||||
@@ -2646,7 +2646,7 @@ au BufNewFile,BufRead *.toml setf toml
|
||||
au BufNewFile,BufRead *.tpp setf tpp
|
||||
|
||||
" TRACE32 Script Language
|
||||
au BufNewFile,BufRead *.cmm,*.t32 setf trace32
|
||||
au BufNewFile,BufRead *.cmm,*.cmmt,*.t32 setf trace32
|
||||
|
||||
" Treetop
|
||||
au BufRead,BufNewFile *.treetop setf treetop
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
" Vim filetype plugin
|
||||
" Language: dnsmasq
|
||||
" Maintainer: dringsim <dringsim@qq.com>
|
||||
" Last Change: 2025-02-18
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Behaves mostly just like cfg
|
||||
runtime! ftplugin/cfg.vim
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Configuration File (ini file) for MS-DOS/MS Windows
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Latest Revision: 2025 Feb 20
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -13,7 +14,7 @@ set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
|
||||
setlocal comments=:; commentstring=;\ %s formatoptions-=t formatoptions+=croql
|
||||
setlocal comments=:;,:# commentstring=;\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin
|
||||
" Language: exports(5) configuration file
|
||||
" Maintainer: Matt Perry <matt@mattperry.com>
|
||||
" Last Change: 2025 Feb 13
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms< fo<'
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Mail
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Last Change: 2025 Feb 20
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
@@ -10,7 +10,7 @@ if exists("b:did_ftplugin")
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl modeline< tw< fo< comments<"
|
||||
let b:undo_ftplugin = "setl modeline< tw< fo< comments< commentstring<"
|
||||
|
||||
" Don't use modelines in e-mail messages, avoid trojan horses and nasty
|
||||
" "jokes" (e.g., setting 'textwidth' to 5).
|
||||
@@ -24,6 +24,9 @@ endif
|
||||
" Set 'formatoptions' to break text lines and keep the comment leader ">".
|
||||
setlocal fo+=tcql
|
||||
|
||||
" Set commentstring to quoting sign ">" so comment shortcuts can be used to
|
||||
" edit quoted parts of mail
|
||||
setlocal commentstring=>\ %s
|
||||
" Add n:> to 'comments, in case it was removed elsewhere
|
||||
setlocal comments+=n:>
|
||||
|
||||
|
||||
@@ -2,8 +2,11 @@
|
||||
" Language: roff(7)
|
||||
" Maintainer: Aman Verma
|
||||
" Homepage: https://github.com/a-vrma/vim-nroff-ftplugin
|
||||
" Document: https://www.gnu.org/software/groff/manual/groff.html
|
||||
" Previous Maintainer: Chris Spiegel <cspiegel@gmail.com>
|
||||
" 2024 May 24 by Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
" Last Changes:
|
||||
" 2024 May 24 by Riley Bruins <ribru17@gmail.com> ('commentstring' #14843)
|
||||
" 2025 Feb 12 by Wu, Zhenyu <wuzhenyu@ustc.edu> (matchit configuration #16619)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -13,5 +16,17 @@ let b:did_ftplugin = 1
|
||||
setlocal commentstring=.\\\"\ %s
|
||||
setlocal comments=:.\\\"
|
||||
setlocal sections+=Sh
|
||||
setlocal define=.\s*de
|
||||
|
||||
let b:undo_ftplugin = 'setlocal commentstring< comments< sections<'
|
||||
let b:undo_ftplugin = 'setlocal commentstring< comments< sections< define<'
|
||||
|
||||
if exists('loaded_matchit')
|
||||
let b:match_words = '^\.\s*ie\>:^\.\s*el\>'
|
||||
\ . ',^\.\s*LB\>:^\.\s*LI\>:^\.\s*LE\>'
|
||||
\ . ',^\.\s*TS\>:^\.\s*TE\>'
|
||||
\ . ',^\.\s*PS\>:^\.\s*P[EF]\>'
|
||||
\ . ',^\.\s*EQ\>:^\.\s*EN\>'
|
||||
\ . ',^\.\s*[\>:^\.\s*]\>'
|
||||
\ . ',^\.\s*FS\>:^\.\s*FE\>'
|
||||
let b:undo_ftplugin .= "| unlet b:match_words"
|
||||
endif
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin
|
||||
" Language: smb.conf(5) configuration file
|
||||
" Maintainer: Matt Perry <matt@mattperry.com>
|
||||
" Last Change: 2025 Feb 13
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:;,:# commentstring=#\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms< fo<'
|
||||
@@ -0,0 +1,87 @@
|
||||
" Vim Keymap file for ukrainian characters MS Windows enhanced variant.
|
||||
" This file is based on russian-jcukenwin.vim by Artem Chuprina <ran@ran.pp.ru>.
|
||||
" Keymap has been originally created by Ivan Korneliuk <vansha@gmail.com>.
|
||||
|
||||
" Maintainer: Vladyslav Rehan <rehanvladyslav@gmail.com>
|
||||
" Last Changed: 2025 feb 13
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let b:keymap_name = "uk"
|
||||
|
||||
loadkeymap
|
||||
~ ’ RIGHT SINGLE QUOTATION MARK
|
||||
` ' APOSTROPHE
|
||||
F А CYRILLIC CAPITAL LETTER A
|
||||
< Б CYRILLIC CAPITAL LETTER BE
|
||||
D В CYRILLIC CAPITAL LETTER VE
|
||||
U Г CYRILLIC CAPITAL LETTER GHE
|
||||
| Ґ CYRILLIC CAPITAL LETTER GHE WITH UPTURN
|
||||
L Д CYRILLIC CAPITAL LETTER DE
|
||||
T Е CYRILLIC CAPITAL LETTER IE
|
||||
: Ж CYRILLIC CAPITAL LETTER ZHE
|
||||
P З CYRILLIC CAPITAL LETTER ZE
|
||||
B И CYRILLIC CAPITAL LETTER I
|
||||
S І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
} Ї CYRILLIC CAPITAL LETTER YI
|
||||
Q Й CYRILLIC CAPITAL LETTER SHORT I
|
||||
R К CYRILLIC CAPITAL LETTER KA
|
||||
K Л CYRILLIC CAPITAL LETTER EL
|
||||
V М CYRILLIC CAPITAL LETTER EM
|
||||
Y Н CYRILLIC CAPITAL LETTER EN
|
||||
J О CYRILLIC CAPITAL LETTER O
|
||||
G П CYRILLIC CAPITAL LETTER PE
|
||||
H Р CYRILLIC CAPITAL LETTER ER
|
||||
C С CYRILLIC CAPITAL LETTER ES
|
||||
N Т CYRILLIC CAPITAL LETTER TE
|
||||
E У CYRILLIC CAPITAL LETTER U
|
||||
A Ф CYRILLIC CAPITAL LETTER EF
|
||||
{ Х CYRILLIC CAPITAL LETTER HA
|
||||
W Ц CYRILLIC CAPITAL LETTER TSE
|
||||
X Ч CYRILLIC CAPITAL LETTER CHE
|
||||
I Ш CYRILLIC CAPITAL LETTER SHA
|
||||
O Щ CYRILLIC CAPITAL LETTER SHCHA
|
||||
M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
\" Є CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
> Ю CYRILLIC CAPITAL LETTER YU
|
||||
Z Я CYRILLIC CAPITAL LETTER YA
|
||||
f а CYRILLIC SMALL LETTER A
|
||||
, б CYRILLIC SMALL LETTER BE
|
||||
d в CYRILLIC SMALL LETTER VE
|
||||
u г CYRILLIC SMALL LETTER GHE
|
||||
\\ ґ CYRILLIC SMALL LETTER GHE WITH UPTURN
|
||||
l д CYRILLIC SMALL LETTER DE
|
||||
t е CYRILLIC SMALL LETTER IE
|
||||
; ж CYRILLIC SMALL LETTER ZHE
|
||||
p з CYRILLIC SMALL LETTER ZE
|
||||
b и CYRILLIC SMALL LETTER I
|
||||
s і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
] ї CYRILLIC SMALL LETTER YI
|
||||
q й CYRILLIC SMALL LETTER SHORT I
|
||||
r к CYRILLIC SMALL LETTER KA
|
||||
k л CYRILLIC SMALL LETTER EL
|
||||
v м CYRILLIC SMALL LETTER EM
|
||||
y н CYRILLIC SMALL LETTER EN
|
||||
j о CYRILLIC SMALL LETTER O
|
||||
g п CYRILLIC SMALL LETTER PE
|
||||
h р CYRILLIC SMALL LETTER ER
|
||||
c с CYRILLIC SMALL LETTER ES
|
||||
n т CYRILLIC SMALL LETTER TE
|
||||
e у CYRILLIC SMALL LETTER U
|
||||
a ф CYRILLIC SMALL LETTER EF
|
||||
[ х CYRILLIC SMALL LETTER HA
|
||||
w ц CYRILLIC SMALL LETTER TSE
|
||||
x ч CYRILLIC SMALL LETTER CHE
|
||||
i ш CYRILLIC SMALL LETTER SHA
|
||||
o щ CYRILLIC SMALL LETTER SHCHA
|
||||
m ь CYRILLIC SMALL LETTER SOFT SIGN
|
||||
' є CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
. ю CYRILLIC SMALL LETTER YU
|
||||
z я CYRILLIC SMALL LETTER YA
|
||||
@ " QUOTATION MARK
|
||||
# № NUMERO SIGN
|
||||
$ ; SEMICOLON
|
||||
^ : COLON
|
||||
& ? QUESTION MARK
|
||||
/ . FULL STOP
|
||||
? , COMMA
|
||||
+3
-1
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Dec 07
|
||||
" Last Change: 2025 Feb 08
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
@@ -1362,6 +1362,8 @@ call <SID>AddOption("virtualedit", gettext("when to use virtual editing: \"block
|
||||
call <SID>OptionG("ve", &ve)
|
||||
call <SID>AddOption("eventignore", gettext("list of autocommand events which are to be ignored"))
|
||||
call <SID>OptionG("ei", &ei)
|
||||
call <SID>AddOption("eventignorewin", gettext("list of autocommand events which are to be ignored in a window"))
|
||||
call <SID>OptionG("eiw", &eiw)
|
||||
call <SID>AddOption("loadplugins", gettext("load plugin scripts when starting up"))
|
||||
call <SID>BinOptionG("lpl", &lpl)
|
||||
call <SID>AddOption("exrc", gettext("enable reading .vimrc/.exrc/.gvimrc in the current directory"))
|
||||
|
||||
+338
-642
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,61 @@
|
||||
" FUNCTIONS IN THIS FILES ARE MENT TO BE USE BY NETRW.VIM AND NETRW.VIM ONLY.
|
||||
" THIS FUNCTIONS DON'T COMMIT TO ANY BACKWARDS COMPATABILITY. SO CHANGES AND
|
||||
" BREAKAGES IF USED OUTSIDE OF NETRW.VIM ARE EXPECTED.
|
||||
|
||||
" General: {{{
|
||||
|
||||
let s:deprecation_msgs = []
|
||||
function! netrw#own#Deprecate(name, version, alternatives)
|
||||
" If running on neovim use vim.deprecate
|
||||
if has('nvim')
|
||||
let s:alternative = a:alternatives->get('nvim', v:null)
|
||||
call v:lua.vim.deprecate(a:name, s:alternative, a:version, "netrw", v:false)
|
||||
return
|
||||
endif
|
||||
|
||||
" If we did notify for something only do it once
|
||||
if s:deprecation_msgs->index(a:name) >= 0
|
||||
return
|
||||
endif
|
||||
|
||||
let s:alternative = a:alternatives->get('vim', v:null)
|
||||
echohl WarningMsg
|
||||
echomsg s:alternative != v:null
|
||||
\ ? printf('%s is deprecated, use %s instead.', a:name, s:alternative)
|
||||
\ : printf('%s is deprecated.', a:name)
|
||||
echomsg printf('Feature will be removed in netrw %s', a:version)
|
||||
echohl None
|
||||
|
||||
call add(s:deprecation_msgs, a:name)
|
||||
endfunction
|
||||
|
||||
function! netrw#own#Open(file) abort
|
||||
if has('nvim')
|
||||
call luaeval('vim.ui.open(_A[1]) and nil', [a:file])
|
||||
else
|
||||
call dist#vim9#Open(a:file)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" Path Utilities: {{{
|
||||
|
||||
let s:slash = &shellslash ? '/' : '\'
|
||||
|
||||
function! netrw#own#PathJoin(...)
|
||||
let path = ""
|
||||
|
||||
for arg in a:000
|
||||
if empty(path)
|
||||
let path = arg
|
||||
else
|
||||
let path .= s:slash . arg
|
||||
endif
|
||||
endfor
|
||||
|
||||
return path
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
|
||||
" vim:ts=8 sts=4 sw=4 et fdm=marker
|
||||
+1
-7
@@ -15,13 +15,7 @@ if &cp || exists("g:loaded_netrwSettings")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_netrwSettings = "v175"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwSettings = "v177"
|
||||
|
||||
" NetrwSettings: {{{
|
||||
|
||||
|
||||
+6
-146
@@ -59,7 +59,6 @@ Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
|
||||
Changing local-only File Permission.................|netrw-gp|
|
||||
Changing To A Predecessor Directory.................|netrw-u|
|
||||
Changing To A Successor Directory...................|netrw-U|
|
||||
Customizing Browsing With A Special Handler.........|netrw-x|
|
||||
Deleting Bookmarks..................................|netrw-mB|
|
||||
Deleting Files Or Directories.......................|netrw-D|
|
||||
Directory Exploring Commands........................|netrw-explore|
|
||||
@@ -403,9 +402,6 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
*g:netrw_menu* =0 disable netrw's menu
|
||||
=1 (default) netrw's menu enabled
|
||||
|
||||
*g:netrw_nogx* if this variable exists, then the "gx" map will not
|
||||
be available (see |netrw-gx|)
|
||||
|
||||
*g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
|
||||
*s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
|
||||
|
||||
@@ -1113,7 +1109,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
U Change to subsequently-visited directory |netrw-U|
|
||||
v Enter the file/directory under the cursor in a new |netrw-v|
|
||||
browser window. A vertical split is used.
|
||||
x View file with an associated program |netrw-x|
|
||||
x View file with an associated program |:Open|
|
||||
X Execute filename under cursor via |system()| |netrw-X|
|
||||
|
||||
% Open a new file in netrw's current directory |netrw-%|
|
||||
@@ -1140,7 +1136,6 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
|
||||
*netrw-quickcom* *netrw-quickcoms*
|
||||
QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
|
||||
:NetrwClean[!]............................................|netrw-clean|
|
||||
:NetrwSettings............................................|netrw-settings|
|
||||
:Ntree....................................................|netrw-ntree|
|
||||
:Explore[!] [dir] Explore directory of current file......|netrw-explore|
|
||||
@@ -1453,120 +1448,6 @@ The "gn" map will take the word below the cursor and use that for
|
||||
changing the top of the tree listing.
|
||||
|
||||
|
||||
NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
|
||||
|
||||
With :NetrwClean one may easily remove netrw from one's home directory;
|
||||
more precisely, from the first directory on your |'runtimepath'|.
|
||||
|
||||
With :NetrwClean!, netrw will attempt to remove netrw from all directories on
|
||||
your |'runtimepath'|. Of course, you have to have write/delete permissions
|
||||
correct to do this.
|
||||
|
||||
With either form of the command, netrw will first ask for confirmation
|
||||
that the removal is in fact what you want to do. If netrw doesn't have
|
||||
permission to remove a file, it will issue an error message.
|
||||
|
||||
CUSTOMIZING BROWSING WITH A SPECIAL HANDLER *netrw-x* *netrw-handler* {{{2
|
||||
|
||||
Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
|
||||
best seen with a special handler (ie. a tool provided with your computer's
|
||||
operating system). Netrw allows one to invoke such special handlers by:
|
||||
|
||||
* hitting gx with the cursor atop the file path or alternatively x
|
||||
in a netrw buffer; the former can be disabled by defining the
|
||||
|g:netrw_nogx| variable
|
||||
* when in command line, typing :Open <path>, see |:Open| below.
|
||||
|
||||
One may also use visual mode (see |visual-start|) to select the text that the
|
||||
special handler will use. Normally gx checks for a close-by URL or file name
|
||||
to pick up the text under the cursor; one may change what |expand()| uses via the
|
||||
|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
|
||||
expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
|
||||
select the text to be used by gx by making a visual selection (see
|
||||
|visual-block|) and then pressing gx.
|
||||
|
||||
The selection function can be adapted for each filetype by adding a function
|
||||
`Netrw_get_URL_<filetype>`, where <filetype> is given by the 'filetype'.
|
||||
The function should return the URL or file name to be used by gx, and will
|
||||
fall back to the default behavior if it returns an empty string.
|
||||
For example, special handlers for links Markdown and HTML are
|
||||
|
||||
" make gx work on concealed links regardless of exact cursor position: >
|
||||
|
||||
function Netrw_get_URL_markdown()
|
||||
" markdown URL such as [link text](http://ya.ru 'yandex search')
|
||||
try
|
||||
let save_view = winsaveview()
|
||||
if searchpair('\[.\{-}\](', '', ')\zs', 'cbW', '', line('.')) > 0
|
||||
return matchstr(getline('.')[col('.')-1:],
|
||||
\ '\[.\{-}\](\zs' .. g:netrw_regex_url .. '\ze\(\s\+.\{-}\)\?)')
|
||||
endif
|
||||
return ''
|
||||
finally
|
||||
call winrestview(save_view)
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function Netrw_get_URL_html()
|
||||
" HTML URL such as <a href='http://www.python.org'>Python is here</a>
|
||||
" <a href="http://www.python.org"/>
|
||||
try
|
||||
let save_view = winsaveview()
|
||||
if searchpair('<a\s\+href=', '', '\%(</a>\|/>\)\zs', 'cbW', '', line('.')) > 0
|
||||
return matchstr(getline('.')[col('.') - 1 : ],
|
||||
\ 'href=["'.."'"..']\?\zs\S\{-}\ze["'.."'"..']\?/\?>')
|
||||
endif
|
||||
return ''
|
||||
finally
|
||||
call winrestview(save_view)
|
||||
endtry
|
||||
endfunction
|
||||
<
|
||||
Other than a file path, the text under the cursor may be a URL. Netrw uses
|
||||
by default the following regular expression to determine if the text under the
|
||||
cursor is a URL:
|
||||
>
|
||||
:let g:netrw_regex_url = '\%(\%(http\|ftp\|irc\)s\?\|file\)://\S\{-}'
|
||||
<
|
||||
Associated setting variables:
|
||||
|g:netrw_gx| control how gx picks up the text under the cursor
|
||||
|g:netrw_nogx| prevent gx map while editing
|
||||
|g:netrw_suppress_gx_mesg| controls gx's suppression of browser messages
|
||||
|
||||
OPENING FILES AND LAUNCHING APPS *netrw-gx* *:Open* *:Launch* {{{2
|
||||
|
||||
Netrw determines which special handler by the following method:
|
||||
|
||||
* if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
|
||||
view files.
|
||||
If the viewer you wish to use does not support handling of a remote URL
|
||||
directory, set |g:netrw_browsex_support_remote| to 0.
|
||||
* otherwise:
|
||||
|
||||
* for Windows : explorer.exe is used
|
||||
* for Mac OS X : open is used.
|
||||
* for Linux : xdg-open is used.
|
||||
|
||||
To open a path (or URL) <path> by the appropriate handler, type >
|
||||
|
||||
:Open <path>
|
||||
<
|
||||
No escaping, neither for the shell nor for Vim's command-line, is needed.
|
||||
|
||||
To launch a specific application <app> <args>, often <args> being <path> >
|
||||
|
||||
:Launch <app> <args>.
|
||||
|
||||
Since <args> can be arbitrarily complex, in particular contain many file
|
||||
paths, the escaping is left to the user.
|
||||
|
||||
If you disabled the netrw plugin by setting g:loaded_netrwPlugin (see
|
||||
|netrw-noload|), then you can use >
|
||||
|
||||
:call netrw#Launch('<app> <args>')
|
||||
:call netrw#Open('<path>')
|
||||
<
|
||||
*netrw-curdir*
|
||||
DELETING BOOKMARKS *netrw-mB* {{{2
|
||||
|
||||
To delete a bookmark, use >
|
||||
@@ -2585,14 +2466,6 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
|netrw-C| |netrw-cr|
|
||||
|netrw-ctrl-r|
|
||||
|
||||
*g:netrw_browsex_viewer* specify user's preference for a viewer: >
|
||||
"kfmclient exec"
|
||||
"gnome-open"
|
||||
<
|
||||
*g:netrw_browsex_support_remote*
|
||||
specify if the specified viewer supports a
|
||||
remote URL. (see |netrw-handler|).
|
||||
|
||||
*g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
|
||||
Windows: "cacls FILENAME /e /p PERM"
|
||||
Used to change access permission for a file.
|
||||
@@ -2615,11 +2488,11 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
|
||||
*g:Netrw_corehandler* Allows one to specify something additional
|
||||
to do when handling <core> files via netrw's
|
||||
browser's "x" command (see |netrw-x|). If
|
||||
present, g:Netrw_corehandler specifies
|
||||
either one or more function references
|
||||
(see |Funcref|). (the capital g:Netrw...
|
||||
is required its holding a function reference)
|
||||
browser's "x" command. If present,
|
||||
g:Netrw_corehandler specifies either one or
|
||||
more function references (see |Funcref|).
|
||||
(the capital g:Netrw... is required its
|
||||
holding a function reference)
|
||||
|
||||
|
||||
*g:netrw_ctags* ="ctags"
|
||||
@@ -2769,11 +2642,6 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
These characters in directory names are
|
||||
escaped before applying glob()
|
||||
|
||||
*g:netrw_gx* ="<cfile>"
|
||||
This option controls how gx (|netrw-gx|) picks
|
||||
up the text under the cursor. See |expand()|
|
||||
for possibilities.
|
||||
|
||||
*g:netrw_hide* Controlled by the "a" map (see |netrw-a|)
|
||||
=0 : show all
|
||||
=1 : show not-hidden files
|
||||
@@ -3030,14 +2898,6 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
such as listing, file removal, etc.
|
||||
default: ssh
|
||||
|
||||
*g:netrw_suppress_gx_mesg* =1 : browsers sometimes produce messages
|
||||
which are normally unwanted intermixed
|
||||
with the page.
|
||||
However, when using links, for example,
|
||||
those messages are what the browser produces.
|
||||
By setting this option to 0, netrw will not
|
||||
suppress browser messages.
|
||||
|
||||
*g:netrw_tmpfile_escape* =' &;'
|
||||
escape() is applied to all temporary files
|
||||
to escape these characters.
|
||||
|
||||
+1
-22
@@ -15,17 +15,11 @@ if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_netrwPlugin = "v175"
|
||||
let g:loaded_netrwPlugin = "v177"
|
||||
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Commands Launch/URL: {{{
|
||||
|
||||
command -complete=shellcmd -nargs=1 Launch call netrw#Launch(trim(<q-args>))
|
||||
command -complete=file -nargs=1 Open call netrw#Open(trim(<q-args>))
|
||||
|
||||
" }}}
|
||||
" Local Browsing Autocmds: {{{
|
||||
|
||||
augroup FileExplorer
|
||||
@@ -85,21 +79,6 @@ command! -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
|
||||
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
|
||||
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
|
||||
|
||||
+39
-31
@@ -1,6 +1,6 @@
|
||||
" Vim plugin for editing compressed files.
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Last Change: 2025 Feb 06
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Exit quickly when:
|
||||
@@ -20,42 +20,50 @@ augroup gzip
|
||||
" The functions are defined in autoload/gzip.vim.
|
||||
"
|
||||
" Set binary mode before reading the file.
|
||||
" Use "gzip -d", gunzip isn't always available.
|
||||
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz,*.zst,*.br,*.lzo setlocal bin
|
||||
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
|
||||
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
|
||||
autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
|
||||
autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
|
||||
autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
|
||||
autocmd BufReadPost,FileReadPost *.lz call gzip#read("lzip -d")
|
||||
autocmd BufReadPost,FileReadPost *.zst call gzip#read("zstd -d --rm")
|
||||
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz,*.zst,*.br,*.lzo,*.lz4 setlocal bin
|
||||
|
||||
" Use "gzip -d" and similar commands, gunzip isn't always available.
|
||||
autocmd BufReadPost,FileReadPost *.br call gzip#read("brotli -d --rm")
|
||||
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
|
||||
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
|
||||
autocmd BufReadPost,FileReadPost *.lz call gzip#read("lzip -d")
|
||||
autocmd BufReadPost,FileReadPost *.lz4 call gzip#read("lz4 -d -q --rm")
|
||||
autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
|
||||
autocmd BufReadPost,FileReadPost *.lzo call gzip#read("lzop -d -U")
|
||||
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
|
||||
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
|
||||
autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
|
||||
autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
|
||||
autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
|
||||
autocmd BufWritePost,FileWritePost *.lz call gzip#write("lzip")
|
||||
autocmd BufWritePost,FileWritePost *.zst call gzip#write("zstd --rm")
|
||||
autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
|
||||
autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
|
||||
autocmd BufReadPost,FileReadPost *.zst call gzip#read("zstd -d --rm")
|
||||
|
||||
autocmd BufWritePost,FileWritePost *.br call gzip#write("brotli --rm")
|
||||
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
|
||||
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
|
||||
autocmd BufWritePost,FileWritePost *.lz call gzip#write("lzip")
|
||||
autocmd BufWritePost,FileWritePost *.lz4 call gzip#write("lz4 -q --rm")
|
||||
autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
|
||||
autocmd BufWritePost,FileWritePost *.lzo call gzip#write("lzop -U")
|
||||
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
|
||||
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
|
||||
autocmd FileAppendPre *.Z call gzip#appre("uncompress")
|
||||
autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
|
||||
autocmd FileAppendPre *.xz call gzip#appre("xz -d")
|
||||
autocmd FileAppendPre *.lz call gzip#appre("lzip -d")
|
||||
autocmd FileAppendPre *.zst call gzip#appre("zstd -d --rm")
|
||||
autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
|
||||
autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
|
||||
autocmd BufWritePost,FileWritePost *.zst call gzip#write("zstd --rm")
|
||||
|
||||
autocmd FileAppendPre *.br call gzip#appre("brotli -d --rm")
|
||||
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
|
||||
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
|
||||
autocmd FileAppendPre *.lz call gzip#appre("lzip -d")
|
||||
autocmd FileAppendPre *.lz4 call gzip#appre("lz4 -d -q --rm")
|
||||
autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
|
||||
autocmd FileAppendPre *.lzo call gzip#appre("lzop -d -U")
|
||||
autocmd FileAppendPost *.gz call gzip#write("gzip")
|
||||
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
|
||||
autocmd FileAppendPost *.Z call gzip#write("compress -f")
|
||||
autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
|
||||
autocmd FileAppendPost *.xz call gzip#write("xz -z")
|
||||
autocmd FileAppendPost *.lz call gzip#write("lzip")
|
||||
autocmd FileAppendPost *.zst call gzip#write("zstd --rm")
|
||||
autocmd FileAppendPre *.xz call gzip#appre("xz -d")
|
||||
autocmd FileAppendPre *.Z call gzip#appre("uncompress")
|
||||
autocmd FileAppendPre *.zst call gzip#appre("zstd -d --rm")
|
||||
|
||||
autocmd FileAppendPost *.br call gzip#write("brotli --rm")
|
||||
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
|
||||
autocmd FileAppendPost *.gz call gzip#write("gzip")
|
||||
autocmd FileAppendPost *.lz call gzip#write("lzip")
|
||||
autocmd FileAppendPost *.lz4 call gzip#write("lz4 --rm")
|
||||
autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
|
||||
autocmd FileAppendPost *.lzo call gzip#write("lzop -U")
|
||||
autocmd FileAppendPost *.xz call gzip#write("xz -z")
|
||||
autocmd FileAppendPost *.Z call gzip#write("compress -f")
|
||||
autocmd FileAppendPost *.zst call gzip#write("zstd --rm")
|
||||
augroup END
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
vim9script
|
||||
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Feb 01
|
||||
|
||||
import autoload 'dist/vim9.vim'
|
||||
|
||||
command -complete=shellcmd -nargs=1 Launch vim9.Launch(trim(<q-args>))
|
||||
command -complete=file -nargs=1 Open vim9.Open(trim(<q-args>))
|
||||
|
||||
const no_gx = get(g:, "nogx", get(g:, "netrw_nogx", false))
|
||||
if !no_gx
|
||||
def GetWordUnderCursor(): string
|
||||
const url = matchstr(expand("<cWORD>"), '\%(\%(http\|ftp\|irc\)s\?\|file\)://\S\{-}\ze[^A-Za-z0-9/]*$')
|
||||
if !empty(url)
|
||||
return url
|
||||
endif
|
||||
|
||||
const user_var = get(g:, 'gx_word', get(g:, 'netrw_gx', '<cfile>'))
|
||||
return expand(user_var)
|
||||
enddef
|
||||
|
||||
if maparg('gx', 'n') == ""
|
||||
nnoremap <unique> gx <scriptcmd>vim9.Open(GetWordUnderCursor())<CR>
|
||||
endif
|
||||
if maparg('gx', 'x') == ""
|
||||
xnoremap <unique> gx <scriptcmd>vim9.Open(getregion(getpos('v'), getpos('.'), { type: mode() })->join())<CR>
|
||||
endif
|
||||
endif
|
||||
|
||||
# vim: ts=8 sts=2 sw=2 et
|
||||
@@ -1,4 +1,5 @@
|
||||
" tarPlugin.vim -- a Vim plugin for browsing tarfiles
|
||||
"
|
||||
" Original was copyright (c) 2002, Michael C. Toren <mct@toren.net>
|
||||
" Modified by Charles E. Campbell
|
||||
" Distributed under the GNU General Public License.
|
||||
@@ -34,18 +35,20 @@ augroup tar
|
||||
au FileWriteCmd tarfile::*/* call tar#Write(expand("<amatch>"))
|
||||
endif
|
||||
|
||||
au BufReadCmd *.tar.gz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.lrp call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.bz2 call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.gz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.lz4 call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.xz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.Z call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.zst call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tbz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tgz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.xz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tlz4 call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.txz call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tar.zst call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tzst call tar#Browse(expand("<amatch>"))
|
||||
au BufReadCmd *.tzst call tar#Browse(expand("<amatch>"))
|
||||
augroup END
|
||||
com! -nargs=? -complete=file Vimuntar call tar#Vimuntar(<q-args>)
|
||||
|
||||
|
||||
@@ -26,11 +26,12 @@ RUN_VIMTEST = VIMRUNTIME=$(VIMRUNTIME) $(VALGRIND) $(ENVVARS) ../$(VIMPROG) -f $
|
||||
# If a test succeeds a testdir/done/{name} file will be written.
|
||||
# If a test fails a testdir/failed/{name}.dump file will be written.
|
||||
# Progress and error messages can be found in "testdir/messages".
|
||||
# Comment out the "> /dev/null" part to see the in-progress Vim behaviors.
|
||||
test:
|
||||
@# the "vimcmd" file is used by the screendump utils
|
||||
@echo "../$(VIMPROG)" > testdir/vimcmd
|
||||
@echo "$(RUN_VIMTEST)" >> testdir/vimcmd
|
||||
VIMRUNTIME=$(VIMRUNTIME) $(ENVVARS) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim
|
||||
VIMRUNTIME=$(VIMRUNTIME) $(ENVVARS) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim > /dev/null
|
||||
@rm -f testdir/Xfilter
|
||||
@# FIXME: Temporarily show the whole file to find out what goes wrong
|
||||
@#if [ -f testdir/messages ]; then tail -n 6 testdir/messages; fi
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
" Maintainer: Doug Kearns dougkearns@gmail.com
|
||||
" Previous Maintainers: Erik Wognsen <erik.wognsen@gmail.com>
|
||||
" Kevin Dahlhausen <kdahlhaus@yahoo.com>
|
||||
" Contributors: Ori Avtalion, Lakshay Garg
|
||||
" Last Change: 2020 Oct 31
|
||||
" Contributors: Ori Avtalion, Lakshay Garg, Nir Lichtman
|
||||
" Last Change: 2025 Jan 26
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -32,6 +32,9 @@ syn match asmType "\.single"
|
||||
syn match asmType "\.space"
|
||||
syn match asmType "\.string"
|
||||
syn match asmType "\.word"
|
||||
syn match asmType "\.2byte"
|
||||
syn match asmType "\.4byte"
|
||||
syn match asmType "\.8byte"
|
||||
|
||||
syn match asmIdentifier "[a-z_][a-z0-9_]*"
|
||||
syn match asmLabel "[a-z_][a-z0-9_]*:"he=e-1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file generator
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi (h_east)
|
||||
" Last Change: 2024 Dec 29
|
||||
" Last Change: 2025 Feb 08
|
||||
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
@@ -263,6 +263,7 @@ function s:get_vim_command_type(cmd_name)
|
||||
call
|
||||
catch
|
||||
class
|
||||
debuggreedy
|
||||
def
|
||||
delcommand
|
||||
doautoall
|
||||
@@ -377,14 +378,14 @@ function s:parse_vim_event(li)
|
||||
new
|
||||
exec 'read ' . file_name
|
||||
norm! gg
|
||||
exec '/^static keyvalue_T event_tab\[] = {$/+1;/^};$/-1yank'
|
||||
exec '/^static keyvalue_T event_tab\[NUM_EVENTS] = {$/+1;/^};$/-1yank'
|
||||
%delete _
|
||||
|
||||
put
|
||||
g!/^\s*KEYVALUE_ENTRY(/d
|
||||
|
||||
for line in getline(1, line('$'))
|
||||
let list = matchlist(line, '^\s*KEYVALUE_ENTRY(EVENT_\w\+,\s*"\(\w\+\)"')
|
||||
let list = matchlist(line, '^\s*KEYVALUE_ENTRY(-\?EVENT_\w\+,\s*"\(\w\+\)"')
|
||||
let item.name = list[1]
|
||||
call add(a:li, copy(item))
|
||||
endfor
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
|
||||
" Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2025 Jan 20
|
||||
" Last Change: 2025 Feb 16
|
||||
" Former Maintainer: Charles E. Campbell
|
||||
|
||||
" DO NOT CHANGE DIRECTLY.
|
||||
@@ -192,31 +192,50 @@ Vim9 syn keyword vim9Boolean true false
|
||||
" Numbers {{{2
|
||||
" =======
|
||||
syn case ignore
|
||||
syn match vimNumber '\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\<0b[01]\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\<0o\=\o\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\<0x\x\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\<\d\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
|
||||
syn match vimNumber '\<\d\+\.\d\+\%(e[+-]\=\d\+\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\<0b[01]\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
|
||||
syn match vimNumber '\<0o\=\o\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
|
||||
syn match vimNumber '\<0x\x\+' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
|
||||
syn match vimNumber '\<0z\>' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment
|
||||
syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=vimGlobal,vimSubst1,@vimComment,vimSubscript
|
||||
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 vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimLockvar,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
|
||||
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
||||
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
||||
syn match vimCount contained "\d\+"
|
||||
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#_]*\>"
|
||||
syn match vimVar "\s\zs&\%([lg]:\)\=\a\+\>"
|
||||
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 cluster vimExprList contains=vimEnvvar,vimFunc,vimNumber,vimOper,vimOperParen,vimLetRegister,vimString,vimVar,@vim9ExprList
|
||||
syn cluster vim9ExprList contains=vim9Boolean,vim9Null
|
||||
syn region vimSubscript contained matchgroup=vimSubscriptBracket start="\[" end="]" nextgroup=vimSubscript contains=@vimExprList
|
||||
|
||||
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript contains=vim9Super,vim9This
|
||||
syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript
|
||||
syn match vimVar "\<a:\%(000\|\d\+\)\>" nextgroup=vimSubscript
|
||||
syn match vimFBVar contained "\<[bwglsta]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript
|
||||
|
||||
syn match vimVimVar "\<v:\h\w*\>" nextgroup=vimSubscript
|
||||
syn match vimOptionVar "&\%([lg]:\)\=\a\+\>" nextgroup=vimSubscript
|
||||
syn match vimOptionVar "&t_\S[a-zA-Z0-9]\>" nextgroup=vimSubscript
|
||||
syn match vimOptionVar "&t_k;" nextgroup=vimSubscript
|
||||
syn cluster vimSpecialVar contains=vimEnvvar,vimLetRegister,vimOptionVar,vimVimVar
|
||||
|
||||
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+[-+/*%]\=="
|
||||
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+\.\.="
|
||||
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+=<<"
|
||||
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s*->" contains=vim9Super,vim9This
|
||||
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\[" nextgroup=vimSubscript
|
||||
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\." nextgroup=vimOper contains=vim9Super,vim9This
|
||||
|
||||
Vim9 syn match vim9LhsVariableList "\[\_[^]]\+]\ze\s\+[-+/*%]\==" contains=vimVar,@vimSpecialVar
|
||||
Vim9 syn match vim9LhsVariableList "\[\_[^]]\+]\ze\s\+\.\.=" contains=vimVar,@vimSpecialVar
|
||||
|
||||
Vim9 syn match vim9LhsRegister "@["0-9\-a-zA-Z#=*+_/]\ze\s\+\%(\.\.\)\=="
|
||||
|
||||
syn cluster vimExprList contains=@vimSpecialVar,vimFunc,vimNumber,vimOper,vimOperParen,vimLambda,vimString,vimVar,@vim9ExprList
|
||||
syn cluster vim9ExprList contains=vim9Boolean,vim9LambdaParams,vim9Null
|
||||
|
||||
" Insertions And Appends: insert append {{{2
|
||||
" (buftype != nofile test avoids having append, change, insert show up in the command window)
|
||||
@@ -240,6 +259,11 @@ syn keyword vimBehaveModel contained mswin xterm
|
||||
" ====
|
||||
syn match vimCall "\<call\=\>" skipwhite nextgroup=vimFunc
|
||||
|
||||
" Debuggreedy {{{2
|
||||
" ===========
|
||||
" TODO: special-cased until generalised range/count support is implemented
|
||||
syn match vimDebuggreedy "\<0\=debugg\%[reedy]\>" contains=vimCount
|
||||
|
||||
" Exception Handling {{{2
|
||||
syn keyword vimThrow th[row] skipwhite nextgroup=@vimExprList
|
||||
syn keyword vimCatch cat[ch] skipwhite nextgroup=vimCatchPattern
|
||||
@@ -262,7 +286,7 @@ syn keyword vimFTOption contained detect indent off on plugin
|
||||
|
||||
" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
|
||||
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
|
||||
syn cluster vimAugroupList contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,@vimComment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
|
||||
syn cluster vimAugroupList contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,@vimComment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimContinue
|
||||
syn match vimAugroup "\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
|
||||
syn region vimAugroup fold start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd
|
||||
@@ -280,31 +304,64 @@ 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 "\a\@<!!" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+*/%.]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "?" skipwhite nextgroup=@vimExprList
|
||||
syn cluster vimOperGroup contains=@vimContinue,@vimExprList,vim9Comment
|
||||
syn match vimOper "\a\@<!!" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+*/%.]" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimSpecFile
|
||||
syn match vimOper "?" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList
|
||||
" distinguish ternary : from ex-colon
|
||||
syn match vimOper "\s\@1<=:\ze\s\|\s\@1<=:$" skipwhite nextgroup=@vimExprList
|
||||
syn match vimOper "??" skipwhite nextgroup=@vimExprList
|
||||
syn match vimOper "=" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\%#=1\%(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\)[?#]\=" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\<is\%(not\)\=\>" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\<is\%(not\)\=[?#]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
|
||||
syn region vimOperParen matchgroup=vimSep start="#\={" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
|
||||
syn match vimOper "\s\@1<=:\ze\s\|\s\@1<=:$" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList
|
||||
syn match vimOper "??" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList
|
||||
syn match vimOper "=" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimSpecFile
|
||||
syn match vimOper "\%#=1\%(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\)[?#]\=" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimSpecFile
|
||||
syn match vimOper "\<is\%(not\)\=\>" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimSpecFile
|
||||
syn match vimOper "\<is\%(not\)\=[?#]" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimSpecFile
|
||||
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup nextgroup=vimSubscript
|
||||
syn region vimOperParen matchgroup=vimSep start="#\={" end="}" contains=@vimOperGroup nextgroup=vimSubscript,vimVar
|
||||
syn region vimOperParen contained matchgroup=vimSep start="\[" end="]" contains=@vimOperGroup nextgroup=vimSubscript,vimVar
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
|
||||
syn match vimOperError ")"
|
||||
endif
|
||||
|
||||
syn match vimOperContinue contained "^\s*\zs\\" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList
|
||||
syn match vimOperContinueComment contained '^\s*\zs["#]\\ .*' skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList
|
||||
syn cluster vimOperContinue contains=vimOperContinue,vimOperContinueComment
|
||||
|
||||
" Lambda Expressions: {{{2
|
||||
" ==================
|
||||
syn match vimLambdaOperator contained "->" skipwhite nextgroup=@vimExprList
|
||||
syn region vimLambda contained matchgroup=Delimiter start="{\ze[[:space:][:alnum:]_.,]*->" end="}" end="$" skip=+\s*\n\s*\\\|\s*\n\s*"\\ + contains=@vimContinue,@vimExprList,vimLambdaParams
|
||||
syn match vimLambdaParams contained "{\@1<=.\{-}\%(->\)\@=" nextgroup=vimLambdaOperator contains=vimFuncParam
|
||||
|
||||
syn match vim9LambdaOperator contained "=>" skipwhite skipempty nextgroup=@vimExprList,vim9LambdaBlock,vim9LambdaOperatorComment
|
||||
syn match vim9LambdaParamsParen contained "[()]"
|
||||
syn region vim9LambdaParams contained
|
||||
\ matchgroup=vim9LambdaParamsParen
|
||||
\ start="(\ze\s*\(\.\.\.\)\=\h\w*[,:]\%(\s\|$\)"
|
||||
\ start="(\ze\s*\n
|
||||
"\ line continuations
|
||||
\\%(\s*\%(#\\ .*\|\\\s*\)\n\)*\s*\\\s*
|
||||
"\ parameter names
|
||||
\\(\.\.\.\)\=\h\w*[,:]\%(\s\|$\)"
|
||||
\ end=")\ze\%(:\s\|\s\+=>\)"
|
||||
\ matchgroup=vimContinue
|
||||
\ end="^\s*\\\ze\s\+=>"
|
||||
\ skipwhite nextgroup=vim9LambdaReturnType,vim9LambdaOperator
|
||||
\ contains=@vim9Continue,vimDefParam,vim9LambdaParamsParen
|
||||
syn match vim9LambdaParams contained "(\s*)\|(\s*\(\.\.\.\)\=\h\w*\s*)\ze\%(:\s\|\s\+=>\)" skipwhite nextgroup=vim9LambdaReturnType,vim9LambdaOperator contains=vimDefParam,vim9LambdaParamsParen
|
||||
|
||||
syn region vim9LambdaReturnType contained start=":\s" end="$" end="\ze#" end="\ze=>" skipwhite skipempty nextgroup=vim9LambdaOperator,vim9LamdaOperatorComment contains=vimTypeSep transparent
|
||||
syn region vim9LambdaBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
|
||||
syn match vim9LambdaOperatorComment contained "#.*" skipwhite skipempty nextgroup=@vimExprList,vim9LambdaBlock,vim9LambdaOperatorComment
|
||||
|
||||
" Functions: Tag is provided for those who wish to highlight tagged functions {{{2
|
||||
" =========
|
||||
syn cluster vimFuncList contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFuncSID,Tag
|
||||
syn cluster vimDefList contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncSID,Tag
|
||||
syn cluster vimFuncList contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFuncScope,vimFuncSID,Tag
|
||||
syn cluster vimDefList contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncScope,vimFuncSID,Tag
|
||||
|
||||
syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
|
||||
syn cluster vimFuncBodyList contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimFuncVar,vimInsert,vimConst,vimLet,vimSearch
|
||||
syn cluster vimDefBodyList contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For,vim9Search
|
||||
syn cluster vimFuncBodyCommon contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSpecFile,vimString,vimSubst,vimFuncFold,vimDefFold
|
||||
syn cluster vimFuncBodyList contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimInsert,vimConst,vimLet,vimSearch
|
||||
syn cluster vimDefBodyList contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Block,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For,vim9LhsVariable,vim9LhsVariableList,vim9LhsRegister,vim9Search,@vimSpecialVar
|
||||
|
||||
syn region vimFuncPattern contained matchgroup=vimOper start="/" end="$" contains=@vimSubstList
|
||||
syn match vimFunction "\<fu\%[nction]\>" skipwhite nextgroup=vimCmdSep,vimComment,vimFuncPattern contains=vimFuncKey
|
||||
@@ -318,7 +375,7 @@ syn match vimDefComment contained "#.*" skipwhite skipempty nextgroup=vimDefBody
|
||||
|
||||
syn match vimFuncBang contained "!"
|
||||
syn match vimFuncSID contained "\c<sid>"
|
||||
syn match vimFuncSID contained "\<[sg]:"
|
||||
syn match vimFuncScope contained "\<[sg]:"
|
||||
syn keyword vimFuncKey contained fu[nction]
|
||||
syn keyword vimDefKey contained def
|
||||
|
||||
@@ -341,7 +398,6 @@ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
|
||||
syn region vimDefFold start="\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
|
||||
endif
|
||||
|
||||
syn match vimFuncVar contained "a:\%(\K\k*\|\d\+\)\>"
|
||||
syn match vimFuncBlank contained "\s\+"
|
||||
|
||||
" Types: {{{2
|
||||
@@ -364,12 +420,24 @@ syn cluster vimType contains=vimType,vimCompoundType,vimUserType
|
||||
|
||||
if s:vim9script
|
||||
" Methods {{{3
|
||||
syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName
|
||||
syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName,vim9ConstructorDefName
|
||||
syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName
|
||||
syn region vim9MethodDefParams contained
|
||||
\ matchgroup=Delimiter start="(" end=")"
|
||||
\ skipwhite skipnl nextgroup=vim9MethodDefBody,vimDefComment,vimEnddef,vim9MethodDefReturnType,vimCommentError
|
||||
\ contains=vimDefParam,vim9Comment,vimFuncParamEquals
|
||||
|
||||
syn match vim9ConstructorDefName contained "\<new\w*\>"
|
||||
\ nextgroup=vim9ConstructorDefParams
|
||||
\ contains=@vim9MethodName
|
||||
syn match vim9ConstructorDefParam contained "\<\%(this\.\)\=\h\w*\>"
|
||||
\ skipwhite nextgroup=vimParamType,vimFuncParamEquals
|
||||
\ contains=vim9This,vimOper
|
||||
syn region vim9ConstructorDefParams contained
|
||||
\ matchgroup=Delimiter start="(" end=")"
|
||||
\ skipwhite skipnl nextgroup=vim9MethodDefBody,vimDefComment,vimEnddef,vimCommentError
|
||||
\ contains=vim9ConstructorDefParam,vim9Comment,vimFuncParamEquals
|
||||
|
||||
syn region vim9MethodDefReturnType contained
|
||||
\ start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]"
|
||||
\ skipwhite skipnl nextgroup=vim9MethodDefBody,vimDefComment,vimCommentError
|
||||
@@ -385,7 +453,7 @@ if s:vim9script
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
|
||||
syn match vim9MethodNameError contained "\<[a-z0-9]\i\>"
|
||||
endif
|
||||
syn match vim9MethodName contained "\<new\i*\>"
|
||||
syn match vim9MethodName contained "\<new\w*\>"
|
||||
syn keyword vim9MethodName contained empty len string
|
||||
|
||||
syn cluster vim9MethodName contains=vim9MethodName,vim9MethodNameError
|
||||
@@ -410,8 +478,11 @@ if s:vim9script
|
||||
syn keyword vim9Implements contained implements skipwhite skipnl nextgroup=vim9ImplementedInterface
|
||||
syn keyword vim9Public contained public
|
||||
syn keyword vim9Static contained static
|
||||
syn keyword vim9This contained this
|
||||
syn keyword vim9Super contained super
|
||||
" FIXME: don't match as dictionary keys, remove when operators are not
|
||||
" shared between Vim9 and legacy script
|
||||
syn match vim9This contained "\.\@1<!\<this\>:\@!"
|
||||
" super must be folowed by '.'
|
||||
syn match vim9Super contained "\.\@1<!\<super\.\@="
|
||||
|
||||
VimFoldc syn region vim9ClassBody start="\<class\>" matchgroup=vimCommand end="\<endclass\>" contains=@vim9ClassBodyList transparent
|
||||
|
||||
@@ -444,15 +515,19 @@ if s:vim9script
|
||||
|
||||
VimFoldi syn region vim9InterfaceBody start="\<interface\>" matchgroup=vimCommand end="\<endinterface\>" contains=@vim9InterfaceBodyList transparent
|
||||
|
||||
" type {{{3
|
||||
" Type Aliases {{{3
|
||||
syn match vim9Type "\<ty\%[pe]\>" skipwhite nextgroup=vim9TypeAlias,vim9TypeAliasError
|
||||
syn match vim9TypeAlias contained "\<\u\w*\>" skipwhite nextgroup=vim9TypeEquals
|
||||
syn match vim9TypeEquals contained "=" skipwhite nextgroup=@vimType
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_notypealiaserror")
|
||||
syn match vim9TypeAliasError contained "\<\U\w*"
|
||||
syn match vim9TypeAliasError contained "\<\l\w*\>" skipwhite nextgroup=vim9TypeEquals
|
||||
endif
|
||||
endif
|
||||
|
||||
" Blocks: {{{2
|
||||
" ======
|
||||
Vim9 syn region vim9Block matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
|
||||
" Keymaps: {{{2
|
||||
" =======
|
||||
|
||||
@@ -517,7 +592,7 @@ syn match vimUserCmdAttrCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\
|
||||
syn match vimUserCmdAttrAddr contained "?"
|
||||
syn case match
|
||||
|
||||
syn region vimUserCmdBlock contained matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList
|
||||
syn region vimUserCmdBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
|
||||
syn match vimDelcommand "\<delc\%[ommand]\>" skipwhite nextgroup=vimDelcommandAttr
|
||||
syn match vimDelcommandAttr contained "-buffer\>"
|
||||
@@ -554,7 +629,10 @@ syn match vimCommentError contained +".*+
|
||||
syn match vimEnvvar "\$\I\i*"
|
||||
syn match vimEnvvar "\${\I\i*}"
|
||||
|
||||
" In-String Specials: {{{2
|
||||
" Strings {{{2
|
||||
" =======
|
||||
|
||||
" In-String Specials:
|
||||
" Try to catch strings, if nothing else matches (therefore it must precede the others!)
|
||||
" vimEscapeBrace handles ["] []"] (ie. "s don't terminate string inside [])
|
||||
syn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
|
||||
@@ -564,11 +642,9 @@ 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 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 keepend matchgroup=vimString start=+[^a-zA-Z>\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscript contains=@vimStringGroup extend
|
||||
syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z>\\@]'+lc=1 end=+'+ nextgroup=vimSubscript 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\"]+
|
||||
@@ -577,8 +653,8 @@ syn match vimEscape contained "\\<" contains=vimNotation
|
||||
syn match vimEscape contained "\\<\*[^>]*>\=>"
|
||||
syn match vimQuoteEscape contained "''"
|
||||
|
||||
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 vimString oneline matchgroup=vimString start=+$'+ skip=+''+ end=+'+ nextgroup=vimSubscript contains=vimQuoteEscape,@vimStringInterpolation extend
|
||||
syn region vimString oneline matchgroup=vimString start=+$"+ end=+"+ nextgroup=vimSubscript contains=@vimStringGroup,@vimStringInterpolation extend
|
||||
syn region vimStringInterpolationExpr oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList
|
||||
syn match vimStringInterpolationBrace contained "{{"
|
||||
syn match vimStringInterpolationBrace contained "}}"
|
||||
@@ -609,9 +685,6 @@ syn match vimSubstFlags contained "[&cegiIlnpr#]\+"
|
||||
syn match vimSubstDelim contained "\\"
|
||||
syn match vimSubstPat contained "\\\ze[/?&]" contains=vimSubstDelim nextgroup=vimSubstRep4
|
||||
|
||||
" 'String': {{{2
|
||||
syn match vimString "[^(,]'[^']\{-}\zs'"
|
||||
|
||||
" Marks, Registers, Addresses, Filters: {{{2
|
||||
syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1
|
||||
syn match vimMark "'[[\]{}()<>]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1
|
||||
@@ -627,7 +700,7 @@ syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]'
|
||||
syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]'
|
||||
syn match vimRegister '@"'
|
||||
syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]'
|
||||
syn match vimLetRegister contained '@["0-9\-a-zA-Z#=*+_/]'
|
||||
syn match vimLetRegister contained '@["0-9\-a-zA-Z:.%#=*+~_/]'
|
||||
|
||||
syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1
|
||||
syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
|
||||
@@ -654,13 +727,18 @@ syn match vimSetMod contained "\a\@1<=\%(&vim\=\|[!&?<]\)"
|
||||
|
||||
" Variable Declarations: {{{2
|
||||
" =====================
|
||||
VimL syn keyword vimLet let skipwhite nextgroup=vimVar,vimFuncVar,vimLetRegister,vimVarList
|
||||
VimL syn keyword vimConst cons[t] skipwhite nextgroup=vimVar,vimVarList
|
||||
syn region vimVarList contained start="\[" end="]" contains=vimVar,@vimContinue
|
||||
VimL syn keyword vimLet let skipwhite nextgroup=@vimSpecialVar,vimVar,vimVarList
|
||||
VimL syn keyword vimConst cons[t] skipwhite nextgroup=@vimSpecialVar,vimVar,vimVarList
|
||||
syn region vimVarList contained
|
||||
\ start="\[" end="]"
|
||||
\ contains=@vimContinue,@vimSpecialVar,vimVar
|
||||
|
||||
VimL syn keyword vimUnlet unl[et] skipwhite nextgroup=vimUnletBang,vimUnletVars
|
||||
syn match vimUnletBang contained "!" skipwhite nextgroup=vimUnletVars
|
||||
syn region vimUnletVars contained start="$\I\|\h" skip="\n\s*\\" end="$" end="|" contains=vimVar,vimEnvvar,vimContinue,vimString,vimNumber
|
||||
VimL syn keyword vimUnlet unl[et] skipwhite nextgroup=vimUnletBang,vimUnletVars
|
||||
syn match vimUnletBang contained "\a\@1<=!" skipwhite nextgroup=vimUnletVars
|
||||
syn region vimUnletVars contained
|
||||
\ start="$\I\|\h" skip=+\n\s*\\\|\n\s*"\\ \|^\s*"\\ + end="$" end="\ze[|"]"
|
||||
\ nextgroup=vimCmdSep,vimComment
|
||||
\ contains=@vimContinue,vimEnvvar,vimVar
|
||||
|
||||
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='\%(^\z(\s*\)\S.*\)\@<==<<\s*trim\%(\s\+\)\@>\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\z1\=\z2$' extend
|
||||
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\%(\s*\)\@>\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\z1$' extend
|
||||
@@ -672,15 +750,39 @@ Vim9 syn keyword vim9Final final skipwhite nextgroup=vim9Variable,vim9VariableLi
|
||||
Vim9 syn keyword vim9Var var skipwhite nextgroup=vim9Variable,vim9VariableList
|
||||
|
||||
syn match vim9Variable contained "\<\h\w*\>" skipwhite nextgroup=vimTypeSep,vimLetHereDoc,vimOper
|
||||
syn region vim9VariableList contained start="\[" end="]" contains=vim9Variable,@vimContinue
|
||||
syn region vim9VariableList contained start="\[" end="]" contains=@vimContinue,@vimSpecialVar,vim9Variable
|
||||
|
||||
" Lockvar and Unlockvar: {{{2
|
||||
" =====================
|
||||
syn keyword vimLockvar lockv[ar] skipwhite nextgroup=vimLockvarBang,vimLockvarDepth,vimLockvarVars
|
||||
syn keyword vimUnlockvar unlo[ckvar] skipwhite nextgroup=vimLockvarBang,vimLockvarDepth,vimLockvarVars
|
||||
syn match vimLockvarBang contained "\a\@1<=!" skipwhite nextgroup=vimLockvarVars
|
||||
syn match vimLockvarDepth contained "\<[0-3]\>" skipwhite nextgroup=vimLockvarVars
|
||||
syn region vimLockvarVars contained
|
||||
\ start="\h" skip=+\n\s*\\\|\n\s*"\\ \|^\s*"\\ + end="$" end="\ze[|"]"
|
||||
\ nextgroup=vimCmdSep,vimComment
|
||||
\ contains=@vimContinue,vimVar
|
||||
|
||||
hi def link vimLockvar vimCommand
|
||||
hi def link vimUnlockvar vimCommand
|
||||
hi def link vimLockvarBang vimBang
|
||||
hi def link vimLockvarDepth vimNumber
|
||||
|
||||
" For: {{{2
|
||||
" ===
|
||||
if s:vim9script
|
||||
syn keyword vim9For for skipwhite nextgroup=vim9Variable,vim9VariableList
|
||||
else
|
||||
syn keyword vimFor for skipwhite nextgroup=vimVar,vimVarList
|
||||
endif
|
||||
" handles Vim9 and legacy for now
|
||||
syn region vimFor
|
||||
\ matchgroup=vimCommand
|
||||
\ start="\<for\>" end="\<in\>"
|
||||
\ skipwhite skipnl nextgroup=@vimForInContinue,vim9ForInComment,@vimExprList
|
||||
\ contains=@vimContinue,vimVar,vimVarList,vim9VariableList
|
||||
\ transparent
|
||||
|
||||
syn match vim9ForInComment contained "#.*" skipwhite skipempty nextgroup=vimForInComment,@vimExprList
|
||||
|
||||
syn match vimForInContinue contained "^\s*\zs\\" skipwhite skipnl nextgroup=@vimForInContinue,@vimExprList
|
||||
syn match vimForInContinueComment contained '^\s*\zs["#]\\ .*' skipwhite skipnl nextgroup=@vimForInContinue,@vimExprList
|
||||
syn cluster vimForInContinue contains=vimForInContinue,vimForInContinueComment
|
||||
|
||||
" Abbreviations: {{{2
|
||||
" =============
|
||||
@@ -696,7 +798,7 @@ syn match vimAutoCmdSfxList contained "\S*" skipwhite nextgroup=vimAutoCmdMod,vi
|
||||
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
|
||||
syn region vimAutoCmdBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
|
||||
" Echo And Execute: -- prefer strings! {{{2
|
||||
" ================
|
||||
@@ -770,22 +872,22 @@ syn match vimMenutranslateComment +".*+ contained containedin=vimMenutranslate
|
||||
" Angle-Bracket Notation: (tnx to Michael Geddes) {{{2
|
||||
" ======================
|
||||
syn case ignore
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd]-\)\{0,4}x\=\%(f\d\{1,2}\|[^ \t:]\|space\|bar\|bslash\|nl\|newline\|lf\|linefeed\|cr\|retu\%[rn]\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|csi\|right\|paste\%(start\|end\)\|left\|help\|undo\|k\=insert\|ins\|mouse\|[kz]\=home\|[kz]\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\%(page\)\=\%(\|down\|up\|k\d\>\)\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd]-\)\{0,4}x\=\%(f\d\{1,2}\|[^ \t:]\|space\|bar\|bslash\|nl\|newline\|lf\|linefeed\|cr\|retu\%[rn]\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|csi\|right\|paste\%(start\|end\)\|left\|help\|undo\|k\=insert\|ins\|mouse\|[kz]\=home\|[kz]\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\%(page\)\=\%(\|down\|up\|k\d\>\)\)>" contains=vimBracket
|
||||
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(net\|dec\|jsb\|pterm\|urxvt\|sgr\)mouse>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(left\|middle\|right\)\%(mouse\|drag\|release\)>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}left\%(mouse\|release\)nm>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}x[12]\%(mouse\|drag\|release\)>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}sgrmouserelease>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}mouse\%(up\|down\|move\)>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}scrollwheel\%(up\|down\|right\|left\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(net\|dec\|jsb\|pterm\|urxvt\|sgr\)mouse>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(left\|middle\|right\)\%(mouse\|drag\|release\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}left\%(mouse\|release\)nm>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}x[12]\%(mouse\|drag\|release\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}sgrmouserelease>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}mouse\%(up\|down\|move\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}scrollwheel\%(up\|down\|right\|left\)>" contains=vimBracket
|
||||
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%(sid\|nop\|nul\|lt\|drop\)>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%(snr\|plug\|cursorhold\|ignore\|cmd\|scriptcmd\|focus\%(gained\|lost\)\)>" contains=vimBracket
|
||||
syn match vimNotation '\%(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
|
||||
syn match vimNotation '\%#=1\%(\\\|<lt>\)\=<\%(q-\)\=\%(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>' contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([cas]file\|abuf\|amatch\|cexpr\|cword\|cWORD\|client\|stack\|script\|sf\=lnum\)>" contains=vimBracket
|
||||
syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%(sid\|nop\|nul\|lt\|drop\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%(snr\|plug\|cursorhold\|ignore\|cmd\|scriptcmd\|focus\%(gained\|lost\)\)>" contains=vimBracket
|
||||
syn match vimNotation contained '\%(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
|
||||
syn match vimNotation contained '\%#=1\%(\\\|<lt>\)\=<\%(q-\)\=\%(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>' contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([cas]file\|abuf\|amatch\|cexpr\|cword\|cWORD\|client\|stack\|script\|sf\=lnum\)>" contains=vimBracket
|
||||
syn match vimNotation contained "\%#=1\%(\\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>" contains=vimBracket
|
||||
|
||||
syn match vimBracket contained "[\\<>]"
|
||||
syn case match
|
||||
@@ -793,8 +895,8 @@ syn case match
|
||||
" User Function Highlighting: {{{2
|
||||
" (following Gautam Iyer's suggestion)
|
||||
" ==========================
|
||||
syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncEcho,vimFuncName,vimUserFunc,vimExecute
|
||||
syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation,vim9MethodName
|
||||
syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncEcho,vimFuncName,vimUserFunc,vimExecute
|
||||
syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation,vim9MethodName,vim9Super,vim9This
|
||||
syn keyword vimFuncEcho contained ec ech echo
|
||||
|
||||
syn match vimMap "\<map\%(\s\+(\)\@=" skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
|
||||
@@ -811,7 +913,7 @@ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
|
||||
syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/
|
||||
endif
|
||||
|
||||
syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<retu\%[rn]\>\|\<while\>" skipwhite nextgroup=@vimExprList,vimNotation
|
||||
syn match vimNotFunc "\%#=1\<\%(if\|el\%[seif]\|retu\%[rn]\|while\)\>" skipwhite nextgroup=@vimExprList,vimNotation
|
||||
|
||||
" Match: {{{2
|
||||
" =====
|
||||
@@ -1010,8 +1112,8 @@ endif
|
||||
syn match vimShebang "\%^#!.*" display
|
||||
|
||||
syn match vimContinue "^\s*\zs\\"
|
||||
syn match vimContinueComment '^\s*\zs["#]\\ .*'
|
||||
syn match vim9ContinueComment "^\s*\zs#\\ .*"
|
||||
syn match vimContinueComment '^\s*\zs["#]\\ .*' extend
|
||||
syn match vim9ContinueComment "^\s*\zs#\\ .*" extend
|
||||
syn cluster vimContinue contains=vimContinue,vimContinueComment
|
||||
syn cluster vim9Continue contains=vimContinue,vim9ContinueComment
|
||||
|
||||
@@ -1301,10 +1403,12 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimConst vimCommand
|
||||
hi def link vimContinue Special
|
||||
hi def link vimContinueComment vimComment
|
||||
hi def link vimCount Number
|
||||
hi def link vimCtrlChar SpecialChar
|
||||
hi def link vimDebuggreedy vimCommand
|
||||
hi def link vimDefComment vim9Comment
|
||||
hi def link vimDefKey vimCommand
|
||||
hi def link vimDefParam vimVar
|
||||
hi def link vimDefParam vimVar
|
||||
hi def link vimDelcommand vimCommand
|
||||
hi def link vimDelcommandAttr vimUserCmdAttr
|
||||
hi def link vimEcho vimCommand
|
||||
@@ -1320,6 +1424,8 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimFgBgAttrib vimHiAttrib
|
||||
hi def link vimFuncEcho vimCommand
|
||||
hi def link vimFor vimCommand
|
||||
hi def link vimForInContinue vimContinue
|
||||
hi def link vimForInContinueComment vimContinueComment
|
||||
hi def link vimFTCmd vimCommand
|
||||
hi def link vimFTOption vimSynType
|
||||
hi def link vimFuncBang vimBang
|
||||
@@ -1329,8 +1435,8 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimFuncMod Special
|
||||
hi def link vimFuncParam vimVar
|
||||
hi def link vimFuncParamEquals vimOper
|
||||
hi def link vimFuncSID Special
|
||||
hi def link vimFuncVar Identifier
|
||||
hi def link vimFuncScope vimVar
|
||||
hi def link vimFuncSID vimNotation
|
||||
hi def link vimGroupAdd vimSynOption
|
||||
hi def link vimGroupName vimGroup
|
||||
hi def link vimGroupRem vimSynOption
|
||||
@@ -1359,6 +1465,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vim9KeymapLineComment vimKeymapLineComment
|
||||
hi def link vimKeymapLineComment vimComment
|
||||
hi def link vimKeymapTailComment vimComment
|
||||
hi def link vimLambdaOperator vimOper
|
||||
hi def link vimLet vimCommand
|
||||
hi def link vimLetHereDoc vimString
|
||||
hi def link vimLetHereDocStart Special
|
||||
@@ -1392,7 +1499,11 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimNumber Number
|
||||
hi def link vimOperError Error
|
||||
hi def link vimOper Operator
|
||||
hi def link vimOperContinue vimContinue
|
||||
hi def link vimOperContinueComment vimContinueComment
|
||||
hi def link vimOption PreProc
|
||||
hi def link vimOptionVar Identifier
|
||||
hi def link vimVimVar Identifier
|
||||
hi def link vimParenSep Delimiter
|
||||
hi def link vimPatSepErr vimError
|
||||
hi def link vimPatSepR vimPatSep
|
||||
@@ -1475,7 +1586,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimUserCmdError Error
|
||||
hi def link vimUserCmdKey vimCommand
|
||||
hi def link vimUserFunc Normal
|
||||
hi def link vimVar Identifier
|
||||
hi def link vimVar Normal
|
||||
hi def link vimWarn WarningMsg
|
||||
|
||||
hi def link vim9Abstract vimCommand
|
||||
@@ -1484,6 +1595,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vim9Comment Comment
|
||||
hi def link vim9CommentError vimError
|
||||
hi def link vim9CommentTitle PreProc
|
||||
hi def link vim9ConstructorDefParam vimVar
|
||||
hi def link vim9Const vimCommand
|
||||
hi def link vim9ContinueComment vimContinueComment
|
||||
hi def link vim9Enum vimCommand
|
||||
@@ -1491,9 +1603,15 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vim9Extends Keyword
|
||||
hi def link vim9Final vimCommand
|
||||
hi def link vim9For vimCommand
|
||||
hi def link vim9ForInComment vim9Comment
|
||||
hi def link vim9Implements Keyword
|
||||
hi def link vim9AbstractDef vimCommand
|
||||
hi def link vim9Interface vimCommand
|
||||
hi def link vim9LambdaOperator vimOper
|
||||
hi def link vim9LambdaOperatorComment vim9Comment
|
||||
hi def link vim9LambdaParamsParen vimParenSep
|
||||
hi def link vim9LhsRegister vimLetRegister
|
||||
hi def link vim9LhsVariable vimVar
|
||||
hi def link vim9LineComment vimComment
|
||||
hi def link vim9MethodDef vimCommand
|
||||
hi def link vim9MethodNameError vimFunctionError
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: hyprlang
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Last Change: 2024 nov 15
|
||||
" Last Change: 2025 Jan 29
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -21,7 +21,8 @@ syn region hyprCategory matchgroup=hyprCategoryD start='^\s*\k\+\s*{' end='^\s*}
|
||||
" Variables Types
|
||||
syn match hyprNumber '\%[-+]\<\d\+\>\%[%]' contained
|
||||
syn match hyprFloat '\%[-+]\<\d\+\.\d\+\>\%[%]' contained
|
||||
syn match hyprString '["\'].*["\']' contained
|
||||
syn match hyprString "'[^']*'" contained
|
||||
syn match hyprString '"[^"]*"' contained
|
||||
syn match hyprColor 'rgb(\(\w\|\d\)\{6})' contained
|
||||
syn match hyprColor 'rgba(\(\w\|\d\)\{8})' contained
|
||||
syn match hyprColor '0x\(\w\|\d\)\{8}' contained
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Justfile
|
||||
" Maintainer: Peter Benjamin <@pbnj>
|
||||
" Last Change: 2025 Jan 19
|
||||
" Last Change: 2025 Jan 25
|
||||
" Credits: The original author, Noah Bogart <https://github.com/NoahTheDuke/vim-just/>
|
||||
|
||||
if exists('b:current_syntax')
|
||||
@@ -402,5 +402,5 @@ hi def link justUserDefinedError Exception
|
||||
hi def link justVariadicPrefix Statement
|
||||
hi def link justVariadicPrefixError Error
|
||||
|
||||
let &cpo = s:cpo_sav
|
||||
unlet s:cpo_sav
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
+18
-11
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Quickfix window
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Language: Quickfix window
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Feb 07
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
@@ -9,16 +9,23 @@ if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" A bunch of useful C keywords
|
||||
syn match qfFileName "^[^|]*" nextgroup=qfSeparator
|
||||
syn match qfSeparator "|" nextgroup=qfLineNr contained
|
||||
syn match qfLineNr "[^|]*" contained contains=qfError
|
||||
syn match qfError "error" contained
|
||||
syn match qfFileName "^[^|]*" nextgroup=qfSeparator1
|
||||
syn match qfSeparator1 "|" contained nextgroup=qfLineNr
|
||||
syn match qfLineNr "[^|]*" contained nextgroup=qfSeparator2 contains=@qfType
|
||||
syn match qfSeparator2 "|" contained nextgroup=qfText
|
||||
syn match qfText ".*" contained
|
||||
|
||||
syn match qfError "error" contained
|
||||
syn cluster qfType contains=qfError
|
||||
|
||||
" The default highlighting.
|
||||
hi def link qfFileName Directory
|
||||
hi def link qfLineNr LineNr
|
||||
hi def link qfError Error
|
||||
hi def link qfFileName Directory
|
||||
hi def link qfLineNr LineNr
|
||||
hi def link qfSeparator1 Delimiter
|
||||
hi def link qfSeparator2 Delimiter
|
||||
hi def link qfText Normal
|
||||
|
||||
hi def link qfError Error
|
||||
|
||||
let b:current_syntax = "qf"
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
>\+0#af5f00255#ffffff0|d|o|c|u|m|e|n|t|c|l|a|s@1|{+0#e000e06&|a|r|t|i|c|l|e|}| +0#0000000&@51
|
||||
|\+0#af5f00255&|n|e|w|c|o|m@1|a|n|d|{+0#e000e06&|\+0#af5f00255&|f|o@1|}+0#e000e06&|{|}| +0#0000000&@55
|
||||
|\+0#af5f00255&|r|e|n|e|w|c|o|m@1|a|n|d|*|{+0#e000e06&|\+0#af5f00255&|f|o@1|}+0#e000e06&|[|1+0#e000002&|]+0#e000e06&|{|#|1|0+0#0000000&|}+0#e000e06&| +0#0000000&@46
|
||||
|\+0#af5f00255&|p|r|o|v|i|d|e|c|o|m@1|a|n|d|{+0#e000e06&|\+0#af5f00255&|f|o@1|}+0#e000e06&|[|1+0#e000002&|]+0#e000e06&|[|d+0#0000000&|e|f|a|u|l|t|]+0#e000e06&|{|#|1|1+0#0000000&|}+0#e000e06&| +0#0000000&@36
|
||||
|\+0#af5f00255&|n|e|w|e|n|v|i|r|o|n|m|e|n|t|*|{+0#e000e06&|b+0#0000000&|a|z|}+0#e000e06&|{|S+0#0000000&|T|A|R|T|}+0#e000e06&|{|S+0#0000000&|T|O|P|}+0#e000e06&| +0#0000000&@40
|
||||
|\+0#af5f00255&|r|e|n|e|w|e|n|v|i|r|o|n|m|e|n|t|{+0#e000e06&|b+0#0000000&|a|z|}+0#e000e06&|[|1+0#e000002&|]+0#e000e06&|{|H+0#0000000&|E|A|D| |o|f| |#+0#e000e06&|1|2+0#0000000&|:|}+0#e000e06&|{|T+0#0000000&|A|I|L|}+0#e000e06&| +0#0000000&@29
|
||||
|\+0#af5f00255&|r|e|n|e|w|e|n|v|i|r|o|n|m|e|n|t|*|{+0#e000e06&|b+0#0000000&|a|z|}+0#e000e06&|[|1+0#e000002&|]+0#e000e06&|[|d+0#0000000&|e|f|a|u|l|t|]+0#e000e06&|{|B+0#0000000&|E|G|I|N@1|I|N|G| |o|f| |#+0#e000e06&|1|2+0#0000000&|:|}+0#e000e06&|{|E+0#0000000&|N|D|}+0#e000e06&| +0#0000000&@15
|
||||
|\+0#e000e06&|b|e|g|i|n|{|d|o|c|u|m|e|n|t|}| +0#0000000&@58
|
||||
|\+0#af5f00255&|f|o@1|{+0#e000e06&|T+0#0000000&|e|X|}+0#e000e06&| +0#0000000&@1|%+0#0000e05&| |-|>| |T|e|X|0| +0#0000000&@54
|
||||
|\+0#af5f00255&|b|e|g|i|n|{+0#e000e06&|b|a|z|}| +0#0000000&|t|e|x| |\+0#af5f00255&|e|n|d|{+0#e000e06&|b|a|z|}| +0#0000000&@1|%+0#0000e05&| |-|>| |B|E|G|I|N@1|I|N|G| |o|f| |d|e|f|a|u|l|t|2|:|t|e|x| |E|N|D| +0#0000000&@13
|
||||
|\+0#e000e06&|e|n|d|{|d|o|c|u|m|e|n|t|}| +0#0000000&@60
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|1|,|1| @10|A|l@1|
|
||||
@@ -0,0 +1,20 @@
|
||||
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|
||||
@75
|
||||
|#+0#0000e05&| |V|i|m|9| |b|l|o|c|k|s| +0#0000000&@61
|
||||
@75
|
||||
@75
|
||||
|{+0#e000e06&| +0#0000000&@73
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@60
|
||||
|}+0#e000e06&| +0#0000000&@73
|
||||
@75
|
||||
|{+0#e000e06&| +0#0000000&@73
|
||||
@2|{+0#e000e06&| +0#0000000&@71
|
||||
@4|{+0#e000e06&| +0#0000000&@69
|
||||
@6|{+0#e000e06&| +0#0000000&@67
|
||||
@8|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@54
|
||||
@6|}+0#e000e06&| +0#0000000&@67
|
||||
@6|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@56
|
||||
@4|}+0#e000e06&| +0#0000000&@69
|
||||
@4|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@58
|
||||
@2|}+0#e000e06&| +0#0000000&@71
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@7|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@54
|
||||
@6|}+0#e000e06&| +0#0000000&@67
|
||||
@6|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@56
|
||||
@4|}+0#e000e06&| +0#0000000&@69
|
||||
@4|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@58
|
||||
@2>}+0#e000e06&| +0#0000000&@71
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@60
|
||||
|}+0#e000e06&| +0#0000000&@73
|
||||
@75
|
||||
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
|
||||
@2|{+0#e000e06&| +0#0000000&@71
|
||||
@4|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@58
|
||||
@4|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@62
|
||||
@2|}+0#e000e06&| +0#0000000&@71
|
||||
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&||| |{+0#e000e06&| +0#0000000&@60
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@60
|
||||
|}+0#e000e06&| +0#0000000&@73
|
||||
@57|1|9|,|3| @9|9|2|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
|}+0#e000e06#ffffff0| +0#0000000&@73
|
||||
> @74
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|3@1|,|0|-|1| @7|B|o|t|
|
||||
@@ -5,7 +5,7 @@
|
||||
|#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59
|
||||
> @74
|
||||
|i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51
|
||||
@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#af5f00255&|n+0#0000000&|o|f|i|l|e| ||| |r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|%+0#af5f00255&@1| +0#0000000&||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&
|
||||
@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#af5f00255&|n+0#0000000&|o|f|i|l|e| ||| |r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e+0#00e0e07&|d|i|t| +0#0000000&|%+0#af5f00255&@1| +0#0000000&||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&
|
||||
@18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33
|
||||
|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
|
||||
@75
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|
||||
@75
|
||||
|#+0#0000e05&| |V|i|m|9| |f|u|n|c|t|i|o|n| |v|a|r|i|a|b|l|e| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@37
|
||||
@75
|
||||
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
|
||||
| +0#0000e05&@1|#| |D|e|c|l|a|r|a|t|i|o|n|s| +0#0000000&@58
|
||||
@75
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@75
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@2|t+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@75
|
||||
@2|v+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@75
|
||||
@2|$+0#e000e06&|F|O@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@75
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
@2|v+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@75
|
||||
@2|$+0#e000e06&|F|O@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@75
|
||||
@2>v+0#af5f00255&|a|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @63
|
||||
@8|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|$+0#e000e06&|f|o@1|,+0#0000000&| |$+0#e000e06&|b|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@49
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|$+0#e000e06&|f|o@1|,+0#0000000&| @62
|
||||
@8|\+0#e000e06&| +0#0000000&|$+0#e000e06&|b|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@52
|
||||
@75
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@46
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @63
|
||||
@8|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r|;+0#0000000&| @60
|
||||
@8|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|$+0#e000e06&|f|o@1|,+0#0000000&| |$+0#e000e06&|b|a|r|;+0#0000000&| |$+0#e000e06&|b|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@43
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|[|$+0#e000e06&|f|o@1|,+0#0000000&| @62
|
||||
@8|\+0#e000e06&| +0#0000000&|$+0#e000e06&|b|a|r|;+0#0000000&| @59
|
||||
@57|1|9|,|3| @10|7|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@7|\+0#e000e06&| +0#0000000&|$+0#e000e06&|b|a|r|;+0#0000000&| @59
|
||||
@8|\+0#e000e06&| +0#0000000&|$+0#e000e06&|b|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@52
|
||||
@75
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |E|N|D| +0#0000000&@57
|
||||
|.+0#e000002&@2| +0#0000000&@71
|
||||
>E+0#e000e06&|N|D| +0#0000000&@71
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |E|N|D| +0#0000000&@52
|
||||
| +0#e000002&@1|.@2| +0#0000000&@69
|
||||
| +0#e000e06&@1|E|N|D| +0#0000000&@69
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |E|N|D| +0#0000000&@52
|
||||
|.+0#e000002&@2| +0#0000000&@71
|
||||
|E+0#e000e06&|N|D| +0#0000000&@71
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@47
|
||||
| +0#e000002&@1|.@2| +0#0000000&@69
|
||||
| +0#e000e06&@1|E|N|D| +0#0000000&@69
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@47
|
||||
| +0#e000002&@3|.@2| +0#0000000&@67
|
||||
| +0#e000e06&@1|E|N|D| +0#0000000&@69
|
||||
@75
|
||||
@57|3|7|,|1| @9|1|7|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
| +0#0000e05&@1|#| |A|s@1|i|g|n|m|e|n|t|s| +0#0000000&@59
|
||||
@75
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@62
|
||||
@75
|
||||
@1| +0#00e0e07&>f|o@1|[+0#0000000&|0+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@1| +0#00e0e07&|f|o@1|[+0#0000000&|1+0#e000002&|:+0#0000000&|2+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
@1| +0#00e0e07&|f|o@1|[+0#0000000&|:|2+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@1| +0#00e0e07&|f|o@1|[+0#0000000&|1+0#e000002&|:+0#0000000&|]| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@1| +0#00e0e07&|f|o@1|[+0#0000000&|:|]| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@75
|
||||
@57|5@1|,|3| @9|2|7|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@2|t+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
> @74
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|t+0#00e0e07&|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|t+0#00e0e07&|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|t+0#00e0e07&|:|f|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@57|7|3|,|0|-|1| @7|3|7|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|t+0#00e0e07&|:|f|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2>t+0#00e0e07&|:|f|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|t+0#00e0e07&|:|f|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|b+0#00e0e07&|:|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@2|g+0#00e0e07&|:|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@2|t+0#00e0e07&|:|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@2|w+0#00e0e07&|:|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@75
|
||||
@2|$+0#e000e06&|F|O@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@57|9|1|,|3| @9|4|6|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|$+0#e000e06&|F|O@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@2|$+0#e000e06&|F|O@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|@+0#e000e06&|f| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@63
|
||||
@2|@+0#e000e06&|f| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
> @74
|
||||
@2|&+0#00e0e07&|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@61
|
||||
@75
|
||||
@2|&+0#00e0e07&|t|_|k|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|E|s|c|>|[+0#e000002&|2|3|4|;|"| +0#0000000&@51
|
||||
@75
|
||||
@2|&+0#00e0e07&|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|&+0#00e0e07&|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@2|&+0#00e0e07&|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@60
|
||||
@75
|
||||
@2|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
@2|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@57|1|0|9|,|0|-|1| @6|5|6|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@2|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@75
|
||||
@2|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@75
|
||||
@2>&+0#00e0e07&|g|:|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
@2|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@2|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
@75
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@55
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| @67
|
||||
@8|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|[+0#e000e06&|v+0#00e0e07&|:|f|o@1|,+0#0000000&| |v+0#00e0e07&|:|b|a|r|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@2|[+0#e000e06&|v+0#00e0e07&|:|f|o@1|,+0#0000000&| @65
|
||||
@8|\+0#e000e06&| +0#0000000&|v+0#00e0e07&|:|b|a|r|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@2|[+0#e000e06&|&+0#00e0e07&|f|o@1|,+0#0000000&| |&+0#00e0e07&|b|a|r|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|[+0#e000e06&|&+0#00e0e07&|f|o@1|,+0#0000000&| @66
|
||||
@8|\+0#e000e06&| +0#0000000&|&+0#00e0e07&|b|a|r|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@52
|
||||
@2|[+0#e000e06&|$|f|o@1|,+0#0000000&| |$+0#e000e06&|b|a|r|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@57|1|2|7|,|3| @8|6@1|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|[+0#e000e06&|$|f|o@1|,+0#0000000&| |$+0#e000e06&|b|a|r|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|[+0#e000e06&|$|f|o@1|,+0#0000000&| @66
|
||||
@8|\+0#e000e06&| +0#0000000&@1|$+0#e000e06&|b|a|r|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@2|[+0#e000e06&|@|a|,+0#0000000&| |@+0#e000e06&|b|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
@2|[+0#e000e06&|@|a|,+0#0000000&| @68
|
||||
@8>\+0#e000e06&| +0#0000000&@1|@+0#e000e06&|a|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@75
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#e000e06&| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@75
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@50
|
||||
@2|[+0#e000e06&|f+0#00e0e07&|o@1|,+0#0000000&| @67
|
||||
@8|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r|;+0#0000000&| @60
|
||||
@8|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|z|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|[+0#e000e06&|v+0#00e0e07&|:|f|o@1|,+0#0000000&| |v+0#00e0e07&|:|b|a|r|;+0#0000000&| |v+0#00e0e07&|:|b|a|z|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@44
|
||||
@57|1|4|5|,|2|-|9| @6|7|6|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|[+0#e000e06&|v+0#00e0e07&|:|f|o@1|,+0#0000000&| |v+0#00e0e07&|:|b|a|r|;+0#0000000&| |v+0#00e0e07&|:|b|a|z|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@44
|
||||
@2|[+0#e000e06&|v+0#00e0e07&|:|f|o@1|,+0#0000000&| @65
|
||||
@8|\+0#e000e06&| +0#0000000&|v+0#00e0e07&|:|b|a|r|;+0#0000000&| @58
|
||||
@8|\+0#e000e06&| +0#0000000&|v+0#00e0e07&|:|b|a|z|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@2|[+0#e000e06&|$|f|o@1|,+0#0000000&| |$+0#e000e06&|b|a|r|;+0#0000000&| |$+0#e000e06&|b|a|z|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@47
|
||||
@2>[+0#e000e06&|$|f|o@1|,+0#0000000&| @66
|
||||
@8|\+0#e000e06&| +0#0000000&|$+0#e000e06&|b|a|r|;+0#0000000&| @59
|
||||
@8|\+0#e000e06&| +0#0000000&|$+0#e000e06&|b|a|z|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@52
|
||||
@2|[+0#e000e06&|&+0#00e0e07&|f|o@1|,+0#0000000&| |&+0#00e0e07&|b|a|r|;+0#0000000&| |&+0#00e0e07&|b|a|z|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@47
|
||||
@2|[+0#e000e06&|&+0#00e0e07&|f|o@1|,+0#0000000&| @66
|
||||
@8|\+0#e000e06&| +0#0000000&|&+0#00e0e07&|b|a|r|;+0#0000000&| @59
|
||||
@8|\+0#e000e06&| +0#0000000&|&+0#00e0e07&|b|a|z|]+0#e000e06&| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@52
|
||||
@2|[+0#e000e06&|@|a|,+0#0000000&| |@+0#e000e06&|b|;+0#0000000&| |@+0#e000e06&|c|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
|
||||
@2|[+0#e000e06&|@|a|,+0#0000000&| @68
|
||||
@8|\+0#e000e06&| +0#0000000&|@+0#e000e06&|b|;+0#0000000&| @61
|
||||
@8|\+0#e000e06&| +0#0000000&|@+0#e000e06&|c|]| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@75
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|=+0#e000e06&|<@1| |E|N|D| +0#0000000&@61
|
||||
|.+0#e000002&@2| +0#0000000&@71
|
||||
@57|1|6|3|,|3| @8|8|6|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
|.+0#e000002#ffffff0@2| +0#0000000&@71
|
||||
|E+0#e000e06&|N|D| +0#0000000&@71
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |E|N|D| +0#0000000&@56
|
||||
| +0#e000002&@1|.@2| +0#0000000&@69
|
||||
| +0#e000e06&@1|E|N|D| +0#0000000&@69
|
||||
@1| +0#00e0e07&>f|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |E|N|D| +0#0000000&@56
|
||||
|.+0#e000002&@2| +0#0000000&@71
|
||||
|E+0#e000e06&|N|D| +0#0000000&@71
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@51
|
||||
| +0#e000002&@1|.@2| +0#0000000&@69
|
||||
| +0#e000e06&@1|E|N|D| +0#0000000&@69
|
||||
@1| +0#00e0e07&|f|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@51
|
||||
| +0#e000002&@3|.@2| +0#0000000&@67
|
||||
| +0#e000e06&@1|E|N|D| +0#0000000&@69
|
||||
@75
|
||||
| +0#0000e05&@1|#| |:|f|o|r| +0#0000000&@66
|
||||
@75
|
||||
@2|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
@2|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@66
|
||||
@57|1|8|1|,|3| @8|9|6|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@66
|
||||
@75
|
||||
@2|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@50
|
||||
@2|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@66
|
||||
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
|
||||
> @74
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|1|9@1|,|0|-|1| @6|B|o|t|
|
||||
@@ -10,7 +10,7 @@
|
||||
|:|f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&@61
|
||||
|:|f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&@63
|
||||
|:|f+0#af5f00255&|o|l|d|o|p|e|n| +0#0000000&@65
|
||||
|:|f+0#af5f00255&|o|r| +0#0000000&@70
|
||||
|:|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@50
|
||||
|:|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&@65
|
||||
|:|g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@62
|
||||
|:|g+0#af5f00255&|o|t|o| +0#0000000&@69
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&@54
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&@56
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|o|p|e|n| +0#0000000&@58
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@63
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@43
|
||||
@57|7@1|5|,|1| @8|6|4|%|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@63
|
||||
|F+0&#ffffff0|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@43
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&@58
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@55
|
||||
|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|o|t|o| +0#0000000&@62
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|
||||
@75
|
||||
|#+0#0000e05&| |V|i|m|9| |:|f|o|r| |c|o|m@1|a|n|d| +0#0000000&@55
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |:|f|o|r| |{|v|a|r|}| |i|n| |{|o|b|j|e|c|t|}| +0#0000000&@50
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|4+0#e000002&|2|]+0#e000e06&| +0#0000000&@59
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@49
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@64
|
||||
@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
@@ -0,0 +1,20 @@
|
||||
|f+0#af5f00255#ffffff0|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@49
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@64
|
||||
@6>#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
|
||||
@6|e+0#00e0e07&|x|p|r| +0#0000000&@64
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@39
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|4+0#e000002&|2|]+0#e000e06&| +0#0000000&@59
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|4+0#e000002&|2|]+0#e000e06&| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@39
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |n+0#00e0e07&|u|m|b|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|4+0#e000002&|2|]+0#e000e06&| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@31
|
||||
@57|1|9|,|7| @9|2|6|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
|f+0#af5f00255#ffffff0|o|r| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |n+0#00e0e07&|u|m|b|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|4+0#e000002&|2|]+0#e000e06&| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@31
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@46
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
> @74
|
||||
@75
|
||||
|#+0#0000e05&| |:|f|o|r| |[|{|v|a|r|1|}|,| |{|v|a|r|2|}|,| |.@2|]| |i|n| |{|l|i|s|t|l|i|s|t|}| +0#0000000&@32
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|e+0#00e0e07&|x|p|r|2| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&@1|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|3|]+0#e000e06&@1| +0#0000000&@52
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r|2| +0#0000000&@51
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@60
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r|2| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@41
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@60
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
@57|3|7|,|0|-|1| @7|6|3|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&@57
|
||||
@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
|
||||
@6|e+0#00e0e07&|x|p|r|2| +0#0000000&@63
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@60
|
||||
>e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r|2| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@27
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&@1|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|3|]+0#e000e06&@1| +0#0000000&@46
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@60
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&@1|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|3|]+0#e000e06&@1| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@22
|
||||
@75
|
||||
|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |b+0#00e0e07&|a|r|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r|2| +0#0000000&@35
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@60
|
||||
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
|
||||
@75
|
||||
@57|5@1|,|1| @9|B|o|t|
|
||||
@@ -7,7 +7,7 @@
|
||||
@75
|
||||
|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|t+0#af5f00255&|y|p|e| +0#0000000&|Q|u|x| |=+0#af5f00255&| +0#0000000&|B|a|z| @53
|
||||
@75
|
||||
|t+0#af5f00255&|y|p|e| +0#0000000&|f+0#ffffff16#ff404010|o@1| +0#0000000#ffffff0|=+0#af5f00255&| +0#0000000&|s|t|r|i|n|g| @57
|
||||
|t+0#af5f00255&|y|p|e| +0#0000000&|f+0#ffffff16#ff404010|o@1| +0#0000000#ffffff0|=+0#af5f00255&| +0#0000000&|s+0#00e0003&|t|r|i|n|g| +0#0000000&@57
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
@16|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&@52
|
||||
>e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&@58
|
||||
@8|"+0#e000002&|t|o|p|"| +0#0000000&|:+0#af5f00255&| +0#0000000&@59
|
||||
@8|l|n|u|m| |=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&|?+0#af5f00255&| +0#0000000&@52
|
||||
@8|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&|?+0#af5f00255&| +0#0000000&@52
|
||||
@16|"+0#e000002&|l|a|s|t|"| +0#0000000&|:+0#af5f00255&| +0#0000000&@50
|
||||
@16|l|n|u|m| @54
|
||||
@16|l+0#00e0e07&|n|u|m| +0#0000000&@54
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&|?+0#af5f00255&| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&|:+0#af5f00255&| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@50
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|:+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@60
|
||||
@@ -17,4 +17,4 @@
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|$+0#e000e06&|B|A|R| +0#0000000&@51
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|:+0#af5f00255&| +0#0000000&|F|a|l|s|e|(+0#e000e06&|)| +0#0000000&@44
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&| +0#0000000&|@+0#e000e06&|a| +0#0000000&|:+0#af5f00255&| +0#0000000&|@+0#e000e06&|b| +0#0000000&@57
|
||||
@57|1|9|,|1| @9|1|4|%|
|
||||
@57|1|9|,|1| @9|1|3|%|
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&| +0#0000000&|@+0#e000e06&|a| +0#0000000&|:+0#af5f00255&| +0#0000000&|@+0#e000e06&|b| +0#0000000&@57
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|t+0#e000002&|r|u|e|)+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|t+0#e000002&|r|u|e|)+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|f+0#e000002&|a|l|s|e|)+0#e000e06&| +0#0000000&@44
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&|)+0#e000e06&| +0#0000000&@54
|
||||
@75
|
||||
|#+0#0000e05&| |F|a|l|s|y| +0#0000000&@67
|
||||
@75
|
||||
>e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
> @74
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|h|e|L|i|s|t| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|l|i|s|t| |i|s| |e|m|p|t|y|'| +0#0000000&@43
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|G|e|t|N|a|m|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|u|n|k|n|o|w|n|'| +0#0000000&@47
|
||||
@@ -16,5 +17,4 @@
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@57
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&@63
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&@55
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@59
|
||||
@57|3|7|,|1| @9|3|5|%|
|
||||
@57|3|7|,|0|-|1| @7|3|2|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@59
|
||||
|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&@55
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@59
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&@55
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@57
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&@53
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|@+0#e000e06&|a| +0#0000000&@61
|
||||
>e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&@59
|
||||
>e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|@+0#e000e06&|a| +0#0000000&@61
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|t+0#e000002&|r|u|e|)+0#e000e06&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|(+0#e000e06&|t+0#e000002&|r|u|e|)+0#e000e06&| +0#0000000&@53
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&@59
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |F|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@58
|
||||
@75
|
||||
|F|o@1|(+0#e000e06&|t+0#e000002&|r|u|e|,+0#0000000&| |f+0#e000002&|a|l|s|e|,+0#0000000&| |n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@52
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |C|o|m@1|a|n|d| |{|e|x|p|r|}| |a|r|g|u|m|e|n|t|s| +0#0000000&@48
|
||||
@75
|
||||
|i+0#af5f00255&|f| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@67
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@63
|
||||
|e+0#af5f00255&|l|s|e|i|f| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@62
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@62
|
||||
|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
|
||||
@75
|
||||
|w+0#af5f00255&|h|i|l|e| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@64
|
||||
@2|b+0#af5f00255&|r|e|a|k| +0#0000000&@67
|
||||
|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@66
|
||||
@57|5@1|,|1| @9|5@1|%|
|
||||
@57|5@1|,|1| @9|5|1|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
|e+0#af5f00255#ffffff0|n|d|w|h|i|l|e| +0#0000000&@66
|
||||
| +0&#ffffff0@1|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@63
|
||||
|e+0#af5f00255&|l|s|e|i|f| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@62
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@62
|
||||
|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
|
||||
@75
|
||||
>w+0#af5f00255&|h|i|l|e| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@64
|
||||
@2|b+0#af5f00255&|r|e|a|k| +0#0000000&@67
|
||||
|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@66
|
||||
@75
|
||||
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@59
|
||||
@2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@61
|
||||
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
|
||||
> @74
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |I|s@1|u|e| |#|1|4@1|2|3| |(|v|i|m|.|v|i|m|:| |O|p|t| |o|u|t| |o|f| |v|i|m|S|e|a|r|c|h|*|)| +0#0000000&@27
|
||||
@75
|
||||
|:|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@66
|
||||
|c+0#af5f00255&|o|n|s|t| +0#0000000&|t+0#00e0e07&|r|u|t|h|y|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@46
|
||||
@4|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&@66
|
||||
@4|)+0#e000e06&| +0#0000000&@69
|
||||
@4|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&| +0#0000000&@66
|
||||
@4|)+0#e000e06&| +0#0000000&@69
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&@63
|
||||
@75
|
||||
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
|
||||
| +0#e000002&@1|:+0#0000000&|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@64
|
||||
@57|7|3|,|0|-|1| @7|7|6|%|
|
||||
@57|7|3|,|1| @9|7|0|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0#e000002#ffffff0@1|:+0#0000000&|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@64
|
||||
| +0&#ffffff0@3|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&@66
|
||||
@4|)+0#e000e06&| +0#0000000&@69
|
||||
@4|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&| +0#0000000&@66
|
||||
@4|)+0#e000e06&| +0#0000000&@69
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&@63
|
||||
> @74
|
||||
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
|
||||
| +0#e000002&@1|:+0#0000000&|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@64
|
||||
@2|c+0#af5f00255&|o|n|s|t| +0#0000000&|t+0#00e0e07&|r|u|t|h|y|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@44
|
||||
@6|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&@64
|
||||
@6|)+0#e000e06&| +0#0000000&@67
|
||||
@6|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&| +0#0000000&@64
|
||||
@6>)+0#e000e06&| +0#0000000&@67
|
||||
@6|)+0#e000e06&| +0#0000000&@67
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&@61
|
||||
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |I|s@1|u|e| |#|1|6|2@1|7| |(|V|i|m|s|c|r|i|p|t| |t|e|r|n|a|r|y| |e|x|p|r|e|s@1|i|o|n| |h|i|g|h|l|i|g|h|t|i|n|g|)| +0#0000000&@16
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&@24|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@25
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|f|o@1| |=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&|?+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|r|'| +0#0000000&|:+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|z|'| +0#0000000&@36
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&|a|z| +0#0000000&|=+0#af5f00255&| +0#0000000&|f|o@1| |=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&@52
|
||||
@12|\+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|z|'| +0#0000000&@53
|
||||
@12|\+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|r|'| +0#0000000&@53
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|q+0#00e0e07&|u|x| +0#0000000&|=+0#af5f00255&| +0#0000000&|f|o@1| |=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&@52
|
||||
@12|?+0#af5f00255&| +0#0000000&|'+0#e000002&|q|u|x|'| +0#0000000&@20|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@25
|
||||
@57|9|1|,|7| @9|9|6|%|
|
||||
@57|9|1|,|0|-|1| @7|8|9|%|
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
| +0&#ffffff0@11|?+0#af5f00255&| +0#0000000&|'+0#e000002&|q|u|x|'| +0#0000000&@20|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@25
|
||||
| +0&#ffffff0@74
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&@24|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@25
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&|?+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|r|'| +0#0000000&|:+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|z|'| +0#0000000&@36
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&|a|z| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&@52
|
||||
@12|\+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|z|'| +0#0000000&@53
|
||||
@12>\+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|'+0#e000002&|b|a|r|'| +0#0000000&@53
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|q+0#00e0e07&|u|x| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&@52
|
||||
@12|?+0#af5f00255&| +0#0000000&|'+0#e000002&|q|u|x|'| +0#0000000&@20|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@25
|
||||
@12|:+0#af5f00255&| +0#0000000&|'+0#e000002&|q|u|x|'| +0#0000000&@20|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@25
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|q+0#00e0e07&|u|x| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|q|u@1|x|'| +0#0000000&@56
|
||||
> @74
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
@@ -10,11 +17,4 @@
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|1|0|7|,|0|-|1| @6|B|o|t|
|
||||
| +0#0000000&@56|1|0|9|,|1|3| @7|B|o|t|
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|
||||
@75
|
||||
|#+0#0000e05&| |V|i|m| |9| |l|a|m|b|d|a| |e|x|p|r|e|s@1|i|o|n|s| +0#0000000&@48
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|F+0#00e0e07&|o@1|:+0#0000000&| |f+0#00e0003&|u|n|c| +0#0000000&@61
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@62
|
||||
@75
|
||||
|#+0#0000e05&| |w|i|t|h|o|u|t| |r|e|t|u|r|n| |t|y|p|e| +0#0000000&@53
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|.+0#0000000&@2|y+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|,+0#0000000&| |.@2|y+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |.@2|y+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |y+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@49
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
@@ -0,0 +1,20 @@
|
||||
|F+0#00e0e07#ffffff0|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|,+0#0000000&| |.@2|y+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |.@2|y+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |y+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|
||||
@75
|
||||
>F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@49
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@49
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|.+0#0000000&@2|y+0#00e0e07&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@40
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |.@2|y+0#00e0e07&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@29
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |.@2|y+0#00e0e07&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@29
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |y+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@38
|
||||
@75
|
||||
|#+0#0000e05&| |w|i|t|h| |r|e|t|u|r|n| |t|y|p|e| +0#0000000&@56
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@50
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@49
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@49
|
||||
@75
|
||||
@57|1|9|,|1| @9|1|3|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|.+0#0000000&@2|y+0#00e0e07&|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@46
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|,+0#0000000&| |.@2|y+0#00e0e07&|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@43
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |.@2|y+0#00e0e07&|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@43
|
||||
@75
|
||||
>F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |y+0#00e0e07&|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@46
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@41
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@41
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|.+0#0000000&@2|y+0#00e0e07&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@32
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|_+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |.@2|y+0#00e0e07&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@21
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |.@2|y+0#00e0e07&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@21
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |y+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@30
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |p|o|s|t| |o|p|e|r|a|t|o|r| |c|o|m@1|e|n|t|s| +0#0000000&@50
|
||||
@75
|
||||
@57|3|7|,|1| @9|3|1|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@53
|
||||
@2|e+0#00e0e07&|x|p|r| +0#0000000&@68
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&@63
|
||||
@2|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@63
|
||||
@2>e+0#00e0e07&|x|p|r| +0#0000000&@68
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&@63
|
||||
@75
|
||||
@2|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@63
|
||||
@75
|
||||
@2|e+0#00e0e07&|x|p|r| +0#0000000&@68
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n|s| +0#0000000&@54
|
||||
@75
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g|,+0#0000000&| @57
|
||||
@6|\+0#e000e06&| +0#0000000&|y+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| @56
|
||||
@6|\+0#e000e06&| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |b+0#00e0003&|o@1|l|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@42
|
||||
|#+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67
|
||||
@57|5@1|,|3| @9|5|0|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
|#+0#0000e05#ffffff0| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67
|
||||
|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g|,+0#0000000&| @57
|
||||
@6|\+0#e000e06&| +0#0000000&|y+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| @56
|
||||
@6|\+0#e000e06&| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |b+0#00e0003&|o@1|l|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@50
|
||||
@6|\| |=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@59
|
||||
> @74
|
||||
@75
|
||||
|#+0#0000e05&| |f|u|n|c|r|e|f| |c|a|l@1| +0#0000000&@60
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&@1|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|4+0#e000002&|2|)+0#e000e06&|(|)| +0#0000000&@57
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&@1|x+0#00e0e07&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|4+0#e000002&|2|)+0#e000e06&|(|"+0#e000002&|f|o@1|"|)+0#e000e06&| +0#0000000&@35
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |:|h|e|l|p| |v|i|m|9|-|l|a|m|b|d|a| +0#0000000&@55
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|l+0#00e0e07&|i|s|t| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&| +0#0000000&@54
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|i|l|t|e|r|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |(+0#e000e06&|k+0#00e0e07&|,+0#0000000&| |v+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&@47
|
||||
@16|v+0#00e0e07&| +0#0000000&|>+0#af5f00255&| +0#0000000&|0+0#e000002&|)+0#e000e06&| +0#0000000&@52
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|i|l|t|e|r|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |(+0#e000e06&|k+0#00e0e07&|,+0#0000000&| @53
|
||||
@57|7|3|,|0|-|1| @7|6|9|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|f+0#00e0e07&|i|l|t|e|r|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |(+0#e000e06&|k+0#00e0e07&|,+0#0000000&| @53
|
||||
@6|\+0#e000e06&| +0#0000000&|v+0#00e0e07&|)+0#e000e06&| +0#0000000&@64
|
||||
| +0#e000e06&@5|\| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|v+0#00e0e07&| +0#0000000&|>+0#af5f00255&| +0#0000000&|0+0#e000002&|)+0#e000e06&| +0#0000000&@57
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|C+0#00e0e07&|a|l@1|b|a|c|k| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|.+0#0000000&@2|_+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|'+0#e000002&|a|n|y|t|h|i|n|g|'| +0#0000000&@39
|
||||
>e+0#af5f00255&|c|h|o| +0#0000000&|C|a|l@1|b|a|c|k|(+0#e000e06&|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|)+0#e000e06&| +0#0000000&@1|#| |d+0#00e0e07&|i|s|p|l|a|y|s| +0#0000000&|"+0#e000002&|a|n|y|t|h|i|n|g|"| +0#0000000&@29
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|L+0#00e0e07&|a|m|b|d|a| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|a+0#00e0e07&|r|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|{+0#e000e06&| +0#0000000&@51
|
||||
@8|g+0#00e0e07&|:|w|a|s|_|c|a|l@1|e|d| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&|y|e|s|'| +0#0000000&@46
|
||||
@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@55
|
||||
@4|}+0#e000e06&| +0#0000000&@69
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|c+0#00e0e07&|o|u|n|t| +0#0000000&|=+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@61
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|t+0#00e0e07&|i|m|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|i|m|e|r|_|s|t|a|r|t|(+0#e000e06&|5+0#e000002&|0@1|,+0#0000000&| |(+0#e000e06&|_+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|{+0#e000e06&| +0#0000000&@37
|
||||
@8| +0#00e0e07&|c|o|u|n|t| +0#0000000&|++0#af5f00255&|=| +0#0000000&|1+0#e000002&| +0#0000000&@55
|
||||
@9|e+0#af5f00255&|c|h|o|m| +0#0000000&|'+0#e000002&|H|a|n|d|l|e|r| |c|a|l@1|e|d| |'| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|c+0#00e0e07&|o|u|n|t| +0#0000000&@33
|
||||
@5|}+0#e000e06&|,+0#0000000&| |{+0#e000e06&|r+0#00e0e07&|e|p|e|a|t|:+0#0000000&| |3+0#e000002&|}+0#e000e06&|)| +0#0000000&@54
|
||||
@75
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|d+0#00e0e07&|i|c|t| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|}| +0#0000000&@61
|
||||
@57|9|1|,|1| @9|8|7|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
|v+0#af5f00255#ffffff0|a|r| +0#0000000&|d+0#00e0e07&|i|c|t| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|}| +0#0000000&@61
|
||||
|v+0#af5f00255&|a|r| +0#0000000&|d+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|m+0#00e0e07&|a|p|n|e|w|(+0#e000e06&|d+0#00e0e07&|i|c|t|,+0#0000000&| |(+0#e000e06&|k+0#00e0e07&|,+0#0000000&| |v+0#00e0e07&|)+0#e000e06&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|{+0#e000e06&| +0#0000000&@34
|
||||
@5|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|'+0#e000002&|v|a|l|u|e|'| +0#0000000&@55
|
||||
@3|}+0#e000e06&|)| +0#0000000&@69
|
||||
@75
|
||||
> @74
|
||||
|#+0#0000e05&| |I|s@1|u|e| |#|1|5|9|7|0| |(|v|i|m|9|:| |R|e|s|t|o|r|e| |a|n|d| |e|x|t|e|n|d| |t|h|e| |r|e|c|o|g|n|i|t|i|o|n| |o|f| |E|n|u|m| |b|o|d|y| |i|t|e|m|s
|
||||
|)| +0#0000000&@73
|
||||
@75
|
||||
|d+0#af5f00255&|e|f| +0#0000000&|O|p|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|f|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |D|i|g|i|t|)+0#00e0003&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@1
|
||||
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|F+0#00e0e07&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&@27
|
||||
@8|(+0#e000e06&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |y+0#00e0e07&|:+0#0000000&| |D|i|g|i|t|)+0#e000e06&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|F|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |y+0#00e0e07&|.+0#af5f00255&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@20
|
||||
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&|#+0#0000e05&@22| |^| |v|i|m|C|o|m@1|a|n|d|?| +0#0000000&@30
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|1|0|9|,|0|-|1| @6|B|o|t|
|
||||
@@ -2,7 +2,7 @@
|
||||
@75
|
||||
|i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|h+0#00e0e07&|a|s|(+0#e000e06&|'+0#e000002&|v|i|m|9|s|c|r|i|p|t|'|)+0#e000e06&| +0#0000000&@53
|
||||
@2|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58
|
||||
@2|s+0#af5f00255&|o|u|r|c|e| +0#0000000&|f|o@1|.+0#af5f00255&|v|i|m| +0#0000000&@58
|
||||
@2|s+0#af5f00255&|o|u|r|c|e| +0#00e0e07&|f|o@1|.+0#af5f00255&|v+0#00e0e07&|i|m| +0#0000000&@58
|
||||
@2|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@66
|
||||
|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
|
||||
@75
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|
||||
@75
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|S|u|p|e|r| |T|o|d|o| +0#0000000&@35
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|T|h|i|s| |T|o|d|o| +0#0000000&@36
|
||||
|#+0#0000e05&| +0#0000000&|S+0#e000e06&|e@1|:| +0#0000e05&|h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|6|4|7|6|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|6|3|8|1|9|1@2|0| +0#0000000&@6
|
||||
@75
|
||||
@75
|
||||
|c+0#af5f00255&|l|a|s@1| +0#0000000&|A| @67
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|_+0#00e0e07&|v|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@57
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@53
|
||||
@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#0000000&|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@49
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|_|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@47
|
||||
@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|a|l|u|e| +0#0000000&@51
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|V|a|l|u|e|(+0#e000e06&|)|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@56
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|_|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@47
|
||||
@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|a|l|u|e| +0#0000000&@51
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@2>d+0#af5f00255&|e|f| +0#0000000&|V|a|l|u|e|(+0#e000e06&|)|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@56
|
||||
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&@52
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
|
||||
@75
|
||||
|c+0#af5f00255&|l|a|s@1| +0#0000000&|B| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|A| @57
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&@50
|
||||
@3| +0#00e0e07&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|_+0#0000000&|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@48
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|V|a|l|u|e|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
|
||||
@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s| +0#0000000#ffffff0@61
|
||||
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&@51
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@57|1|9|,|3| @9|2|9|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
|
||||
@75
|
||||
|c+0#af5f00255&|l|a|s@1| +0#0000000&|C| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|A| @57
|
||||
@2|#+0#0000e05&@3| |E|1@1|7| +0#0000000&@63
|
||||
| +0#0000e05&@1>#| @2|d|e|f| |n|e|w|(|v|a|l|u|e|:| |s|t|r|i|n|g|)| +0#0000000&@46
|
||||
| +0#0000e05&@1|#| @6|s|u|p|e|r|(|v|a|l|u|e|)| +0#0000000&@52
|
||||
| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
|
||||
@75
|
||||
| +0#0000e05&@1|#@3| |E|1|0|3|4| +0#0000000&@62
|
||||
| +0#0000e05&@1|#| @2|d|e|f| |n|e|w|(|s|u|p|e|r|.|_|v|a|l|u|e|)| +0#0000000&@47
|
||||
| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
|
||||
@75
|
||||
| +0#0000e05&@1|#@3| |E|1|0|3|4| +0#0000000&@62
|
||||
| +0#0000e05&@1|#| @2|d|e|f| |n|e|w|(|v|a|l|u|e|:| |s|t|r|i|n|g|)| +0#0000000&@46
|
||||
| +0#0000e05&@1|#| @6|s|u|p|e|r|.|_|v|a|l|u|e| |=| |v|a|l|u|e| +0#0000000&@44
|
||||
| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
|
||||
@75
|
||||
| +0#0000e05&@1|#@3| |E|1|3|5|6| +0#0000000&@62
|
||||
@57|3|7|,|3| @9|7|0|%|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0#0000e05#ffffff0@1|#@3| |E|1|3|5|6| +0#0000000&@62
|
||||
| +0#0000e05&@1|#| @2|d|e|f| |S|u|p|e|r|(|)|:| |A| +0#0000000&@54
|
||||
| +0#0000e05&@1|#| @6|r|e|t|u|r|n| |s|u|p|e|r| +0#0000000&@52
|
||||
| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
|
||||
@75
|
||||
@2>d+0#af5f00255&|e|f| +0#0000000&|T|h|i|s|(+0#e000e06&|)|:+0#0000000&| |C| @59
|
||||
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#0000001#ffff4012|h|i|s| +0#0000000#ffffff0@59
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|A|.|n+0#00e0e07&|e|w|(+0#e000e06&|1+0#e000002&|)+0#e000e06&|.+0#af5f00255&|V+0#0000000&|a|l|u|e|(+0#e000e06&|)| +0#0000000&@48
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|2+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|B|.|n+0#00e0e07&|e|w|(+0#e000e06&|2+0#e000002&|)+0#e000e06&|.+0#af5f00255&|V+0#0000000&|a|l|u|e|(+0#e000e06&|)| +0#0000000&@48
|
||||
|d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&|C| @62
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|5@1|,|3| @9|B|o|t|
|
||||
@@ -0,0 +1,20 @@
|
||||
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|
||||
@75
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|S|u|p|e|r| |T|o|d|o| +0#0000000&@35
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|T|h|i|s| |T|o|d|o| +0#0000000&@36
|
||||
|#+0#0000e05&| +0#0000000&|S+0#e000e06&|e@1|:| +0#0000e05&|h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|6|4|7|6|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|6|3|5|1@1|9|4|7|8| +0#0000000&@6
|
||||
@75
|
||||
@75
|
||||
|c+0#af5f00255&|l|a|s@1| +0#0000000&|A| @67
|
||||
@4|c+0#af5f00255&|o|n|s|t| +0#0000000&|_+0#00e0e07&|v|a|l|u|e|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@50
|
||||
@75
|
||||
@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@50
|
||||
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|
||||
@75
|
||||
@4|d+0#af5f00255&|e|f| +0#0000000&|K|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|a|n|y|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@44
|
||||
@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@34
|
||||
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
|
||||
@75
|
||||
|c+0#af5f00255&|l|a|s@1| +0#0000000&|B| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|A| @57
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|K|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|a|n|y|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@44
|
||||
@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@34
|
||||
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
|
||||
@75
|
||||
>c+0#af5f00255&|l|a|s@1| +0#0000000&|B| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|A| @57
|
||||
@4|d+0#af5f00255&|e|f| +0#0000000&|K|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|a|n|y|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@44
|
||||
@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@33
|
||||
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|
||||
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|A|.|n+0#00e0e07&|e|w|(+0#e000e06&|1+0#e000002&|)+0#e000e06&|.+0#af5f00255&|K+0#0000000&|(+0#e000e06&|)|(|n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@46
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|2+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|B|.|n+0#00e0e07&|e|w|(+0#e000e06&|2+0#e000002&|)+0#e000e06&|.+0#af5f00255&|K+0#0000000&|(+0#e000e06&|)|(|n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@46
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|1|9|,|1| @9|B|o|t|
|
||||
@@ -0,0 +1,20 @@
|
||||
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|
||||
@75
|
||||
|#+0#0000e05&| |V|i|m|9| |t|h|i|s| |a|n|d| |s|u|p|e|r| |k|e|y|w|o|r|d|s| +0#0000000&@44
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|T|h|i|s| |T|o|d|o| +0#0000000&@36
|
||||
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|S|u|p|e|r| |T|o|d|o| +0#0000000&@35
|
||||
@75
|
||||
|d+0#af5f00255&|e|f| +0#0000000&|E|c|h|o|(+0#e000e06&|.+0#0000000&@2|a+0#00e0e07&|r|g|s|:+0#0000000&| |l+0#00e0003&|i|s|t|<|a|n|y|>|)+0#e000e06&| +0#0000000&@46
|
||||
@2|e+0#af5f00255&|c|h|o| +0#0000000&|a+0#00e0e07&|r|g|s| +0#0000000&@63
|
||||
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
|
||||
@75
|
||||
|c+0#af5f00255&|l|a|s@1| +0#0000000&|F|o@1| @65
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@54
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|y+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|4+0#e000002&|1| +0#0000000&@45
|
||||
@2|v+0#af5f00255&|a|r| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&@41
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@63
|
||||
@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&| +0#0000000&@45
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&@41
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@63
|
||||
@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&| +0#0000000&@45
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
> @74
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|X|Y|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@39
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|a+0#00e0e07&|r|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&|)+0#e000e06&| +0#0000000&@50
|
||||
@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#00e0e07&|r|g| +0#0000000&@58
|
||||
@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&| +0#0000000&|++0#af5f00255&|=| +0#0000000&|a+0#00e0e07&|r|g| +0#0000000&@57
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|2|(+0#e000e06&|a+0#00e0e07&|r|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&@1| +0#0000000&@30
|
||||
@4|E|c|h|o|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|,+0#0000000#ffffff0| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@36
|
||||
@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|-+0#af5f00255#ffffff0|>|E+0#0000000&|c|h|o|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@36
|
||||
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|
||||
@75
|
||||
@57|1|9|,|0|-|1| @7|1|9|%|
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user