mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-02 11:19:22 +02:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 22d572d0ef |
@@ -29,6 +29,7 @@ environment:
|
||||
# disabled
|
||||
# - FEATURE: TINY
|
||||
# - FEATURE: NORMAL
|
||||
# - FEATURE: BIG
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
+25
-2
@@ -5,11 +5,15 @@ env:
|
||||
freebsd_task:
|
||||
name: FreeBSD
|
||||
matrix:
|
||||
- name: FreeBSD 14.0
|
||||
- name: FreeBSD 13.1
|
||||
freebsd_instance:
|
||||
image_family: freebsd-14-0
|
||||
image_family: freebsd-13-1
|
||||
- name: FreeBSD 12.4
|
||||
freebsd_instance:
|
||||
image_family: freebsd-12-4
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- pkg update -f
|
||||
- pkg install -y gettext
|
||||
build_script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
@@ -21,3 +25,22 @@ freebsd_task:
|
||||
- pw useradd cirrus -m
|
||||
- chown -R cirrus:cirrus .
|
||||
- sudo -u cirrus make test
|
||||
|
||||
macos_task:
|
||||
name: macOS m1
|
||||
macos_instance:
|
||||
image: ghcr.io/cirruslabs/macos-ventura-xcode:latest
|
||||
env:
|
||||
# only run with clang, gcc is not real, it is a link to clang
|
||||
CC: clang
|
||||
timeout_in: 20m
|
||||
install_script:
|
||||
- brew update
|
||||
- brew install gettext libtool
|
||||
build_script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure --with-features=${FEATURES}
|
||||
- make -j${NPROC}
|
||||
test_script:
|
||||
- src/vim --version
|
||||
- make test
|
||||
|
||||
@@ -5,8 +5,6 @@ coverage:
|
||||
default:
|
||||
threshold: 0.05%
|
||||
|
||||
comment: false
|
||||
|
||||
# Files not run by tests
|
||||
ignore:
|
||||
- "src/dosinst.c"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
service_name: github-actions
|
||||
+1
-59
@@ -18,12 +18,10 @@ runtime/autoload/netrwFileHandlers.vim @cecamp
|
||||
runtime/autoload/netrwSettings.vim @cecamp
|
||||
runtime/autoload/php.vim @david-szabo97
|
||||
runtime/autoload/rubycomplete.vim @segfault @dkearns
|
||||
runtime/autoload/rust.vim @lilyball
|
||||
runtime/autoload/tar.vim @cecamp
|
||||
runtime/autoload/vimball.vim @cecamp
|
||||
runtime/autoload/xmlformat.vim @chrisbra
|
||||
runtime/autoload/zip.vim @cecamp
|
||||
runtime/autoload/dist/json.vim @habamax
|
||||
runtime/colors/blue.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/darkblue.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/default.vim @habamax @romainl @neutaaaaan
|
||||
@@ -31,24 +29,17 @@ runtime/colors/delek.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/desert.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/elflord.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/evening.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/habamax.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/industry.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/koehler.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/lunaperche.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/morning.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/murphy.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/pablo.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/peachpuff.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/quiet.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/retrobox.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/ron.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/shine.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/slate.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/sorbet.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/tools @habamax @romainl @neutaaaaan
|
||||
runtime/colors/torte.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/wildcharm.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/zaibatsu.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/zellner.vim @habamax @romainl @neutaaaaan
|
||||
runtime/compiler/checkstyle.vim @dkearns
|
||||
runtime/compiler/cm3.vim @dkearns
|
||||
@@ -125,9 +116,6 @@ runtime/ftplugin/cs.vim @nickspoons
|
||||
runtime/ftplugin/csh.vim @dkearns
|
||||
runtime/ftplugin/css.vim @dkearns
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
runtime/ftplugin/debchangelog.vim @jamessan
|
||||
runtime/ftplugin/debcontrol.vim @jamessan
|
||||
runtime/ftplugin/debsources.vim @jamessan
|
||||
runtime/ftplugin/desktop.vim @e-kwsm
|
||||
runtime/ftplugin/dosbatch.vim @mrdubya
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
@@ -137,7 +125,6 @@ runtime/ftplugin/eruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/expect.vim @dkearns
|
||||
runtime/ftplugin/fennel.vim @gpanders
|
||||
runtime/ftplugin/fetchmail.vim @dkearns
|
||||
runtime/ftplugin/forth.vim @jkotlinski
|
||||
runtime/ftplugin/fpcmake.vim @dkearns
|
||||
runtime/ftplugin/freebasic.vim @dkearns
|
||||
runtime/ftplugin/fstab.vim @rid9
|
||||
@@ -156,23 +143,17 @@ runtime/ftplugin/go.vim @dbarnett
|
||||
runtime/ftplugin/gprof.vim @dpelle
|
||||
runtime/ftplugin/haml.vim @tpope
|
||||
runtime/ftplugin/hare.vim @rsaihe
|
||||
runtime/ftplugin/heex.vim @cvincent
|
||||
runtime/ftplugin/hgcommit.vim @k-takata
|
||||
runtime/ftplugin/hog.vim @wtfbbqhax
|
||||
runtime/ftplugin/html.vim @dkearns
|
||||
runtime/ftplugin/i3config.vim @hiqua
|
||||
runtime/ftplugin/icon.vim @dkearns
|
||||
runtime/ftplugin/indent.vim @dkearns
|
||||
runtime/ftplugin/ishd.vim @dkearns
|
||||
runtime/ftplugin/j.vim @glts
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/json.vim @dbarnett
|
||||
runtime/ftplugin/json5.vim @dkearns
|
||||
runtime/ftplugin/jsonc.vim @izhakjakov
|
||||
runtime/ftplugin/julia.vim @carlobaldassi
|
||||
runtime/ftplugin/kconfig.vim @chrisbra
|
||||
runtime/ftplugin/kotlin.vim @udalov
|
||||
runtime/ftplugin/less.vim @genoma
|
||||
runtime/ftplugin/liquid.vim @tpope
|
||||
runtime/ftplugin/lua.vim @dkearns
|
||||
@@ -192,16 +173,13 @@ runtime/ftplugin/pascal.vim @dkearns
|
||||
runtime/ftplugin/pbtxt.vim @lakshayg
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
runtime/ftplugin/perl.vim @petdance @dkearns
|
||||
runtime/ftplugin/php.vim @dkearns
|
||||
runtime/ftplugin/pod.vim @petdance @dkearns
|
||||
runtime/ftplugin/poefilter.vim @ObserverOfTime
|
||||
runtime/ftplugin/postscr.vim @mrdubya
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
runtime/ftplugin/ps1xml.vim @heaths
|
||||
runtime/ftplugin/pymanifest.vim @ObserverOfTime
|
||||
runtime/ftplugin/python.vim @tpict
|
||||
runtime/ftplugin/qb64.vim @dkearns
|
||||
runtime/ftplugin/qml.vim @ChaseKnowlden
|
||||
runtime/ftplugin/r.vim @jalvesaq
|
||||
runtime/ftplugin/racket.vim @benknoble
|
||||
runtime/ftplugin/readline.vim @dkearns
|
||||
@@ -212,20 +190,16 @@ runtime/ftplugin/routeros.vim @zainin
|
||||
runtime/ftplugin/rrst.vim @jalvesaq
|
||||
runtime/ftplugin/rst.vim @marshallward
|
||||
runtime/ftplugin/ruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/rust.vim @lilyball
|
||||
runtime/ftplugin/sass.vim @tpope
|
||||
runtime/ftplugin/scala.vim @derekwyatt
|
||||
runtime/ftplugin/scss.vim @tpope
|
||||
runtime/ftplugin/sdoc.vim @gpanders
|
||||
runtime/ftplugin/sed.vim @dkearns
|
||||
runtime/ftplugin/sh.vim @dkearns
|
||||
runtime/ftplugin/solidity.vim @cothi
|
||||
runtime/ftplugin/solution.vim @dkearns
|
||||
runtime/ftplugin/spec.vim @ignatenkobrain
|
||||
runtime/ftplugin/ssa.vim @ObserverOfTime
|
||||
runtime/ftplugin/swayconfig.vim @jamespeapen
|
||||
runtime/ftplugin/systemverilog.vim @Kocha
|
||||
runtime/ftplugin/swig.vim @jmarrec
|
||||
runtime/ftplugin/tap.vim @petdance
|
||||
runtime/ftplugin/tcsh.vim @dkearns
|
||||
runtime/ftplugin/tidy.vim @dkearns
|
||||
@@ -234,16 +208,13 @@ runtime/ftplugin/toml.vim @averms
|
||||
runtime/ftplugin/tt2html.vim @petdance
|
||||
runtime/ftplugin/typescript.vim @dkearns
|
||||
runtime/ftplugin/typescriptreact.vim @dkearns
|
||||
runtime/ftplugin/unison.vim @chuwy
|
||||
runtime/ftplugin/vdf.vim @ObserverOfTime
|
||||
runtime/ftplugin/wast.vim @rhysd
|
||||
runtime/ftplugin/wget.vim @dkearns
|
||||
runtime/ftplugin/wget2.vim @dkearns
|
||||
runtime/ftplugin/xcompose.vim @ObserverOfTime
|
||||
runtime/ftplugin/xml.vim @chrisbra
|
||||
runtime/ftplugin/xs.vim @petdance
|
||||
runtime/ftplugin/zsh.vim @chrisbra
|
||||
runtime/import/dist/vimhighlight.vim @lacygoill
|
||||
runtime/indent/basic.vim @dkearns
|
||||
runtime/indent/bst.vim @tpope
|
||||
runtime/indent/cdl.vim @dkearns
|
||||
@@ -272,7 +243,6 @@ runtime/indent/go.vim @dbarnett
|
||||
runtime/indent/gyp.vim @ObserverOfTime
|
||||
runtime/indent/haml.vim @tpope
|
||||
runtime/indent/hare.vim @rsaihe
|
||||
runtime/indent/hog.vim @wtfbbqhax
|
||||
runtime/indent/idlang.vim @dkearns
|
||||
runtime/indent/j.vim @glts
|
||||
runtime/indent/java.vim @xuhdev
|
||||
@@ -280,12 +250,9 @@ runtime/indent/javascript.vim @bounceme
|
||||
runtime/indent/json.vim @elzr
|
||||
runtime/indent/jsonc.vim @izhakjakov
|
||||
runtime/indent/julia.vim @carlobaldassi
|
||||
runtime/indent/kotlin.vim @udalov
|
||||
runtime/indent/krl.vim @KnoP-01
|
||||
runtime/indent/ld.vim @dkearns
|
||||
runtime/indent/less.vim @genoma
|
||||
runtime/indent/liquid.vim @tpope
|
||||
runtime/indent/lua.vim @marcuscf
|
||||
runtime/indent/make.vim @dkearns
|
||||
runtime/indent/meson.vim @Liambeguin
|
||||
runtime/indent/mma.vim @dkearns
|
||||
@@ -298,10 +265,8 @@ runtime/indent/postscr.vim @mrdubya
|
||||
runtime/indent/prolog.vim @dkearns
|
||||
runtime/indent/ps1.vim @heaths
|
||||
runtime/indent/qb64.vim @dkearns
|
||||
runtime/indent/qml.vim @ChaseKnowlden
|
||||
runtime/indent/r.vim @jalvesaq
|
||||
runtime/indent/racket.vim @benknoble
|
||||
runtime/indent/rapid.vim @KnoP-01
|
||||
runtime/indent/readline.vim @dkearns
|
||||
runtime/indent/rhelp.vim @jalvesaq
|
||||
runtime/indent/rmd.vim @jalvesaq
|
||||
@@ -312,7 +277,6 @@ runtime/indent/sass.vim @tpope
|
||||
runtime/indent/scala.vim @derekwyatt
|
||||
runtime/indent/scss.vim @tpope
|
||||
runtime/indent/sh.vim @chrisbra
|
||||
runtime/indent/solidity.vim @cothi
|
||||
runtime/indent/systemverilog.vim @Kocha
|
||||
runtime/indent/tcl.vim @dkearns
|
||||
runtime/indent/tcsh.vim @dkearns
|
||||
@@ -335,7 +299,7 @@ runtime/plugin/tarPlugin.vim @cecamp
|
||||
runtime/plugin/vimballPlugin.vim @cecamp
|
||||
runtime/plugin/zipPlugin.vim @cecamp
|
||||
runtime/plugin/manpager.vim @Konfekt
|
||||
runtime/syntax/shared/hgcommitDiff.vim @vegerot
|
||||
runtime/syntax/shared/hgcommitDiff.vim @vegerot
|
||||
runtime/syntax/abaqus.vim @costerwi
|
||||
runtime/syntax/aidl.vim @dpelle
|
||||
runtime/syntax/amiga.vim @cecamp
|
||||
@@ -363,12 +327,6 @@ runtime/syntax/d.vim @JesseKPhillips
|
||||
runtime/syntax/dart.vim @pr3d4t0r
|
||||
runtime/syntax/datascript.vim @dpelle
|
||||
runtime/syntax/dcl.vim @cecamp
|
||||
runtime/syntax/deb822sources.vim @jamessan
|
||||
runtime/syntax/debchangelog.vim @jamessan
|
||||
runtime/syntax/debcontrol.vim @jamessan
|
||||
runtime/syntax/debcopyright.vim @jamessan
|
||||
runtime/syntax/debsources.vim @jamessan
|
||||
runtime/syntax/dep3patch.vim @jamessan
|
||||
runtime/syntax/desktop.vim @e-kwsm
|
||||
runtime/syntax/dosbatch.vim @mrdubya
|
||||
runtime/syntax/dosini.vim @xuhdev
|
||||
@@ -402,7 +360,6 @@ runtime/syntax/gitolite.vim @sitaramc
|
||||
runtime/syntax/gitrebase.vim @tpope
|
||||
runtime/syntax/go.vim @bhcleek
|
||||
runtime/syntax/godoc.vim @dbarnett
|
||||
runtime/syntax/gp.vim @KBelabas
|
||||
runtime/syntax/gprof.vim @dpelle
|
||||
runtime/syntax/groff.vim @jmarshall
|
||||
runtime/syntax/gyp.vim @ObserverOfTime
|
||||
@@ -410,8 +367,6 @@ runtime/syntax/haml.vim @tpope
|
||||
runtime/syntax/hare.vim @rsaihe
|
||||
runtime/syntax/haskell.vim @coot
|
||||
runtime/syntax/hgcommit.vim @k-takata
|
||||
runtime/syntax/hitest.vim @lacygoill
|
||||
runtime/syntax/hog.vim @wtfbbqhax
|
||||
runtime/syntax/hollywood.vim @sodero
|
||||
runtime/syntax/html.vim @dkearns
|
||||
runtime/syntax/i3config.vim @hiqua
|
||||
@@ -424,13 +379,10 @@ runtime/syntax/javascript.vim @fleiner
|
||||
runtime/syntax/jsonc.vim @izhakjakov
|
||||
runtime/syntax/julia.vim @carlobaldassi
|
||||
runtime/syntax/kconfig.vim @chrisbra
|
||||
runtime/syntax/kotlin.vim @udalov
|
||||
runtime/syntax/krl.vim @KnoP-01
|
||||
runtime/syntax/less.vim @genoma
|
||||
runtime/syntax/lex.vim @cecamp
|
||||
runtime/syntax/liquid.vim @tpope
|
||||
runtime/syntax/lisp.vim @cecamp
|
||||
runtime/syntax/lua.vim @marcuscf
|
||||
runtime/syntax/lyrics.vim @ObserverOfTime
|
||||
runtime/syntax/lynx.vim @dkearns
|
||||
runtime/syntax/m3build.vim @dkearns
|
||||
@@ -451,7 +403,6 @@ runtime/syntax/nix.vim @equill
|
||||
runtime/syntax/nroff.vim @jmarshall
|
||||
runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/openvpn.vim @ObserverOfTime
|
||||
runtime/syntax/pacmanlog.vim @rpigott
|
||||
runtime/syntax/pascal.vim @dkearns
|
||||
runtime/syntax/pbtxt.vim @lakshayg
|
||||
runtime/syntax/pdf.vim @tpope
|
||||
@@ -466,13 +417,10 @@ runtime/syntax/prolog.vim @XVilka
|
||||
runtime/syntax/ps1.vim @heaths
|
||||
runtime/syntax/ps1xml.vim @heaths
|
||||
runtime/syntax/psl.vim @danielkho
|
||||
runtime/syntax/pymanifest.vim @ObserverOfTime
|
||||
runtime/syntax/qb64.vim @dkearns
|
||||
runtime/syntax/qml.vim @ChaseKnowlden
|
||||
runtime/syntax/r.vim @jalvesaq
|
||||
runtime/syntax/racket.vim @benknoble
|
||||
runtime/syntax/raml.vim @in3d
|
||||
runtime/syntax/rapid.vim @KnoP-01
|
||||
runtime/syntax/ratpoison.vim @trapd00r
|
||||
runtime/syntax/rc.vim @chrisbra
|
||||
runtime/syntax/rcs.vim @hdima
|
||||
@@ -492,9 +440,7 @@ runtime/syntax/scss.vim @tpope
|
||||
runtime/syntax/sdoc.vim @gpanders
|
||||
runtime/syntax/sed.vim @dkearns
|
||||
runtime/syntax/sh.vim @cecamp
|
||||
runtime/syntax/shared/debversions.vim @jamessan
|
||||
runtime/syntax/sm.vim @cecamp
|
||||
runtime/syntax/solidity.vim @cothi
|
||||
runtime/syntax/spec.vim @ignatenkobrain
|
||||
runtime/syntax/sqloracle.vim @chrisbra
|
||||
runtime/syntax/squirrel.vim @zenmatic
|
||||
@@ -505,7 +451,6 @@ runtime/syntax/sshdconfig.vim @Jakuje
|
||||
runtime/syntax/sudoers.vim @e-kwsm
|
||||
runtime/syntax/svn.vim @hdima
|
||||
runtime/syntax/swayconfig.vim @jamespeapen
|
||||
runtime/syntax/swig.vim @jmarrec
|
||||
runtime/syntax/systemverilog.vim @Kocha
|
||||
runtime/syntax/tags.vim @cecamp
|
||||
runtime/syntax/tap.vim @petdance
|
||||
@@ -521,7 +466,6 @@ runtime/syntax/tt2js.vim @petdance
|
||||
runtime/syntax/typescript.vim @HerringtonDarkholme
|
||||
runtime/syntax/typescriptcommon.vim @HerringtonDarkholme
|
||||
runtime/syntax/typescriptreact.vim @HerringtonDarkholme
|
||||
runtime/syntax/unison.vim @chuwy
|
||||
runtime/syntax/vdf.vim @ObserverOfTime
|
||||
runtime/syntax/vim.vim @cecamp
|
||||
runtime/syntax/vroom.vim @dbarnett
|
||||
@@ -530,14 +474,12 @@ runtime/syntax/wdl.vim @zenmatic
|
||||
runtime/syntax/wget.vim @dkearns
|
||||
runtime/syntax/wget2.vim @dkearns
|
||||
runtime/syntax/xbl.vim @dkearns
|
||||
runtime/syntax/xcompose.vim @ObserverOfTime
|
||||
runtime/syntax/xmath.vim @cecamp
|
||||
runtime/syntax/xml.vim @chrisbra
|
||||
runtime/syntax/xs.vim @petdance
|
||||
runtime/syntax/xslt.vim @Boobies
|
||||
runtime/syntax/xxd.vim @cecamp
|
||||
runtime/syntax/yacc.vim @cecamp
|
||||
runtime/syntax/zserio.vim @dpelle
|
||||
runtime/syntax/zsh.vim @chrisbra
|
||||
runtime/tutor/tutor.eo @dpelle
|
||||
runtime/tutor/tutor.eo.utf-8 @dpelle
|
||||
|
||||
@@ -9,7 +9,10 @@ body:
|
||||
value: |
|
||||
Thanks for reporting issues of MacVim!
|
||||
|
||||
If you want to report a security issue, instead of reporting it here publicly, please disclose it using the steps listed at https://github.com/macvim-dev/macvim/security/policy.
|
||||
If you want to report a security issue, instead of reporting it here
|
||||
you can alternatively disclose it on
|
||||
[huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=macvim-dev%2Fmacvim&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fmacvim-dev%2Fmacvim).
|
||||
They have rewards in the form of money, swag and CVEs.
|
||||
|
||||
To make it easier for us to help you please enter detailed information below.
|
||||
- type: textarea
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
# Security Policy
|
||||
|
||||
**Please do not report security vulnerabilities through public GitHub issues.**
|
||||
|
||||
To report a security vulnerability for MacVim, please either email security@macvim.org, or visit https://github.com/macvim-dev/macvim/security/advisories/new.
|
||||
@@ -1,14 +1,5 @@
|
||||
name: Universal package
|
||||
description: Create universal Homebrew package which contains x86_64 and arm64
|
||||
|
||||
# Instead of using the default binary installed by Homebrew, we need to build our own because third-party libraries are
|
||||
# statically linked in MacVim, and need to be built against MACOSX_DEPLOYMENT_TARGET to ensure the built binary will
|
||||
# work on supported macOS versions. Another reason for building our own custom package is to build a unviersal binary
|
||||
# that has both x86_64 and arm64 arch, as Homebrew's distributed bottles are thin binaries with only one arch.
|
||||
#
|
||||
# We still use Homebrew to manage the library because their formulas are up to date and have correct build instructions
|
||||
# that will work. This way we don't have to manually configuring and building and updating the package info.
|
||||
|
||||
inputs:
|
||||
formula:
|
||||
description: Formura name
|
||||
@@ -20,33 +11,18 @@ runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- name: Set up formula
|
||||
id: setup-formula
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Set up formula'
|
||||
set -o pipefail
|
||||
formula=${{ inputs.formula }}
|
||||
|
||||
# Need to make sure we get the latest before patching. Otherwise Homebrew may later try to get the latest
|
||||
# version and stomp what we have here.
|
||||
brew update
|
||||
|
||||
# Patch the official Homebrew formula to explicitly build for min deployment target and a universal binary. We
|
||||
# also need to explicitly use system Clang because Homebrew's bundled clang script tries to inject -march
|
||||
# compiler flags that will cause universal builds to fail as Clang does not like that.
|
||||
# Patch the official Homebrew formula to explicitly build for min deployment target
|
||||
brew cat ${formula} | \
|
||||
sed '/^[[:blank:]]*def install$/a\'$'\n ENV["MACOSX_DEPLOYMENT_TARGET"] = "'${MACOSX_DEPLOYMENT_TARGET}$'"\n' | \
|
||||
sed '/^[[:blank:]]*def install$/a\'$'\n ENV["CC"] = "/usr/bin/clang"\n' | \
|
||||
sed '/^[[:blank:]]*def install$/a\'$'\n ENV["CFLAGS"] = "-arch x86_64 -arch arm64"\n' | \
|
||||
sed '/^[[:blank:]]*def install$/a\'$'\n ENV["LDFLAGS"] = "-arch x86_64 -arch arm64"\n' >${formula}.rb
|
||||
sed '/^[[:blank:]]*def install$/a\'$'\n ENV["MACOSX_DEPLOYMENT_TARGET"] = "'${MACOSX_DEPLOYMENT_TARGET}$'"\n' >${formula}.rb
|
||||
|
||||
# Uninstall the already installed formula because we want to build our own
|
||||
brew uninstall --ignore-dependencies ${formula} || true
|
||||
|
||||
# Extract Xcode version to serve as part of the key for caching
|
||||
xcode_version=$(xcodebuild -version | tail -1 | sed -E 's/Build version (.*)/\1/')
|
||||
echo "xcode_version=$xcode_version" >> $GITHUB_OUTPUT
|
||||
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: Cache keg
|
||||
@@ -54,10 +30,12 @@ runs:
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: /usr/local/Cellar/${{ inputs.formula }}
|
||||
key: ${{ inputs.formula }}-homebrew-cache-custom-unified-xcode${{ steps.setup-formula.outputs.xcode_version }}-${{ hashFiles(format('{0}.rb', inputs.formula)) }}
|
||||
key: ${{ inputs.formula }}-homebrew-cache-patched-unified-${{ hashFiles(format('{0}.rb', inputs.formula)) }}
|
||||
|
||||
- name: Install formula
|
||||
shell: bash
|
||||
env:
|
||||
HOMEBREW_NO_AUTO_UPDATE: '1'
|
||||
run: |
|
||||
echo '::group::Install formula'
|
||||
formula=${{ inputs.formula }}
|
||||
@@ -69,16 +47,38 @@ runs:
|
||||
brew unlink ${formula} && brew link ${formula}
|
||||
echo '::endgroup::'
|
||||
|
||||
echo '::group::Verify built version'
|
||||
- name: Create universal binaries with arm64 bottle
|
||||
if: steps.cache-keg.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
echo '::group::Create universal binaries with arm64 bottle'
|
||||
set -o verbose
|
||||
formula=${{ inputs.formula }}
|
||||
contents=($(IFS=,; for x in ${{ inputs.contents }}; do echo ${x}; done))
|
||||
|
||||
# Manually download and extract a bottle for arm64
|
||||
source /dev/stdin <<<"$(brew info --json ${formula} | \
|
||||
jq -r '.[0] | "bottle_url=\(.bottle.stable.files.arm64_big_sur.url)", "formula_ver=\(.versions.stable)", "formula_rev=\(.revision)"')"
|
||||
if [[ ${formula_rev} -ne 0 ]]; then
|
||||
formula_ver=${formula_ver}_${formula_rev}
|
||||
fi
|
||||
|
||||
workdir=${formula}_download
|
||||
mkdir ${workdir}
|
||||
cd ${workdir}
|
||||
wget --no-verbose --header 'Authorization: Bearer QQ==' -O ${formula}.tar.gz ${bottle_url}
|
||||
tar xf ${formula}.tar.gz
|
||||
|
||||
for content in "${contents[@]}"; do
|
||||
# Print out the archs and verify they are universal fat binary.
|
||||
# Just for diagnostics, print out the old archs. This should be a thin binary (x86_64)
|
||||
lipo -info /usr/local/${content}
|
||||
|
||||
# Create a universal binary by patching the custom built x86_64 one with the downloaded arm64 one.
|
||||
# Modify the actual binaries in /usr/local/Cellar instead of the symlinks to allow caching to work.
|
||||
lipo -create -output /usr/local/Cellar/${formula}/${formula_ver}/${content} \
|
||||
/usr/local/Cellar/${formula}/${formula_ver}/${content} ./${formula}/${formula_ver}/${content}
|
||||
|
||||
# Print out the new archs and verify they are universal with 2 archs.
|
||||
lipo -info /usr/local/${content} | grep 'x86_64 arm64'
|
||||
|
||||
# Make sure deployment target is correct. Later macOS versions have a different binary format (just search for
|
||||
# "minos") but for 10.13 we need to look for LC_VERSION_MIN_MACOSX.
|
||||
otool -l /usr/local/${content} | grep -A 2 LC_VERSION_MIN_MACOSX | tail -1 | grep "${MACOSX_DEPLOYMENT_TARGET}"
|
||||
done
|
||||
|
||||
echo '::endgroup::'
|
||||
|
||||
@@ -4,5 +4,3 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
commit-message:
|
||||
prefix: "CI"
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
# list of labels and minimatch globs to match to apply the label.
|
||||
|
||||
CI:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '.cirrus.yml'
|
||||
- '.github/dependabot.yml'
|
||||
- '.github/labeler.yml'
|
||||
- '.github/workflows/*'
|
||||
- '.appveyor.yml'
|
||||
- '.codecov.yml'
|
||||
|
||||
documentation:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '*/doc/*'
|
||||
|
||||
translation:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/po/*.po'
|
||||
|
||||
if_lua:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/if_lua.c'
|
||||
- 'src/proto/if_lua.pro'
|
||||
- 'runtime/doc/if_lua.txt'
|
||||
|
||||
if_mzscheme:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/if_mzsch.c'
|
||||
- 'src/if_mzsch.h'
|
||||
- 'src/proto/if_mzsch.pro'
|
||||
- 'runtime/doc/if_mzsch.txt'
|
||||
|
||||
if_perl:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/if_perl.xs'
|
||||
- 'src/if_perlsfio.c'
|
||||
- 'src/proto/if_perl.pro'
|
||||
- 'src/proto/if_perlsfio.pro'
|
||||
- 'runtime/doc/if_perl.txt'
|
||||
|
||||
if_python:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/if_py_both.h'
|
||||
- 'runtime/doc/if_pyth.txt'
|
||||
- 'src/if_python.c'
|
||||
- 'src/if_python3.c'
|
||||
- 'src/proto/if_python.pro'
|
||||
- 'src/proto/if_python3.pro'
|
||||
|
||||
if_ruby:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/if_ruby.c'
|
||||
- 'src/proto/if_ruby.pro'
|
||||
- 'runtime/doc/if_ruby.txt'
|
||||
|
||||
if_tcl:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/if_tcl.c'
|
||||
- 'src/proto/if_tcl.pro'
|
||||
- 'runtime/doc/if_tcl.txt'
|
||||
|
||||
installer:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'nsis/**'
|
||||
- 'src/dosinst.*'
|
||||
- 'src/uninstall.c'
|
||||
|
||||
platform-mac:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/INSTALLmac.txt'
|
||||
- 'src/os_mac*'
|
||||
- 'src/proto/os_mac*'
|
||||
|
||||
platform-windows:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'nsis/**'
|
||||
- 'src/*.bat'
|
||||
- 'src/*.bmp'
|
||||
- 'src/*.ico'
|
||||
- 'src/GvimExt/*'
|
||||
- 'src/INSTALLpc.txt'
|
||||
- 'src/Make_cyg*.mak'
|
||||
- 'src/Make_ming.mak'
|
||||
- 'src/Make_mvc.mak'
|
||||
- 'src/dosinst.*'
|
||||
- 'src/gui_dwrite.*'
|
||||
- 'src/gui_w32*'
|
||||
- 'src/if_ole.*'
|
||||
- 'src/iid_ole.c'
|
||||
- 'src/os_mswin*'
|
||||
- 'src/os_w32*'
|
||||
- 'src/os_win32.*'
|
||||
- 'src/proto/gui_w32.pro'
|
||||
- 'src/proto/os_mswin.pro'
|
||||
- 'src/proto/os_win32.pro'
|
||||
- 'src/proto/winclip.pro'
|
||||
- 'src/uninstall.c'
|
||||
- 'src/vim.manifest'
|
||||
- 'src/vim.rc'
|
||||
- 'src/vimrun.c'
|
||||
- 'src/winclip.c'
|
||||
- 'src/xpm/**'
|
||||
- 'src/xpm_w32.*'
|
||||
|
||||
runtime:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'runtime/ftplugin'
|
||||
- 'runtime/syntax'
|
||||
- 'runtime/indent'
|
||||
- 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim'
|
||||
|
||||
termdebug:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim'
|
||||
|
||||
plugin-netrw:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'runtime/plugin/netrwPlugin.vim'
|
||||
- 'runtime/autoload/netrw*'
|
||||
|
||||
xxd:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'src/xxd/*'
|
||||
@@ -1,7 +0,0 @@
|
||||
# Customize GitHub release notes generation. This is only used for pre-release builds for now as
|
||||
# main releases have hand-written release notes.
|
||||
changelog:
|
||||
exclude:
|
||||
labels:
|
||||
- dependencies
|
||||
- Non User Facing
|
||||
@@ -20,24 +20,20 @@ env:
|
||||
|
||||
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.30' # 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
|
||||
VERSIONER_PERL_VERSION: '5.30'
|
||||
VERSIONER_PYTHON_VERSION: '2.7'
|
||||
vi_cv_path_python: /usr/local/bin/python
|
||||
vi_cv_path_python3: /usr/local/bin/python3
|
||||
vi_cv_path_plain_lua: /usr/local/bin/lua
|
||||
vi_cv_path_ruby: /usr/local/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_perl: /System/Library/Perl/5.30/darwin-thread-multi-2level/CORE/libperl.dylib
|
||||
vi_cv_dll_name_python: /usr/local/Frameworks/Python.framework/Versions/2.7/Python
|
||||
vi_cv_dll_name_python3: /usr/local/Frameworks/Python.framework/Versions/3.10/Python # Make sure to keep src/MacVim/vimrc synced with the Python version here for the Python DLL detection logic.
|
||||
vi_cv_dll_name_python3_arm64: /opt/homebrew/Frameworks/Python.framework/Versions/3.10/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
|
||||
|
||||
@@ -56,7 +52,6 @@ jobs:
|
||||
# Oldest version of Xcode supported on GitHub Action to test source code backwards compatibility
|
||||
- os: macos-11
|
||||
xcode: '11.7'
|
||||
extra: [vimtags, check-xcodeproj-compat]
|
||||
|
||||
# Older version of Xcode, and used to publish legacy builds (for macOS 10.9 - 10.12)
|
||||
- os: macos-12
|
||||
@@ -66,15 +61,15 @@ jobs:
|
||||
publish_postfix: '_10.9'
|
||||
|
||||
# Most up to date OS and Xcode. Used to publish release for the main build.
|
||||
- os: macos-13
|
||||
xcode: '15.1'
|
||||
- os: macos-12
|
||||
xcode: '14.1'
|
||||
publish: true
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up legacy build
|
||||
if: matrix.legacy
|
||||
@@ -87,20 +82,19 @@ jobs:
|
||||
# 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.
|
||||
#
|
||||
# Instead of using the default binary installed by Homebrew, need to build our own because gettext is statically
|
||||
# linked in MacVim, and need to be built against MACOSX_DEPLOYMENT_TARGET to ensure the built binary will work on
|
||||
# supported macOS versions.
|
||||
#
|
||||
# In addition, to support building a universal MacVim, we need an arm64 version of gettext as well in order to
|
||||
# create a universal gettext binary to link against (Homebrew only distributes thin binaries and therefore this
|
||||
# has to be done manually). To do that, we will just pull the bottle directly from Homebrew and patch it in using
|
||||
# lipo. We can't use normal brew commands to get the bottle because brew doesn't natively support cross-compiling
|
||||
# and we are running CI on x86_64 Macs. We also don't need to worry about the min deployment target fix on arm64
|
||||
# because all Apple Silicon Macs have to run on macOS 11+.
|
||||
|
||||
- name: Set up gettext
|
||||
if: matrix.publish
|
||||
uses: ./.github/actions/universal-package
|
||||
@@ -121,32 +115,29 @@ jobs:
|
||||
|
||||
- name: Install packages
|
||||
if: matrix.publish
|
||||
env:
|
||||
HOMEBREW_NO_AUTO_UPDATE: 1
|
||||
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 python3
|
||||
brew install ruby
|
||||
brew install lua
|
||||
|
||||
# CI sometimes have custom installed Python instead of using Homebrew. Forcefully re-
|
||||
# link Python, and then check that we are using the Homebrew version. This avoids us
|
||||
# using a mystery Python installation that we don't control.
|
||||
brew unlink python3 && brew link --overwrite python3
|
||||
readlink -f $vi_cv_path_python3 | grep "^$(brew --cellar python3)"
|
||||
|
||||
if [[ -d /usr/local/Cellar/perl ]]; then
|
||||
# We just use system perl to reduce dependencies
|
||||
brew unlink perl
|
||||
fi
|
||||
|
||||
# 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 /
|
||||
- name: Set up Xcode
|
||||
if: matrix.xcode != ''
|
||||
run: |
|
||||
sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
|
||||
xcode-select -p
|
||||
|
||||
# All set up steps are done. Build and test MacVim below.
|
||||
|
||||
@@ -167,7 +158,6 @@ jobs:
|
||||
--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=/usr/local
|
||||
@@ -188,18 +178,11 @@ jobs:
|
||||
|
||||
./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
|
||||
sed -i.bak -f ci/config.mk.sed -f ci/config.mk.clang.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.publish == true && ! matrix.legacy }}; then
|
||||
# Only do O3/link-time optimizations for publish builds, so the other ones can still finish quickly to give
|
||||
# quick feedbacks. Only do this for non-legacy builds now as it seems the older toolchain doesn't work as
|
||||
# well for this.
|
||||
sed -i.bak -f ci/config.mk.optimized.sed src/auto/config.mk
|
||||
fi
|
||||
|
||||
- name: Modify configure result
|
||||
if: matrix.publish
|
||||
run: |
|
||||
@@ -221,50 +204,44 @@ jobs:
|
||||
cat src/auto/config.mk
|
||||
cat src/auto/config.h
|
||||
|
||||
- name: Build
|
||||
# Build Vim first, separately from MacVim, so that we can use it to run
|
||||
# vimtags afterwards to get the most correct help tags before we copy
|
||||
# that into the MacVim bundle.
|
||||
- name: Build Vim
|
||||
env:
|
||||
LC_ALL: C
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
echo "Building Vim with ${NPROC} cores"
|
||||
|
||||
make -C src -j${NPROC} Vim
|
||||
|
||||
# Re-generate Vim help tags, because sometimes the Vim's runtime is not
|
||||
# updated to have the latest tags.
|
||||
- name: Update Vim help tags
|
||||
if: matrix.publish
|
||||
run: make -C runtime/doc vimtags VIMEXE=../../src/vim
|
||||
|
||||
- name: Build MacVim
|
||||
env:
|
||||
LC_ALL: C
|
||||
run: |
|
||||
set -o verbose
|
||||
|
||||
NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
echo "Building MacVim with ${NPROC} cores"
|
||||
|
||||
set -o verbose
|
||||
make ${MAKE_BUILD_ARGS} -j${NPROC}
|
||||
make -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
|
||||
@@ -284,7 +261,13 @@ jobs:
|
||||
macvim_excmd -c 'lang es_ES' -c 'version' | grep Enlazado
|
||||
|
||||
# Check that libsodium is working
|
||||
macvim_excmd -c 'set cryptmethod=xchacha20v2'
|
||||
macvim_excmd -c 'set cryptmethod=xchacha20'
|
||||
|
||||
# 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 we are building universal x86_64 / arm64 builds and didn't accidentally create a thin app.
|
||||
check_arch() {
|
||||
@@ -298,47 +281,15 @@ jobs:
|
||||
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
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
make ${MAKE_BUILD_ARGS} -C src macvim-tests
|
||||
|
||||
- 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
|
||||
- name: Test
|
||||
timeout-minutes: 20
|
||||
run: make ${MAKE_BUILD_ARGS} test
|
||||
run: make test
|
||||
|
||||
- name: Test Vim (GUI)
|
||||
- name: Test GUI
|
||||
timeout-minutes: 20
|
||||
run: |
|
||||
make ${MAKE_BUILD_ARGS} -C src/testdir clean
|
||||
make ${MAKE_BUILD_ARGS} -C src testgui
|
||||
make -C src/testdir clean
|
||||
make -C src testgui
|
||||
|
||||
# Creates a DMG package of MacVim. 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
|
||||
@@ -348,11 +299,7 @@ jobs:
|
||||
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 CREATEDMG_FLAGS=--skip-jenkins
|
||||
else
|
||||
make -C src macvim-dmg CREATEDMG_FLAGS=--skip-jenkins
|
||||
fi
|
||||
make -C src macvim-dmg CREATEDMG_FLAGS=--skip-jenkins
|
||||
|
||||
if ${{ matrix.publish_postfix != '' }}; then
|
||||
mv src/MacVim/build/Release/MacVim.dmg src/MacVim/build/Release/MacVim${{ matrix.publish_postfix }}.dmg
|
||||
@@ -360,7 +307,7 @@ jobs:
|
||||
|
||||
- name: Upload MacVim image
|
||||
if: startsWith(github.ref, 'refs/tags/') && matrix.publish
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: MacVim${{ matrix.publish_postfix }}.dmg
|
||||
path: src/MacVim/build/Release/MacVim${{ matrix.publish_postfix }}.dmg
|
||||
|
||||
@@ -44,11 +44,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -73,4 +73,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
||||
@@ -9,17 +9,18 @@ permissions:
|
||||
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
env:
|
||||
CC: gcc
|
||||
CFLAGS: -Wno-deprecated-declarations
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository from github
|
||||
if: env.TOKEN
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Download Coverity
|
||||
if: env.TOKEN
|
||||
@@ -31,15 +32,15 @@ jobs:
|
||||
- name: Install packages
|
||||
if: env.TOKEN
|
||||
run: |
|
||||
sudo apt-get update && sudo apt-get install -y \
|
||||
sudo apt update && sudo apt install -y \
|
||||
autoconf \
|
||||
gettext \
|
||||
libcanberra-dev \
|
||||
libperl-dev \
|
||||
python2-dev \
|
||||
python-dev \
|
||||
python3-dev \
|
||||
liblua5.4-dev \
|
||||
lua5.4 \
|
||||
liblua5.3-dev \
|
||||
lua5.3 \
|
||||
ruby-dev \
|
||||
tcl-dev \
|
||||
libgtk2.0-dev \
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# This workflow will triage pull requests and apply a label based on the
|
||||
# paths that are modified in the pull request.
|
||||
#
|
||||
# To use this workflow, you will need to set up a .github/labeler.yml
|
||||
# file with configuration. For more information, see:
|
||||
# https://github.com/actions/labeler
|
||||
|
||||
name: Labeler
|
||||
on: [pull_request_target]
|
||||
|
||||
jobs:
|
||||
label:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/labeler@v5
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/stale@v9
|
||||
- uses: actions/stale@v7
|
||||
with:
|
||||
any-of-labels: "Response Needed"
|
||||
days-before-stale: 45
|
||||
|
||||
+5
-7
@@ -68,7 +68,6 @@ src/tags
|
||||
/GPATH
|
||||
/GTAGS
|
||||
/GRTAGS
|
||||
nsis/tags
|
||||
|
||||
# Generated by "make test"
|
||||
src/po/*.ck
|
||||
@@ -97,11 +96,11 @@ src/kword_test
|
||||
# From MacVim
|
||||
.*.swp
|
||||
.DS_Store
|
||||
src/MacVim/MacVim*.xcodeproj/*.mode1
|
||||
src/MacVim/MacVim*.xcodeproj/*.mode1v3
|
||||
src/MacVim/MacVim*.xcodeproj/*.pbxuser
|
||||
src/MacVim/MacVim*.xcodeproj/project.xcworkspace
|
||||
src/MacVim/MacVim*.xcodeproj/xcuserdata
|
||||
src/MacVim/MacVim.xcodeproj/*.mode1
|
||||
src/MacVim/MacVim.xcodeproj/*.mode1v3
|
||||
src/MacVim/MacVim.xcodeproj/*.pbxuser
|
||||
src/MacVim/MacVim.xcodeproj/project.xcworkspace
|
||||
src/MacVim/MacVim.xcodeproj/xcuserdata
|
||||
src/MacVim/icons/*.pyc
|
||||
src/MacVim/icons/*.ttf
|
||||
src/MacVim/icons/*.reg
|
||||
@@ -123,7 +122,6 @@ src/MacVim/qlstephen/QuickLookStephen.xcodeproj/*.pbxuser
|
||||
src/MacVim/qlstephen/QuickLookStephen.xcodeproj/xcuserdata
|
||||
src/MacVim/qlstephen/build
|
||||
src/MacVim/build
|
||||
src/MacVim/auto
|
||||
src/MacVim/DerivedData
|
||||
src/TAGS
|
||||
src/Vim
|
||||
|
||||
@@ -7,9 +7,9 @@ src/xxd/xxd
|
||||
src/auto/if_perl.c
|
||||
src/auto/gui_gtk_gresources.c
|
||||
src/auto/gui_gtk_gresources.h
|
||||
src/auto/os_haiku.rdef
|
||||
src/objects/.dirstamp
|
||||
src/objects
|
||||
src/tags
|
||||
src/types.vim
|
||||
|
||||
# We do need src/auto/configure.
|
||||
@@ -46,15 +46,12 @@ gvimext.lib
|
||||
gvim.lib
|
||||
runtime/doc/uganda.nsis.txt
|
||||
nsis/icons/*
|
||||
/vim90/
|
||||
.vscode/
|
||||
|
||||
# NetBeans
|
||||
nbproject/*
|
||||
|
||||
# Mac OSX
|
||||
src/xxd/xxd.dSYM
|
||||
.DS_Store
|
||||
|
||||
# All platforms
|
||||
*.rej
|
||||
@@ -65,12 +62,6 @@ src/xxd/xxd.dSYM
|
||||
*.pyc
|
||||
*.log
|
||||
src/po/vim.pot
|
||||
src/tags
|
||||
/tags
|
||||
/GPATH
|
||||
/GTAGS
|
||||
/GRTAGS
|
||||
nsis/tags
|
||||
|
||||
# Generated by "make test"
|
||||
src/po/*.ck
|
||||
@@ -87,16 +78,14 @@ src/testdir/dostmp/*
|
||||
src/testdir/messages
|
||||
src/testdir/viminfo
|
||||
src/testdir/opt_test.vim
|
||||
src/testdir/failed
|
||||
src/testdir/starttime
|
||||
runtime/indent/testdir/*.out
|
||||
runtime/indent/testdir/*.fail
|
||||
src/memfile_test
|
||||
src/json_test
|
||||
src/message_test
|
||||
src/kword_test
|
||||
|
||||
# Generated by "make install"
|
||||
runtime/doc/tags
|
||||
runtime/doc/doctags
|
||||
|
||||
# Generated by "make shadow". The directory names could be anything but we
|
||||
@@ -106,10 +95,5 @@ src/shadow-*
|
||||
src/runtime
|
||||
src/pixmaps
|
||||
|
||||
# other files possibly created by tools
|
||||
# other possible files build by tools
|
||||
src/cscope.out
|
||||
|
||||
# Linter/language server files
|
||||
/.cache/clangd/
|
||||
/.ccls-cache/
|
||||
/compile_commands.json
|
||||
|
||||
+18
-32
@@ -1,12 +1,13 @@
|
||||
# Contributing to Vim
|
||||
|
||||
Patches are welcome in whatever form.
|
||||
Discussions about patches happen on the [vim-dev][0] mailing list.
|
||||
Discussions about patches happen on the vim-dev maillist.
|
||||
If you create a pull request on GitHub it will be
|
||||
forwarded to the vim-dev mailing list. You can also send your patch there
|
||||
directly (but please note, the initial posting is subject to moderation).
|
||||
In that case an attachment with a unified diff format is preferred.
|
||||
Information about the mailing list can be found [on the Vim website][0]
|
||||
forwarded to the vim-dev maillist. You can also send your patch there
|
||||
directly. In that case an attachment with a unified diff format is preferred.
|
||||
Information about the maillist can be found [on the Vim website].
|
||||
|
||||
[on the Vim website]: http://www.vim.org/maillist.php#vim-dev
|
||||
|
||||
A pull request has the advantage that it will trigger the Continuous
|
||||
Integration tests, you will be warned of problems (you can ignore the coverage
|
||||
@@ -21,27 +22,31 @@ Contributions will be distributed with Vim under the Vim license. Providing a
|
||||
change to be included implies that you agree with this and your contribution
|
||||
does not cause us trouble with trademarks or patents. There is no CLA to sign.
|
||||
|
||||
|
||||
# Reporting issues
|
||||
|
||||
We use GitHub issues, but that is not a requirement. Writing to the Vim
|
||||
mailing list is also fine.
|
||||
maillist is also fine.
|
||||
|
||||
Please use the GitHub issues only for actual issues. If you are not 100% sure
|
||||
that your problem is a Vim issue, please first discuss this on the Vim user
|
||||
mailing list. Try reproducing the problem without any of your plugins or settings:
|
||||
maillist. Try reproducing the problem without any of your plugins or settings:
|
||||
|
||||
vim --clean
|
||||
|
||||
If you report an issue, please describe exactly how to reproduce it.
|
||||
For example, don't say "insert some text" but say what you did exactly:
|
||||
`ahere is some text<Esc>`.
|
||||
"ahere is some text<Esc>".
|
||||
Ideally, the steps you list can be used to write a test to verify the problem
|
||||
is fixed.
|
||||
|
||||
Feel free to report even the smallest problem, also typos in the documentation.
|
||||
|
||||
You can find known issues in the todo file: `:help todo`.
|
||||
Or open [the todo file][todo list] on GitHub to see the latest version.
|
||||
You can find known issues in the todo file: ":help todo".
|
||||
Or open [the todo file] on GitHub to see the latest version.
|
||||
|
||||
[the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
|
||||
|
||||
|
||||
# Syntax, indent and other runtime files
|
||||
|
||||
@@ -52,10 +57,11 @@ If you find a problem with one of these files or have a suggestion for
|
||||
improvement, please first try to contact the maintainer directly.
|
||||
Look in the header of the file for the name and email address.
|
||||
|
||||
The maintainer will take care of issues and send updates to the Vim project for
|
||||
The maintainer will take care of issues and send updates to Bram for
|
||||
distribution with Vim.
|
||||
|
||||
If the maintainer does not respond, contact the [vim-dev][0] mailing list.
|
||||
If the maintainer does not respond, contact the vim-dev maillist.
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
@@ -71,28 +77,8 @@ can be translated:
|
||||
The help files can be translated and made available separately.
|
||||
See https://www.vim.org/translations.php for examples.
|
||||
|
||||
# How do I contribute to the project?
|
||||
|
||||
Please have a look at the following [discussion][6], which should give you some
|
||||
ideas. Please also check the [develop.txt][7] helpfile for the recommended
|
||||
style. Often it's also beneficial to check the surrounding code for the style
|
||||
being used.
|
||||
|
||||
# I have a question
|
||||
|
||||
If you have some question on the style guide, please contact the [vim-dev][0]
|
||||
mailing list. For other questions please use the [Vi Stack Exchange][8] website, the
|
||||
[vim-use][9] mailing list or make use of the [discussion][10] feature here at github.
|
||||
|
||||
[todo list]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
|
||||
[0]: http://www.vim.org/maillist.php#vim-dev
|
||||
[1]: https://github.com/vim/vim/blob/master/src/po/README.txt
|
||||
[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
|
||||
[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
|
||||
[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
|
||||
[5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi
|
||||
[6]: https://github.com/vim/vim/discussions/13087
|
||||
[7]: https://github.com/vim/vim/blob/master/runtime/doc/develop.txt
|
||||
[8]: https://vi.stackexchange.com
|
||||
[9]: http://www.vim.org/maillist.php#vim-use
|
||||
[10]: https://github.com/vim/vim/discussions
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# source files for all source archives
|
||||
SRC_ALL = \
|
||||
.cirrus.yml \
|
||||
.coveralls.yml \
|
||||
.gitattributes \
|
||||
.github/CODEOWNERS \
|
||||
.github/ISSUE_TEMPLATE/bug_report.yml \
|
||||
@@ -17,8 +18,10 @@ SRC_ALL = \
|
||||
.appveyor.yml \
|
||||
.codecov.yml \
|
||||
ci/appveyor.bat \
|
||||
ci/build-snd-dummy.sh \
|
||||
ci/config.mk*.sed \
|
||||
ci/if_ver*.vim \
|
||||
ci/load-snd-dummy.sh \
|
||||
ci/setup-xvfb.sh \
|
||||
src/Make_all.mak \
|
||||
src/README.md \
|
||||
@@ -212,12 +215,10 @@ SRC_ALL = \
|
||||
src/testdir/dumps/*.dump \
|
||||
src/testdir/dumps/*.vim \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/*.vim \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/popupbounce.vim \
|
||||
src/testdir/crash/* \
|
||||
src/proto.h \
|
||||
src/protodef.h \
|
||||
src/proto/alloc.pro \
|
||||
@@ -698,7 +699,6 @@ RT_ALL = \
|
||||
runtime/doc/*.pl \
|
||||
runtime/doc/*.txt \
|
||||
runtime/doc/Makefile \
|
||||
runtime/doc/Make_all.mak \
|
||||
runtime/doc/doctags.c \
|
||||
runtime/doc/doctags.vim \
|
||||
runtime/doc/test_urls.vim \
|
||||
@@ -710,7 +710,6 @@ RT_ALL = \
|
||||
runtime/ftoff.vim \
|
||||
runtime/gvimrc_example.vim \
|
||||
runtime/import/dist/vimhelp.vim \
|
||||
runtime/import/dist/vimhighlight.vim \
|
||||
runtime/macros/README.txt \
|
||||
runtime/macros/editexisting.vim \
|
||||
runtime/macros/hanoi/click.me \
|
||||
@@ -757,17 +756,6 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/dvorak/dvorak/enable.vim \
|
||||
runtime/pack/dist/opt/dvorak/dvorak/disable.vim \
|
||||
runtime/pack/dist/opt/editexisting/plugin/editexisting.vim \
|
||||
runtime/pack/dist/opt/editorconfig/.editorconfig \
|
||||
runtime/pack/dist/opt/editorconfig/CONTRIBUTORS \
|
||||
runtime/pack/dist/opt/editorconfig/LICENSE* \
|
||||
runtime/pack/dist/opt/editorconfig/mkzip.sh \
|
||||
runtime/pack/dist/opt/editorconfig/README.md \
|
||||
runtime/pack/dist/opt/editorconfig/autoload/*.vim \
|
||||
runtime/pack/dist/opt/editorconfig/autoload/editorconfig_core/*.vim \
|
||||
runtime/pack/dist/opt/editorconfig/doc/tags \
|
||||
runtime/pack/dist/opt/editorconfig/doc/editorconfig.txt \
|
||||
runtime/pack/dist/opt/editorconfig/ftdetect/editorconfig.vim \
|
||||
runtime/pack/dist/opt/editorconfig/plugin/editorconfig.vim \
|
||||
runtime/pack/dist/opt/justify/plugin/justify.vim \
|
||||
runtime/pack/dist/opt/matchit/plugin/matchit.vim \
|
||||
runtime/pack/dist/opt/matchit/doc/matchit.txt \
|
||||
@@ -793,9 +781,7 @@ RT_SCRIPTS = \
|
||||
runtime/makemenu.vim \
|
||||
runtime/autoload/*.vim \
|
||||
runtime/autoload/README.txt \
|
||||
runtime/autoload/cargo/*.vim \
|
||||
runtime/autoload/dist/*.vim \
|
||||
runtime/autoload/rust/*.vim \
|
||||
runtime/autoload/xml/*.vim \
|
||||
runtime/autoload/zig/*.vim \
|
||||
runtime/colors/*.vim \
|
||||
@@ -820,11 +806,6 @@ RT_SCRIPTS = \
|
||||
runtime/syntax/README.txt \
|
||||
runtime/syntax/shared/*.vim \
|
||||
runtime/syntax/shared/README.txt \
|
||||
runtime/syntax/Makefile \
|
||||
runtime/syntax/testdir/README.txt \
|
||||
runtime/syntax/testdir/runtest.vim \
|
||||
runtime/syntax/testdir/input/*.* \
|
||||
runtime/syntax/testdir/dumps/*.dump \
|
||||
|
||||
# Unix runtime
|
||||
RT_UNIX = \
|
||||
@@ -860,9 +841,6 @@ RT_AMI_DOS = \
|
||||
# DOS runtime (also in the extra archive)
|
||||
RT_DOS = \
|
||||
README_dos.txt \
|
||||
runtime/doc/Make_mvc.mak \
|
||||
runtime/tutor/Make_mvc.mak \
|
||||
runtime/lang/Make_mvc.mak \
|
||||
vimtutor.bat \
|
||||
|
||||
# DOS runtime without CR-LF translation (also in the extra archive)
|
||||
@@ -969,7 +947,6 @@ IN_README_DIR = \
|
||||
README_bindos.txt \
|
||||
README_dos.txt \
|
||||
README_extra.txt \
|
||||
README_haiku.txt \
|
||||
README_mac.txt \
|
||||
README_ole.txt \
|
||||
README_os2.txt \
|
||||
@@ -1006,13 +983,11 @@ LANG_GEN = \
|
||||
runtime/doc/*-tr.UTF-8.1 \
|
||||
runtime/lang/README.txt \
|
||||
runtime/lang/Makefile \
|
||||
runtime/lang/Make_all.mak \
|
||||
runtime/lang/menu_*.vim \
|
||||
runtime/keymap/README.txt \
|
||||
runtime/keymap/*.vim \
|
||||
runtime/tutor/README.*.txt \
|
||||
runtime/tutor/Makefile \
|
||||
runtime/tutor/Make_all.mak \
|
||||
runtime/tutor/tutor.utf-8 \
|
||||
runtime/tutor/tutor.?? \
|
||||
runtime/tutor/tutor.??.utf-8 \
|
||||
@@ -1067,24 +1042,10 @@ LANG_SRC = \
|
||||
src/po/vim.desktop.in \
|
||||
src/po/gvim.desktop.in \
|
||||
src/po/sjiscorr.c \
|
||||
src/po/big5corr.c \
|
||||
src/po/*.po \
|
||||
|
||||
# the language files for the Win32 lang archive
|
||||
LANG_DOS = \
|
||||
src/po/*.mo \
|
||||
|
||||
# Files in the repository that are deliberately not listed above, and will thus
|
||||
# be excluded from distribution tarballs and the like.
|
||||
# This excludes them from the CI check for unlisted files.
|
||||
IGNORE = \
|
||||
.appveyor.yml \
|
||||
.github/FUNDING.yml \
|
||||
.github/labeler.yml \
|
||||
.github/workflows/label.yml \
|
||||
SECURITY.md \
|
||||
ci/unlisted.make \
|
||||
src/libvterm/CODE-MAP \
|
||||
runtime/syntax/testdir/input/html_html \
|
||||
|
||||
# vim: set ft=make:
|
||||
|
||||
@@ -21,8 +21,8 @@ II) It is allowed to distribute a modified (or extended) version of Vim,
|
||||
maintainer will do with your changes and under what license they
|
||||
will be distributed is negotiable. If there has been no negotiation
|
||||
then this license, or a later version, also applies to your changes.
|
||||
The current maintainers are listed here: https://github.com/orgs/vim/people.
|
||||
If this changes it will be announced in appropriate places (most likely
|
||||
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
|
||||
changes it will be announced in appropriate places (most likely
|
||||
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
|
||||
impossible to contact the maintainer, the obligation to send him
|
||||
your changes ceases. Once the maintainer has confirmed that he has
|
||||
|
||||
@@ -39,15 +39,14 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
||||
@echo "Starting make in the src directory."
|
||||
@echo "If there are problems, cd to the src directory and run make there"
|
||||
cd src && $(MAKE) $@
|
||||
@# When the target is "test" also run the indent and syntax tests.
|
||||
@if test "$@" = "test" -o "$@" = "testtiny"; then \
|
||||
@# When the target is "test" also run the indent tests.
|
||||
@if test "$@" = "test"; then \
|
||||
$(MAKE) indenttest; \
|
||||
$(MAKE) syntaxtest; \
|
||||
fi
|
||||
@# When the target is "clean" also clean for the indent and syntax tests.
|
||||
@# When the target is "clean" also clean for the indent tests.
|
||||
@if test "$@" = "clean" -o "$@" = "distclean" -o "$@" = "testclean"; then \
|
||||
(cd runtime/indent && $(MAKE) clean); \
|
||||
(cd runtime/syntax && $(MAKE) clean); \
|
||||
cd runtime/indent && \
|
||||
$(MAKE) clean; \
|
||||
fi
|
||||
|
||||
# Executable used for running the indent tests.
|
||||
@@ -58,14 +57,6 @@ indenttest:
|
||||
$(MAKE) clean && \
|
||||
$(MAKE) test VIM="$(VIM_FOR_INDENTTEST)"
|
||||
|
||||
# Executable used for running the syntax tests.
|
||||
VIM_FOR_SYNTAXTEST = ../../src/vim
|
||||
|
||||
syntaxtest:
|
||||
cd runtime/syntax && \
|
||||
$(MAKE) clean && \
|
||||
$(MAKE) test VIMPROG="$(VIM_FOR_SYNTAXTEST)"
|
||||
|
||||
|
||||
#########################################################################
|
||||
# 2. Creating the various distribution files.
|
||||
@@ -94,7 +85,7 @@ syntaxtest:
|
||||
# Before creating an archive first delete all backup files, *.orig, etc.
|
||||
|
||||
MAJOR = 9
|
||||
MINOR = 1
|
||||
MINOR = 0
|
||||
|
||||
# CHECKLIST for creating a new version:
|
||||
#
|
||||
|
||||
@@ -7,7 +7,7 @@ Vim - the text editor - for macOS
|
||||
|
||||
- Vim README: [README_vim.md](README_vim.md)
|
||||
|
||||
- [](https://github.com/macvim-dev/macvim/actions/workflows/ci-macvim.yaml)
|
||||
- [](https://github.com/macvim-dev/macvim/actions?query=workflow%3A%22MacVim+GitHub+CI%22)
|
||||
|
||||
- Packaged in [](https://repology.org/metapackage/macvim/versions) [](https://repology.org/metapackage/macvim/versions)
|
||||
|
||||
|
||||
+5
-7
@@ -1,4 +1,4 @@
|
||||
README.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
|
||||
WHAT IS VIM?
|
||||
@@ -122,14 +122,12 @@ If you still have problems or any other questions, use one of the mailing
|
||||
lists to discuss them with Vim users and developers:
|
||||
https://www.vim.org/maillist.php
|
||||
|
||||
If nothing else works, report bugs directly to the vim-dev mailing list:
|
||||
<vim-dev@vim.org>
|
||||
If nothing else works, report bugs directly:
|
||||
Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
|
||||
MAIN AUTHOR
|
||||
|
||||
Most of Vim was created by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|
|
||||
Send any other comments, patches, flowers and suggestions to:
|
||||
|
||||
Send any other comments, patches, flowers and suggestions to the vim-dev mailing list:
|
||||
|
||||
<vim-dev@vim.org>
|
||||
Bram Moolenaar E-mail: Bram@vim.org
|
||||
|
||||
+41
-40
@@ -1,21 +1,17 @@
|
||||
# [](https://www.vim.org)
|
||||
[](https://www.vim.org)
|
||||
|
||||
[](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22)
|
||||
[](https://ci.appveyor.com/project/chrisbra/vim)
|
||||
[](https://cirrus-ci.com/github/vim/vim)
|
||||
[](https://codecov.io/gh/vim/vim?branch=master)
|
||||
[](https://scan.coverity.com/projects/vim)
|
||||
[](https://buildd.debian.org/vim)
|
||||
[](https://repology.org/metapackage/vim)
|
||||
[](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
|
||||
[](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) [](https://ci.appveyor.com/project/chrisbra/vim) [](https://cirrus-ci.com/github/vim/vim) [](https://codecov.io/gh/vim/vim?branch=master) [](https://scan.coverity.com/projects/vim) [](https://buildd.debian.org/vim) [](https://repology.org/metapackage/vim) [](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html)
|
||||
|
||||
<sub>For translations of this README see the end.</sub>
|
||||
|
||||
If you find a bug or want to discuss the best way to add a new feature, please
|
||||
[open an issue](https://github.com/vim/vim/issues/new/choose).
|
||||
open an [issue](https://github.com/vim/vim/issues).
|
||||
If you have a question or want to discuss the best way to do something with
|
||||
Vim, you can use [StackExchange](https://vi.stackexchange.com/)
|
||||
or one of the [Maillists](https://www.vim.org/community.php).
|
||||
|
||||
## What is Vim?
|
||||
|
||||
## What is Vim? ##
|
||||
|
||||
Vim is a greatly improved version of the good old UNIX editor
|
||||
[Vi](https://en.wikipedia.org/wiki/Vi). Many new
|
||||
@@ -39,7 +35,7 @@ Amiga DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
|
||||
For Vim9 script see [README_VIM9](README_VIM9.md).
|
||||
|
||||
## Distribution
|
||||
## Distribution ##
|
||||
|
||||
You can often use your favorite package manager to install Vim. On Mac and
|
||||
Linux a small version of Vim is pre-installed, you still need to install Vim
|
||||
@@ -59,45 +55,48 @@ Some popular places to get the latest Vim:
|
||||
* Get a Windows executable from the
|
||||
[vim-win32-installer](https://github.com/vim/vim-win32-installer/releases) repository.
|
||||
|
||||
## Compiling
|
||||
|
||||
|
||||
## Compiling ##
|
||||
|
||||
If you obtained a binary distribution you don't need to compile Vim. If you
|
||||
obtained a source distribution, all the stuff for compiling Vim is in the
|
||||
[`src`](./src/) directory. See [`src/INSTALL`](./src/INSTALL) for instructions.
|
||||
[`src`](/src) directory. See [`src/INSTALL`](src/INSTALL) for instructions.
|
||||
|
||||
## Installation
|
||||
|
||||
## Installation ##
|
||||
|
||||
See one of these files for system-specific instructions. Either in the
|
||||
[READMEdir directory](./READMEdir/) (in the repository) or
|
||||
the top directory (if you unpack an archive):
|
||||
|
||||
```
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_haiku.txt Haiku
|
||||
README_vms.txt VMS
|
||||
```
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_haiku.txt Haiku
|
||||
README_vms.txt VMS
|
||||
|
||||
There are other `README_*.txt` files, depending on the distribution you used.
|
||||
|
||||
## Documentation
|
||||
|
||||
## Documentation ##
|
||||
|
||||
The Vim tutor is a one hour training course for beginners. Often it can be
|
||||
started as `vimtutor`. See `:help tutor` for more information.
|
||||
|
||||
The best is to use `:help` in Vim. If you don't have an executable yet, read
|
||||
[`runtime/doc/help.txt`](./runtime/doc/help.txt).
|
||||
[`runtime/doc/help.txt`](/runtime/doc/help.txt).
|
||||
It contains pointers to the other documentation files.
|
||||
The User Manual reads like a book and is recommended to learn to use
|
||||
Vim. See `:help user-manual`.
|
||||
|
||||
## Copying
|
||||
|
||||
## Copying ##
|
||||
|
||||
Vim is Charityware. You can use and copy it as much as you like, but you are
|
||||
encouraged to make a donation to help orphans in Uganda. Please read the file
|
||||
[`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt)
|
||||
[`runtime/doc/uganda.txt`](runtime/doc/uganda.txt)
|
||||
for details (do `:help uganda` inside Vim).
|
||||
|
||||
Summary of the license: There are no restrictions on using or distributing an
|
||||
@@ -106,25 +105,28 @@ text must always be included. For modified versions, a few restrictions apply.
|
||||
The license is GPL compatible, you may compile Vim with GPL libraries and
|
||||
distribute it.
|
||||
|
||||
## Sponsoring
|
||||
|
||||
## Sponsoring ##
|
||||
|
||||
Fixing bugs and adding new features takes a lot of time and effort. To show
|
||||
your appreciation for the work and motivate Bram and others to continue
|
||||
working on Vim please send a donation.
|
||||
|
||||
Since Bram is back to a paid job the money will now be used to help children
|
||||
in Uganda. See [`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt). But
|
||||
in Uganda. See [`runtime/doc/uganda.txt`](runtime/doc/uganda.txt). But
|
||||
at the same time donations increase Bram's motivation to keep working on Vim!
|
||||
|
||||
For the most recent information about sponsoring look on the Vim web site:
|
||||
https://www.vim.org/sponsor/
|
||||
|
||||
## Contributing
|
||||
|
||||
## Contributing ##
|
||||
|
||||
If you would like to help make Vim better, see the
|
||||
[CONTRIBUTING.md](./CONTRIBUTING.md) file.
|
||||
[CONTRIBUTING.md](/CONTRIBUTING.md) file.
|
||||
|
||||
## Information
|
||||
|
||||
## Information ##
|
||||
|
||||
If you are on macOS, you can use [Macvim](https://macvim-dev.github.io/macvim/).
|
||||
|
||||
@@ -139,15 +141,14 @@ If you still have problems or any other questions, use one of the mailing
|
||||
lists to discuss them with Vim users and developers:
|
||||
https://www.vim.org/maillist.php
|
||||
|
||||
If nothing else works, report bugs directly to the vim-dev mailing list:
|
||||
`<vim-dev@vim.org>`
|
||||
If nothing else works, report bugs directly:
|
||||
Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
## Main author
|
||||
|
||||
Most of Vim was created by Bram Moolenaar `<Bram@vim.org>`
|
||||
[Bram-Moolenaar](https://vimhelp.org/version9.txt.html#Bram-Moolenaar)
|
||||
## Main author ##
|
||||
|
||||
Send any other comments, patches, flowers and suggestions to the vim-dev mailing list:
|
||||
`<vim-dev@vim.org>`
|
||||
Send any other comments, patches, flowers and suggestions to:
|
||||
Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
This is `README.md` for version 9.1 of Vim: Vi IMproved.
|
||||
|
||||
This is `README.md` for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
+5
-5
@@ -9,15 +9,15 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
|
||||
messages, shows current file name in window title, on-line
|
||||
help, rectangular cut/paste, etc., etc., etc...
|
||||
|
||||
Version 9.1. Also runs under UNIX, MS-Windows, Mac, etc.
|
||||
vim91rt.tgz contains the documentation and syntax files.
|
||||
vim91bin.tgz contains the binaries.
|
||||
vim91src.tgz contains the sources.
|
||||
Version 9.0. Also runs under UNIX, MS-Windows, Mac, etc.
|
||||
vim90rt.tgz contains the documentation and syntax files.
|
||||
vim90bin.tgz contains the binaries.
|
||||
vim90src.tgz contains the sources.
|
||||
Author: Bram Moolenaar et al.
|
||||
|
||||
|
||||
Xxd Hex dumper and reader. Can be used to view files as hex, edit
|
||||
them and write them back. Can also be used to patch files.
|
||||
|
||||
Version 2023 Oct 25
|
||||
Version 2022 Jan 14
|
||||
Author: Juergen Weigert
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_ami.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_ami.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Amiga systems.
|
||||
See README.txt for general information about Vim.
|
||||
@@ -16,8 +16,8 @@ easily upgrade to a new version. For example:
|
||||
You would then unpack the archives like this:
|
||||
|
||||
cd dh0:editors
|
||||
tar xf t:vim91bin.tar
|
||||
tar xf t:vim91rt.tar
|
||||
tar xf t:vim90bin.tar
|
||||
tar xf t:vim90rt.tar
|
||||
|
||||
Set the $VIM environment variable to point to the top directory of your Vim
|
||||
files. For the above example:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_amibin.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_amibin.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_ami.txt" for installation instructions for the Amiga.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_amisrc.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_amisrc.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_ami.txt" for installation instructions for the Amiga.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_bindos.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_bindos.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||
@@ -8,9 +8,9 @@ These files are in the runtime archive (vim90rt.zip).
|
||||
There are several binary distributions of Vim for the PC. You would normally
|
||||
pick only one of them, but it's also possible to install several.
|
||||
These ones are available (the version number may differ):
|
||||
vim91w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim91.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim91ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
vim90w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim90.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim90ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
|
||||
You MUST also get the runtime archive (vim91rt.zip).
|
||||
The sources are also available (vim91src.zip).
|
||||
You MUST also get the runtime archive (vim90rt.zip).
|
||||
The sources are also available (vim90src.zip).
|
||||
|
||||
+18
-18
@@ -1,4 +1,4 @@
|
||||
README_dos.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_dos.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on MS-Windows systems.
|
||||
See "README.txt" for general information about Vim.
|
||||
@@ -41,19 +41,19 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
located. Check the $VIM setting to see where it points to:
|
||||
set VIM
|
||||
For example, if you have
|
||||
C:\vim\vim91
|
||||
C:\vim\vim90
|
||||
do
|
||||
cd C:\
|
||||
Binary and runtime Vim archives are normally unpacked in the same location,
|
||||
on top of each other.
|
||||
|
||||
2. Unpack the zip archives. This will create a new directory "vim\vim91",
|
||||
2. Unpack the zip archives. This will create a new directory "vim\vim90",
|
||||
in which all the distributed Vim files are placed. Since the directory
|
||||
name includes the version number, it is unlikely that you overwrite
|
||||
existing files.
|
||||
Examples:
|
||||
pkunzip -d gvim91.zip
|
||||
unzip vim91w32.zip
|
||||
pkunzip -d gvim90.zip
|
||||
unzip vim90w32.zip
|
||||
|
||||
You need to unpack the runtime archive and at least one of the binary
|
||||
archives. When using more than one binary version, be careful not to
|
||||
@@ -65,7 +65,7 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
won't move or copy the runtime files.
|
||||
|
||||
3. Change to the new directory:
|
||||
cd vim\vim91
|
||||
cd vim\vim90
|
||||
Run the "install.exe" program. It will ask you a number of questions about
|
||||
how you would like to have your Vim setup. Among these are:
|
||||
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||
@@ -76,8 +76,8 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
console or in a shell. You can select one of the directories in your
|
||||
$PATH. If you skip this, you can add Vim to the search path manually:
|
||||
The simplest is to add a line to your autoexec.bat. Examples:
|
||||
set path=%path%;C:\vim\vim91
|
||||
set path=%path%;D:\editors\vim\vim91
|
||||
set path=%path%;C:\vim\vim90
|
||||
set path=%path%;D:\editors\vim\vim90
|
||||
- Create entries for Vim on the desktop and in the Start menu.
|
||||
|
||||
That's it!
|
||||
@@ -89,8 +89,8 @@ Remarks:
|
||||
won't show a menubar. Then you need to set the $VIM environment variable to
|
||||
point to the top directory of your Vim files. Example:
|
||||
set VIM=C:\editors\vim
|
||||
Vim version 9.1 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim91. See ":help $VIM" for more information.
|
||||
Vim version 9.0 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim90. See ":help $VIM" for more information.
|
||||
|
||||
- To avoid confusion between distributed files of different versions and your
|
||||
own modified vim scripts, it is recommended to use this directory layout:
|
||||
@@ -101,14 +101,14 @@ Remarks:
|
||||
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
||||
C:\vim\... Other files you made.
|
||||
Distributed files:
|
||||
C:\vim\vim91\vim.exe The Vim version 9.1 executable.
|
||||
C:\vim\vim91\doc\*.txt The version 9.1 documentation files.
|
||||
C:\vim\vim91\bugreport.vim A Vim version 9.1 script.
|
||||
C:\vim\vim91\... Other version 9.1 distributed files.
|
||||
C:\vim\vim90\vim.exe The Vim version 9.0 executable.
|
||||
C:\vim\vim90\doc\*.txt The version 9.0 documentation files.
|
||||
C:\vim\vim90\bugreport.vim A Vim version 9.0 script.
|
||||
C:\vim\vim90\... Other version 9.0 distributed files.
|
||||
In this case the $VIM environment variable would be set like this:
|
||||
set VIM=C:\vim
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim91". Don't add
|
||||
"vim91" to $VIM, that won't work.
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim90". Don't add
|
||||
"vim90" to $VIM, that won't work.
|
||||
|
||||
- You can put your Vim executable anywhere else. If the executable is not
|
||||
with the other Vim files, you should set $VIM. The simplest is to add a line
|
||||
@@ -132,8 +132,8 @@ Remarks:
|
||||
Select Properties.
|
||||
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
||||
Vim executable. Examples:
|
||||
C:\command.com /c C:\vim\vim91\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim91\vim.exe
|
||||
C:\command.com /c C:\vim\vim90\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim90\vim.exe
|
||||
6. Select the font, window size, etc. that you like. If this isn't
|
||||
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
|
||||
mode".
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_extra.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_extra.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
These extra files of Vim are for special purposes. This README explains what
|
||||
the files are for. For general information about Vim, see the "README.txt"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_haiku.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_haiku.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Haiku operating system.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_mac.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_mac.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
How to install MacVim?
|
||||
========================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_ole.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_ole.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This archive contains gvim.exe with OLE interface.
|
||||
This version of gvim.exe can also load a number of interface dynamically (you
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_os2.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_os2.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This file used to explain the installation of Vim on OS/2 systems.
|
||||
However, support for OS/2 has been removed in patch 7.4.1008.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_os390.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_os390.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This readme explains how to build Vim on z/OS. Formerly called OS/390.
|
||||
See "README.txt" for general information about Vim.
|
||||
@@ -46,7 +46,7 @@ Change to the vim directory and do:
|
||||
|
||||
$ export CC=cc
|
||||
$ export _CC_CCMODE=1
|
||||
$./configure --with-features=normal --without-x --enable-gui=no
|
||||
$./configure --with-features=big --without-x --enable-gui=no
|
||||
$ cd src
|
||||
$ make
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
README_src.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_src.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
The source archive contains the files needed to compile Vim on Unix systems.
|
||||
It is packed for Unix systems (NL line separator).
|
||||
|
||||
For more information, see the README.txt file that comes with the runtime
|
||||
archive (vim-9.1-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive (vim-9.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive too!
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_srcdos.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_srcdos.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_dos.txt" for installation instructions for MS-Windows.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_unix.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_unix.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Unix systems.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_vms.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_vms.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on VMS systems.
|
||||
See "README.txt" in the runtime archive for information about Vim.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README_w32s.txt for version 9.1 of Vim: Vi IMproved.
|
||||
README_w32s.txt for version 9.0 of Vim: Vi IMproved.
|
||||
|
||||
This file used to explain the installation of Vim on MS-Windows 3.1 and 3.11
|
||||
systems. However, support for MS-Windows 3.1 and 3.11 has been removed in
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
If you want to report a security issue, please privately disclose the issue to the vim-security mailing list
|
||||
vim-security@googlegroups.com
|
||||
|
||||
This is a private list, read only by the maintainers, but anybody can post, after moderation.
|
||||
|
||||
**Please don't publicly disclose the issue until it has been addressed by us.**
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
LINUX_VERSION=$(uname -r | cut -d. -f1-2)
|
||||
LINUX_ARCHIVE_FILE=v${LINUX_VERSION}.tar.gz
|
||||
LINUX_SOURCE_DIR=linux-${LINUX_VERSION}
|
||||
|
||||
mkdir -p "${TMPDIR}"
|
||||
cd "${TMPDIR}"
|
||||
|
||||
wget -q "https://github.com/torvalds/linux/archive/${LINUX_ARCHIVE_FILE}"
|
||||
|
||||
tar -xf "${LINUX_ARCHIVE_FILE}" "${LINUX_SOURCE_DIR}/sound"
|
||||
cd "${LINUX_SOURCE_DIR}/sound"
|
||||
|
||||
CC=gcc make -C "/lib/modules/$(uname -r)/build" M="${PWD}" CONFIG_SOUND=m CONFIG_SND=m CONFIG_SND_PCM=m CONFIG_SND_DUMMY=m modules
|
||||
|
||||
mkdir -p "${SND_DUMMY_DIR}"
|
||||
cp soundcore.ko core/snd.ko core/snd-pcm.ko drivers/snd-dummy.ko "${SND_DUMMY_DIR}"
|
||||
@@ -1,3 +1,3 @@
|
||||
# Clang 12 (or Apple clang 13) and later makes a warning '-Wcompound-token-split-by-macro' enable by default.
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro -Wno-compound-token-split-by-macro/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# Add link-time optimization for even better performance
|
||||
/^CFLAGS[[:blank:]]*=/s/-O2/-O3 -flto/
|
||||
/^LDFLAGS[[:blank:]]*=/s/$/ -flto/
|
||||
+3
-3
@@ -1,3 +1,3 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Werror -Wno-deprecated-declarations/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function -Wno-shadow/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter -Wno-strict-prototypes/
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
|
||||
/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function/
|
||||
/^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter/
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/^XCODEFLAGS[[:blank:]]*=/s/$/ GCC_TREAT_WARNINGS_AS_ERRORS="YES" GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS="NO"/
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if ! modprobe snd-dummy; then
|
||||
# snd-dummy is contained in linux-modules-extra (if exists)
|
||||
apt-get install -yq --no-install-suggests --no-install-recommends "linux-modules-extra-$(uname -r)"
|
||||
modprobe snd-dummy
|
||||
fi
|
||||
@@ -1,49 +0,0 @@
|
||||
# vim: ft=make
|
||||
SHELL = /bin/bash
|
||||
|
||||
# List all files that are tracked in git but not listed in Filelist.
|
||||
# Exit code is 2 ("Make encountered an error") if any such files exist.
|
||||
|
||||
# Filelist is a Makefile that defines many variables, so we use Make itself to
|
||||
# query which variables it defines, then expand them all by wrapping each name
|
||||
# in $(...), importing Filelist and using $(eval).
|
||||
|
||||
include Filelist
|
||||
$(eval all_patterns := $(shell \
|
||||
make -f Filelist --question --print-data-base --no-builtin-rules \
|
||||
--no-builtin-variables 2>/dev/null \
|
||||
| sed -nre \
|
||||
'/^# makefile .from \x27Filelist\x27,/ { \
|
||||
n; \
|
||||
s/ = .*//; \
|
||||
T; \
|
||||
s/.*/$$(\0)/; \
|
||||
p; \
|
||||
}'))
|
||||
|
||||
# In Makefile's `prepeare` target, all the IN_README_DIR files are moved from
|
||||
# READMEdir to the root, so add those files in their Git-tracked location:
|
||||
all_patterns := $(all_patterns) \
|
||||
$(foreach readme, $(IN_README_DIR), READMEdir/$(readme))
|
||||
|
||||
# The result 'all_patterns' is a list of patterns (globs), which we expand with
|
||||
# wildcard to get actual filenames. Note this means Filelist can list a file
|
||||
# that does not exist, and it will be omitted at this step.
|
||||
listed_files := $(wildcard $(all_patterns))
|
||||
|
||||
# Default target to actually run the comparison:
|
||||
.PHONY: check
|
||||
check:
|
||||
@# There are too many files to list on the command line, so we write
|
||||
@# that to a temporary file, one per line.
|
||||
$(file > Filelist-listed-files)
|
||||
$(foreach filename, $(listed_files),\
|
||||
$(file >> Filelist-listed-files,$(filename)))
|
||||
@# Compare the sorted lists. Delete that temporary file on both
|
||||
@# success and failure, but exit with diff's exit code.
|
||||
diff -u0 --label files-in-git <(git ls-files | sort) \
|
||||
--label Filelist <(sort --unique Filelist-listed-files); \
|
||||
RV=$$?; \
|
||||
rm Filelist-listed-files; \
|
||||
(($$RV != 0)) && echo "Add files to the right variable in Filelist."; \
|
||||
exit $$RV
|
||||
+10
-33
@@ -228,28 +228,6 @@ FunctionEnd
|
||||
!insertmacro GetParent ""
|
||||
!insertmacro GetParent "un."
|
||||
|
||||
# Get home directory
|
||||
!macro GetHomeDir un
|
||||
Function ${un}GetHomeDir
|
||||
Push $0
|
||||
Push $1
|
||||
ReadEnvStr $0 "HOME"
|
||||
${If} $0 == ""
|
||||
ReadEnvStr $0 "HOMEDRIVE"
|
||||
ReadEnvStr $1 "HOMEPATH"
|
||||
StrCpy $0 "$0$1"
|
||||
${If} $0 == ""
|
||||
ReadEnvStr $0 "USERPROFILE"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
Pop $1
|
||||
Exch $0 # put $0 on top of stack, restore $0 to original value
|
||||
FunctionEnd
|
||||
!macroend
|
||||
|
||||
!insertmacro GetHomeDir ""
|
||||
!insertmacro GetHomeDir "un."
|
||||
|
||||
# Check if Vim is already installed.
|
||||
# return: Installed directory. If not found, it will be empty.
|
||||
Function CheckOldVim
|
||||
@@ -542,8 +520,7 @@ SectionGroup $(str_group_plugin) id_group_plugin
|
||||
Section "$(str_section_plugin_home)" id_section_pluginhome
|
||||
SectionIn 1 3
|
||||
|
||||
# use ShellExecAsUser below instead
|
||||
# StrCpy $1 "$1 -create-directories home"
|
||||
StrCpy $1 "$1 -create-directories home"
|
||||
SectionEnd
|
||||
|
||||
Section "$(str_section_plugin_vim)" id_section_pluginvim
|
||||
@@ -617,13 +594,6 @@ Section -call_install_exe
|
||||
DetailPrint "$(str_msg_registering)"
|
||||
nsExec::Exec "$0\install.exe $1"
|
||||
Pop $3
|
||||
|
||||
${If} ${SectionIsSelected} ${id_section_pluginhome}
|
||||
ReadEnvStr $3 "COMSPEC"
|
||||
Call GetHomeDir
|
||||
Pop $4
|
||||
ShellExecAsUser::ShellExecAsUser "" "$3" '/c "cd /d "$4" & mkdir vimfiles & cd vimfiles & mkdir colors compiler doc ftdetect ftplugin indent keymap plugin syntax"' SW_HIDE
|
||||
${EndIf}
|
||||
SectionEnd
|
||||
|
||||
##########################################################
|
||||
@@ -1072,8 +1042,15 @@ SectionEnd
|
||||
SectionGroup "un.$(str_ungroup_plugin)" id_ungroup_plugin
|
||||
Section /o "un.$(str_unsection_plugin_home)" id_unsection_plugin_home
|
||||
# get the home dir
|
||||
Call un.GetHomeDir
|
||||
Pop $0
|
||||
ReadEnvStr $0 "HOME"
|
||||
${If} $0 == ""
|
||||
ReadEnvStr $0 "HOMEDRIVE"
|
||||
ReadEnvStr $1 "HOMEPATH"
|
||||
StrCpy $0 "$0$1"
|
||||
${If} $0 == ""
|
||||
ReadEnvStr $0 "USERPROFILE"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
|
||||
${If} $0 != ""
|
||||
!insertmacro RemoveVimfiles $0
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
!ifndef __GVIM_VER__NSH__
|
||||
!define __GVIM_VER__NSH__
|
||||
!define VER_MAJOR 9
|
||||
!define VER_MINOR 1
|
||||
!define VER_MINOR 0
|
||||
!endif
|
||||
|
||||
+89
-86
@@ -3,8 +3,9 @@
|
||||
# italian.nsi : Italian language strings for gvim NSIS installer.
|
||||
#
|
||||
# Locale ID : 1040
|
||||
# Locale Name : it
|
||||
# fileencoding : UTF-8
|
||||
# Author : Antonio Colombo, bovirus - revision: 12.05.2023
|
||||
# Author : Antonio Colombo
|
||||
|
||||
!insertmacro MUI_LANGUAGE "Italian"
|
||||
|
||||
@@ -21,10 +22,10 @@ LangString ^UninstallCaption ${LANG_ITALIAN} \
|
||||
##############################################################################
|
||||
|
||||
#LangString str_dest_folder ${LANG_ITALIAN} \
|
||||
# "Cartella installazione (il percorso deve finire con $\"vim$\")"
|
||||
# "Cartella d'installazione (il nome deve finire con $\"vim$\")"
|
||||
|
||||
LangString str_show_readme ${LANG_ITALIAN} \
|
||||
"Visualizza file README a fine installazione"
|
||||
"Visualizza README al termine dell'installazione"
|
||||
|
||||
# Install types:
|
||||
LangString str_type_typical ${LANG_ITALIAN} \
|
||||
@@ -42,119 +43,120 @@ LangString str_type_full ${LANG_ITALIAN} \
|
||||
##############################################################################
|
||||
|
||||
LangString str_section_old_ver ${LANG_ITALIAN} \
|
||||
"Disinstalla versioni esistenti"
|
||||
"Disinstalla versione/i esistente/i"
|
||||
LangString str_desc_old_ver ${LANG_ITALIAN} \
|
||||
"Disinstalla versioni esistenti di Vim."
|
||||
"Disinstalla versione/i esistente/i di Vim dal vostro sistema."
|
||||
|
||||
LangString str_section_exe ${LANG_ITALIAN} \
|
||||
"GUI e file supporto Vim"
|
||||
"Vim GUI e file di supporto"
|
||||
LangString str_desc_exe ${LANG_ITALIAN} \
|
||||
"GUI programmi e file di supporto Vim. Questa componente è indispensabile."
|
||||
"Vim GUI programmi e file di supporto. Questa componente è indispensabile."
|
||||
|
||||
LangString str_section_console ${LANG_ITALIAN} \
|
||||
"Console Vim (vim.exe per MS-DOS)"
|
||||
"Vim console (vim.exe per MS-DOS)"
|
||||
LangString str_desc_console ${LANG_ITALIAN} \
|
||||
"Versione console di Vim (vim.exe)."
|
||||
|
||||
LangString str_section_batch ${LANG_ITALIAN} \
|
||||
"Crea file .bat"
|
||||
LangString str_desc_batch ${LANG_ITALIAN} \
|
||||
"Crea file .bat per varianti di Vim nella cartella \
|
||||
"Crea file .bat per varianti di Vim nella directory \
|
||||
di Windows, per utilizzo da riga di comando."
|
||||
|
||||
LangString str_group_icons ${LANG_ITALIAN} \
|
||||
"Crea icone Vim"
|
||||
"Crea icone per Vim"
|
||||
LangString str_desc_icons ${LANG_ITALIAN} \
|
||||
"Crea icone Vim per rendere facile l'accesso."
|
||||
"Crea icone per Vim in vari posti, per rendere facile l'accesso."
|
||||
|
||||
LangString str_section_desktop ${LANG_ITALIAN} \
|
||||
"Icone sul Desktop"
|
||||
"Sul Desktop"
|
||||
LangString str_desc_desktop ${LANG_ITALIAN} \
|
||||
"Crea icone programma gVim sul desktop."
|
||||
"Crea icone per programma gVim sul desktop."
|
||||
|
||||
LangString str_section_start_menu ${LANG_ITALIAN} \
|
||||
"Gruppo programmi menù START"
|
||||
"Nella cartella del menù START"
|
||||
LangString str_desc_start_menu ${LANG_ITALIAN} \
|
||||
"Aggiunge gruppo programmi al menù START."
|
||||
"Aggiungi Vim alle cartelle del menù START."
|
||||
|
||||
#LangString str_section_quick_launch ${LANG_ITALIAN} \
|
||||
# "Barra avvio veloce"
|
||||
# "Nella barra di Avvio Veloce"
|
||||
#LangString str_desc_quick_launch ${LANG_ITALIAN} \
|
||||
# "Aggiunge un collegamento a Vim nella barra di avvio veloce."
|
||||
# "Aggiungi un puntatore a Vim nella barra di Avvio Veloce."
|
||||
|
||||
LangString str_section_edit_with ${LANG_ITALIAN} \
|
||||
"Aggiungi Vim al menù contestuale"
|
||||
"Aggiungi Vim al Menù Contestuale"
|
||||
LangString str_desc_edit_with ${LANG_ITALIAN} \
|
||||
"Aggiunge Vim al menu contestuale $\"Apri con...$\"."
|
||||
"Aggiungi Vim alla lista contestuale $\"Apri con...$\"."
|
||||
|
||||
#LangString str_section_edit_with32 ${LANG_ITALIAN} \
|
||||
# "Versione a 32 bit"
|
||||
# "Versione a 32-bit"
|
||||
#LangString str_desc_edit_with32 ${LANG_ITALIAN} \
|
||||
# "Aggiungi Vim al menu contestuale $\"Apri con...$\" \
|
||||
# per applicazioni a 32 bit."
|
||||
# "Aggiungi Vim alla lista contestuale $\"Apri con...$\" \
|
||||
# per applicazioni a 32-bit."
|
||||
|
||||
#LangString str_section_edit_with64 ${LANG_ITALIAN} \
|
||||
# "Versione a 64 bit"
|
||||
# "Versione a 64-bit"
|
||||
#LangString str_desc_edit_with64 ${LANG_ITALIAN} \
|
||||
# "Aggiunge Vim al menu contestuale $\"Apri con...$\" \
|
||||
# per applicazioni a 64 bit."
|
||||
# "Aggiungi Vim alla lista contestuale $\"Apri con...$\" \
|
||||
# per applicazioni a 64-bit."
|
||||
|
||||
LangString str_section_vim_rc ${LANG_ITALIAN} \
|
||||
"Crea configurazione predefinita"
|
||||
"Crea configurazione di default"
|
||||
LangString str_desc_vim_rc ${LANG_ITALIAN} \
|
||||
"Crea, se non ne esiste già uno, un file configurazione predefinito (_vimrc) ."
|
||||
"Crea un file configurazione di default (_vimrc) se non \
|
||||
ne esiste già uno."
|
||||
|
||||
LangString str_group_plugin ${LANG_ITALIAN} \
|
||||
"Crea cartella plugin"
|
||||
"Crea directory per plugin"
|
||||
LangString str_desc_plugin ${LANG_ITALIAN} \
|
||||
"Crea cartella plugin. I plugin consentono di aggiungere funzionalità \
|
||||
a Vim copiando i relativi file in una di queste cartelle."
|
||||
"Crea directory per plugin. Consentono di aggiungere funzionalità \
|
||||
a Vim mettendo file in una di queste directory."
|
||||
|
||||
LangString str_section_plugin_home ${LANG_ITALIAN} \
|
||||
"Privata"
|
||||
"Private"
|
||||
LangString str_desc_plugin_home ${LANG_ITALIAN} \
|
||||
"Crea cartella plugin nella cartella HOME."
|
||||
"Crea directory per plugin nella directory HOME."
|
||||
|
||||
LangString str_section_plugin_vim ${LANG_ITALIAN} \
|
||||
"Condivisa"
|
||||
"Condivise"
|
||||
LangString str_desc_plugin_vim ${LANG_ITALIAN} \
|
||||
"Crea cartella plugin nella cartella di installazione di Vim \
|
||||
"Crea directory per plugin nella directory di installazione di Vim \
|
||||
per uso da parte di tutti gli utenti di questo sistema."
|
||||
|
||||
LangString str_section_nls ${LANG_ITALIAN} \
|
||||
"Supporto nativo lingua (NLS)"
|
||||
"Supporto Multilingue (NLS)"
|
||||
LangString str_desc_nls ${LANG_ITALIAN} \
|
||||
"Installa i file per il supporto nativo multilingua."
|
||||
"Installa file per supportare messaggi in diverse lingue."
|
||||
|
||||
LangString str_unsection_register ${LANG_ITALIAN} \
|
||||
"Rimuovi Vim dal registro"
|
||||
"Togli Vim dal Registry"
|
||||
LangString str_desc_unregister ${LANG_ITALIAN} \
|
||||
"Rimuove Vim dal registro di configurazione sistema."
|
||||
"Togli Vim dal Registry di configurazione sistema."
|
||||
|
||||
LangString str_unsection_exe ${LANG_ITALIAN} \
|
||||
"Elimina programmi/file di supporto Vim"
|
||||
"Cancella programmi/file di supporto Vim"
|
||||
LangString str_desc_rm_exe ${LANG_ITALIAN} \
|
||||
"Elimina tutti i programmi/file di supporto di Vim."
|
||||
"Cancella tutti i programmi/file di supporto di Vim."
|
||||
|
||||
LangString str_ungroup_plugin ${LANG_ITALIAN} \
|
||||
"Elimina cartelle plugin"
|
||||
"Cancella le directory per plugin"
|
||||
LangString str_desc_rm_plugin ${LANG_ITALIAN} \
|
||||
"Elimina le cartelle plugin se sono vuote."
|
||||
"Cancella le directory per plugin se sono vuote."
|
||||
|
||||
LangString str_unsection_plugin_home ${LANG_ITALIAN} \
|
||||
"Private"
|
||||
LangString str_desc_rm_plugin_home ${LANG_ITALIAN} \
|
||||
"Elimina cartelle plugin nella cartella HOME."
|
||||
"Cancella le directory per plugin dalla directory HOME."
|
||||
|
||||
LangString str_unsection_plugin_vim ${LANG_ITALIAN} \
|
||||
"Condivise"
|
||||
LangString str_desc_rm_plugin_vim ${LANG_ITALIAN} \
|
||||
"Elimina cartelle plugin nella cartella di installazione di Vim."
|
||||
"Cancella le directory per plugin dalla directory di installazione di Vim."
|
||||
|
||||
LangString str_unsection_rootdir ${LANG_ITALIAN} \
|
||||
"Elimina la cartella di installazione di Vim"
|
||||
"Cancella la directory di installazione di Vim"
|
||||
LangString str_desc_rm_rootdir ${LANG_ITALIAN} \
|
||||
"Elimina la cartella di installazione di Vim. Contiene i file di configurazione!"
|
||||
"Cancella la directory di installazione di Vim. Contiene i vostri file di configurazione!"
|
||||
|
||||
|
||||
##############################################################################
|
||||
@@ -162,74 +164,75 @@ LangString str_desc_rm_rootdir ${LANG_ITALIAN} \
|
||||
##############################################################################
|
||||
|
||||
#LangString str_msg_too_many_ver ${LANG_ITALIAN} \
|
||||
# "Rilevate nel sistema $vim_old_ver_count versioni di Vim.$\r$\n\
|
||||
# "Trovate $vim_old_ver_count versioni di Vim sul vostro sistema.$\r$\n\
|
||||
# Questo programma di installazione può gestire solo \
|
||||
# ${VIM_MAX_OLD_VER} versioni.$\r$\n\
|
||||
# Disinstalla qualche versione precedente e ricomincia."
|
||||
# Disinstallate qualche versione precedente e ricominciate."
|
||||
|
||||
#LangString str_msg_invalid_root ${LANG_ITALIAN} \
|
||||
# "Nome cartella di installazione non valida: $vim_install_root!$\r$\n\
|
||||
# "Nome di directory di installazione non valida: $vim_install_root!$\r$\n\
|
||||
# Dovrebbe terminare con $\"vim$\"."
|
||||
|
||||
#LangString str_msg_bin_mismatch ${LANG_ITALIAN} \
|
||||
# "Conflitto nella cartella di installazione!$\r$\n$\r$\n\
|
||||
# La cartella di installazione dev'essere $\"$vim_bin_path$\",$\r$\n\
|
||||
# ma il sistema indica che il percorso è $\"$INSTDIR$\"."
|
||||
# "Conflitto nella directory di installazione!$\r$\n$\r$\n\
|
||||
# Cartella di installazione dev'essere $\"$vim_bin_path$\",$\r$\n\
|
||||
# ma il sistema segnala invece $\"$INSTDIR$\"."
|
||||
|
||||
#LangString str_msg_vim_running ${LANG_ITALIAN} \
|
||||
# "Vim è ancora in esecuzione nel sistema.$\r$\n\
|
||||
# Per continuare chiudi tutte le sessioni attive di Vim."
|
||||
# "Vim ancora in esecuzione sul vostro sistema.$\r$\n\
|
||||
# Chiudete tutte le sessioni attive di Vim per continuare."
|
||||
|
||||
#LangString str_msg_register_ole ${LANG_ITALIAN} \
|
||||
# "Tentativo di registrazione di Vim con OLE. \
|
||||
# Non ci sono messaggi che indicano se l'operazione è riuscita."
|
||||
# Non c'è messaggio che indica se è riuscito o no."
|
||||
|
||||
#LangString str_msg_unreg_ole ${LANG_ITALIAN} \
|
||||
# "Tentativo di rimozione di VIM dal registro via OLE. \
|
||||
# Non ci sono messaggi che indicano se l'operazione è riuscita."
|
||||
# "Tentativo di togliere dal Registry Vim con OLE. \
|
||||
# Non c'è messaggio che indica se è riuscito o no."
|
||||
|
||||
#LangString str_msg_rm_start ${LANG_ITALIAN} \
|
||||
# "Disinstallazione della versione:"
|
||||
# "Disinstallazione della seguente versione:"
|
||||
|
||||
#LangString str_msg_rm_fail ${LANG_ITALIAN} \
|
||||
# "Disinstallazione non riuscita per la versione:"
|
||||
# "Disinstallazione non riuscita per la seguente versione:"
|
||||
|
||||
#LangString str_msg_no_rm_key ${LANG_ITALIAN} \
|
||||
# "Impossibile trovare chiave disinstallazione nel registro."
|
||||
# "Non riesco a trovare chiave di disinstallazione nel Registry."
|
||||
|
||||
#LangString str_msg_no_rm_reg ${LANG_ITALIAN} \
|
||||
# "Impossibile trovare programma disinstallazione nel registro."
|
||||
# "Non riesco a trovare programma disinstallazione nel Registry."
|
||||
|
||||
#LangString str_msg_no_rm_exe ${LANG_ITALIAN} \
|
||||
# "Impossibile trovare programma disinstallazione."
|
||||
# "Non riesco a trovare programma disinstallazione."
|
||||
|
||||
#LangString str_msg_rm_copy_fail ${LANG_ITALIAN} \
|
||||
# "Impossibile copiare il programma disinstallazione in una cartella temporanea."
|
||||
# "Non riesco a copiare programma disinstallazione a una \
|
||||
# directory temporanea."
|
||||
|
||||
#LangString str_msg_rm_run_fail ${LANG_ITALIAN} \
|
||||
# "Impossibile eseguire programma disinstallazione."
|
||||
# "Non riesco a eseguire programma disinstallazione."
|
||||
|
||||
#LangString str_msg_abort_install ${LANG_ITALIAN} \
|
||||
# "Il programma di disinstallazione verrà chiuso senza aver eseguito nessuna modifica."
|
||||
# "Il programma di disinstallazione verrà chiuso senza aver fatto nulla."
|
||||
|
||||
LangString str_msg_install_fail ${LANG_ITALIAN} \
|
||||
"Installazione non riuscita."
|
||||
"Installazione non riuscita. Miglior fortuna alla prossima!"
|
||||
|
||||
LangString str_msg_rm_exe_fail ${LANG_ITALIAN} \
|
||||
"Alcuni file in $0 non sono stati eliminati!$\r$\n\
|
||||
I file vanno rimossi manualmente."
|
||||
"Alcuni file in $0 non sono stati cancellati!$\r$\n\
|
||||
Dovreste cancellarli voi stessi."
|
||||
|
||||
#LangString str_msg_rm_root_fail ${LANG_ITALIAN} \
|
||||
# "AVVISO: impossibile eliminare $\"$vim_install_root$\", non è vuota!"
|
||||
# "AVVISO: Non posso cancellare $\"$vim_install_root$\", non è vuota!"
|
||||
|
||||
LangString str_msg_uninstalling ${LANG_ITALIAN} \
|
||||
"Disinstallazione vecchia versione Vim..."
|
||||
"Sto disinstallando la vecchia versione..."
|
||||
|
||||
LangString str_msg_registering ${LANG_ITALIAN} \
|
||||
"Aggiunta di Vim al registro..."
|
||||
"Sto aggiungendo Vim al Registry..."
|
||||
|
||||
LangString str_msg_unregistering ${LANG_ITALIAN} \
|
||||
"Rimozione di Vim dal registro..."
|
||||
"Sto togliendo Vim dal Registry..."
|
||||
|
||||
|
||||
##############################################################################
|
||||
@@ -239,37 +242,37 @@ LangString str_msg_unregistering ${LANG_ITALIAN} \
|
||||
LangString str_vimrc_page_title ${LANG_ITALIAN} \
|
||||
"Scelta impostazioni _vimrc"
|
||||
LangString str_vimrc_page_subtitle ${LANG_ITALIAN} \
|
||||
"Scelta impostazioni funzionalità aggiuntive, tastiera e mouse."
|
||||
"Scelta impostazioni per funzionalità ulteriori, tastiera e mouse."
|
||||
|
||||
LangString str_msg_compat_title ${LANG_ITALIAN} \
|
||||
" Comportamento come Vi / Vim "
|
||||
" comportamento come Vi / Vim "
|
||||
LangString str_msg_compat_desc ${LANG_ITALIAN} \
|
||||
"&Compatibilità e funzionalità"
|
||||
"&Compatibilità e funzionalità ulteriori"
|
||||
LangString str_msg_compat_vi ${LANG_ITALIAN} \
|
||||
"Compatibile Vi"
|
||||
"Compatibile con Vi"
|
||||
LangString str_msg_compat_vim ${LANG_ITALIAN} \
|
||||
"Vim originale"
|
||||
LangString str_msg_compat_defaults ${LANG_ITALIAN} \
|
||||
"Vim con alcune funzionalità aggiuntive (defaults.vim)"
|
||||
"Vim con alcune funzionalità ulteriori (esecuzione defaults.vim)"
|
||||
LangString str_msg_compat_all ${LANG_ITALIAN} \
|
||||
"Vim con tutte le funzionalità aggiuntive (vimrc_example.vim) (predefinito)"
|
||||
"Vim con tutte le funzionalità ulteriori (esecuzione vimrc_example.vim) (Default)"
|
||||
|
||||
LangString str_msg_keymap_title ${LANG_ITALIAN} \
|
||||
" Mappature tastiera "
|
||||
" Mappature "
|
||||
LangString str_msg_keymap_desc ${LANG_ITALIAN} \
|
||||
"&Rimappa alcuni tasti Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc.)"
|
||||
"&Rimappatura di alcuni tasti per Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc.)"
|
||||
LangString str_msg_keymap_default ${LANG_ITALIAN} \
|
||||
"Non rimappare i tasti (predefinito)"
|
||||
"Non effettuare rimappature di tasti (Default)"
|
||||
LangString str_msg_keymap_windows ${LANG_ITALIAN} \
|
||||
"Rimappa solo alcuni tasti"
|
||||
"Rimappare solo alcuni tasti"
|
||||
|
||||
LangString str_msg_mouse_title ${LANG_ITALIAN} \
|
||||
" Mouse "
|
||||
LangString str_msg_mouse_desc ${LANG_ITALIAN} \
|
||||
"&Comportamento pulsanti destro/sinistro"
|
||||
"&Comportamento dei pulsanti destro e sinistro"
|
||||
LangString str_msg_mouse_default ${LANG_ITALIAN} \
|
||||
"Destro: menu popup, Sinistro: modalità visuale (predefinito)"
|
||||
"Destro: popup menu, Sinistro: modalità visuale (Default)"
|
||||
LangString str_msg_mouse_windows ${LANG_ITALIAN} \
|
||||
"Destro: menu popup, Sinistro: selezione modalità (Windows)"
|
||||
"Destro: popup menu, Sinistro: seleziona modalità (Windows)"
|
||||
LangString str_msg_mouse_unix ${LANG_ITALIAN} \
|
||||
"Destro: estensione selezione, Sinistro: modalità visuale (Unix)"
|
||||
"Destro: estende selezione, Sinistro: modalità visuale (Unix)"
|
||||
|
||||
@@ -1,149 +0,0 @@
|
||||
" Last Modified: 2023-09-11
|
||||
|
||||
function! cargo#Load()
|
||||
" Utility call to get this script loaded, for debugging
|
||||
endfunction
|
||||
|
||||
function! cargo#cmd(args) abort
|
||||
" Trim trailing spaces. This is necessary since :terminal command parses
|
||||
" trailing spaces as an empty argument.
|
||||
let args = substitute(a:args, '\s\+$', '', '')
|
||||
if exists('g:cargo_shell_command_runner')
|
||||
let cmd = g:cargo_shell_command_runner
|
||||
elseif has('terminal')
|
||||
let cmd = 'terminal'
|
||||
elseif has('nvim')
|
||||
let cmd = 'noautocmd new | terminal'
|
||||
else
|
||||
let cmd = '!'
|
||||
endif
|
||||
execute cmd 'cargo' args
|
||||
endfunction
|
||||
|
||||
function! s:nearest_cargo(...) abort
|
||||
" If the second argument is not specified, the first argument determines
|
||||
" whether we will start from the current directory or the directory of the
|
||||
" current buffer, otherwise, we start with the provided path on the
|
||||
" second argument.
|
||||
|
||||
let l:is_getcwd = get(a:, 1, 0)
|
||||
if l:is_getcwd
|
||||
let l:starting_path = get(a:, 2, getcwd())
|
||||
else
|
||||
let l:starting_path = get(a:, 2, expand('%:p:h'))
|
||||
endif
|
||||
|
||||
return findfile('Cargo.toml', l:starting_path . ';')
|
||||
endfunction
|
||||
|
||||
function! cargo#nearestCargo(is_getcwd) abort
|
||||
return s:nearest_cargo(a:is_getcwd)
|
||||
endfunction
|
||||
|
||||
function! cargo#nearestWorkspaceCargo(is_getcwd) abort
|
||||
let l:nearest = s:nearest_cargo(a:is_getcwd)
|
||||
while l:nearest !=# ''
|
||||
for l:line in readfile(l:nearest, '', 0x100)
|
||||
if l:line =~# '\V[workspace]'
|
||||
return l:nearest
|
||||
endif
|
||||
endfor
|
||||
let l:next = fnamemodify(l:nearest, ':p:h:h')
|
||||
let l:nearest = s:nearest_cargo(0, l:next)
|
||||
endwhile
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! cargo#nearestRootCargo(is_getcwd) abort
|
||||
" Try to find a workspace Cargo.toml, and if not found, take the nearest
|
||||
" regular Cargo.toml
|
||||
let l:workspace_cargo = cargo#nearestWorkspaceCargo(a:is_getcwd)
|
||||
if l:workspace_cargo !=# ''
|
||||
return l:workspace_cargo
|
||||
endif
|
||||
return s:nearest_cargo(a:is_getcwd)
|
||||
endfunction
|
||||
|
||||
|
||||
function! cargo#build(args)
|
||||
call cargo#cmd("build " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#check(args)
|
||||
call cargo#cmd("check " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#clean(args)
|
||||
call cargo#cmd("clean " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#doc(args)
|
||||
call cargo#cmd("doc " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#new(args)
|
||||
call cargo#cmd("new " . a:args)
|
||||
cd `=a:args`
|
||||
endfunction
|
||||
|
||||
function! cargo#init(args)
|
||||
call cargo#cmd("init " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#run(args)
|
||||
call cargo#cmd("run " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#test(args)
|
||||
call cargo#cmd("test " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#bench(args)
|
||||
call cargo#cmd("bench " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#update(args)
|
||||
call cargo#cmd("update " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#search(args)
|
||||
call cargo#cmd("search " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#publish(args)
|
||||
call cargo#cmd("publish " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#install(args)
|
||||
call cargo#cmd("install " . a:args)
|
||||
endfunction
|
||||
|
||||
function! cargo#runtarget(args)
|
||||
let l:filename = expand('%:p')
|
||||
let l:read_manifest = system('cargo read-manifest')
|
||||
let l:metadata = json_decode(l:read_manifest)
|
||||
let l:targets = get(l:metadata, 'targets', [])
|
||||
let l:did_run = 0
|
||||
for l:target in l:targets
|
||||
let l:src_path = get(l:target, 'src_path', '')
|
||||
let l:kinds = get(l:target, 'kind', [])
|
||||
let l:name = get(l:target, 'name', '')
|
||||
if l:src_path == l:filename
|
||||
if index(l:kinds, 'example') != -1
|
||||
let l:did_run = 1
|
||||
call cargo#run("--example " . shellescape(l:name) . " " . a:args)
|
||||
return
|
||||
elseif index(l:kinds, 'bin') != -1
|
||||
let l:did_run = 1
|
||||
call cargo#run("--bin " . shellescape(l:name) . " " . a:args)
|
||||
return
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
if l:did_run != 1
|
||||
call cargo#run(a:args)
|
||||
return
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
@@ -1,29 +0,0 @@
|
||||
" Last Modified: 2023-09-11
|
||||
|
||||
function! cargo#quickfix#CmdPre() abort
|
||||
if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo' &&
|
||||
\ &makeprg =~ '\V\^cargo\ \.\*'
|
||||
" Preserve the current directory, and 'lcd' to the nearest Cargo file.
|
||||
let b:rust_compiler_cargo_qf_has_lcd = haslocaldir()
|
||||
let b:rust_compiler_cargo_qf_prev_cd = getcwd()
|
||||
let b:rust_compiler_cargo_qf_prev_cd_saved = 1
|
||||
let l:nearest = fnamemodify(cargo#nearestRootCargo(0), ':h')
|
||||
execute 'lchdir! '.l:nearest
|
||||
else
|
||||
let b:rust_compiler_cargo_qf_prev_cd_saved = 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! cargo#quickfix#CmdPost() abort
|
||||
if exists("b:rust_compiler_cargo_qf_prev_cd_saved") && b:rust_compiler_cargo_qf_prev_cd_saved
|
||||
" Restore the current directory.
|
||||
if b:rust_compiler_cargo_qf_has_lcd
|
||||
execute 'lchdir! '.b:rust_compiler_cargo_qf_prev_cd
|
||||
else
|
||||
execute 'chdir! '.b:rust_compiler_cargo_qf_prev_cd
|
||||
endif
|
||||
let b:rust_compiler_cargo_qf_prev_cd_saved = 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
@@ -1,11 +1,10 @@
|
||||
vim9script noclear
|
||||
|
||||
# Vim completion script
|
||||
# Language: C
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Aug 10
|
||||
# Language: C
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Rewritten in Vim9 script by github user lacygoill
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2022 Jan 31
|
||||
|
||||
var prepended: string
|
||||
var grepCache: dict<list<dict<any>>>
|
||||
|
||||
@@ -3,7 +3,7 @@ vim9script
|
||||
# Language: ConTeXt typesetting engine
|
||||
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
# Former Maintainers: Nikolai Weibull <now@bitwi.se>
|
||||
# Latest Revision: 2023 Dec 26
|
||||
# Latest Revision: 2022 Sep 19
|
||||
|
||||
# Typesetting {{{
|
||||
import autoload './typeset.vim'
|
||||
|
||||
Vendored
+60
-198
@@ -2,9 +2,8 @@ vim9script
|
||||
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Aug 10
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2022 Dec 14
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
# faster.
|
||||
@@ -62,7 +61,7 @@ export def FTasmsyntax()
|
||||
endif
|
||||
enddef
|
||||
|
||||
var ft_visual_basic_content = '\c^\s*\%(Attribute\s\+VB_Name\|Begin\s\+\%(VB\.\|{\%(\x\+-\)\+\x\+}\)\)'
|
||||
var ft_visual_basic_content = '\cVB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
|
||||
# See FTfrm() for Visual Basic form file detection
|
||||
export def FTbas()
|
||||
@@ -146,20 +145,12 @@ export def FTcls()
|
||||
return
|
||||
endif
|
||||
|
||||
var line1 = getline(1)
|
||||
if line1 =~ '^#!.*\<\%(rexx\|regina\)\>'
|
||||
setf rexx
|
||||
return
|
||||
elseif line1 == 'VERSION 1.0 CLASS'
|
||||
setf vb
|
||||
return
|
||||
endif
|
||||
|
||||
var nonblank1 = getline(nextnonblank(1))
|
||||
if nonblank1 =~ '^\v%(\%|\\)'
|
||||
if getline(1) =~ '^\v%(\%|\\)'
|
||||
setf tex
|
||||
elseif nonblank1 =~ '^\s*\%(/\*\|::\w\)'
|
||||
elseif getline(1)[0] == '#' && getline(1) =~ 'rexx'
|
||||
setf rexx
|
||||
elseif getline(1) == 'VERSION 1.0 CLASS'
|
||||
setf vb
|
||||
else
|
||||
setf st
|
||||
endif
|
||||
@@ -295,48 +286,12 @@ export def FTe()
|
||||
endif
|
||||
enddef
|
||||
|
||||
def IsForth(): bool
|
||||
var first_line = nextnonblank(1)
|
||||
|
||||
# SwiftForth block comment (line is usually filled with '-' or '=') or
|
||||
# OPTIONAL (sometimes precedes the header comment)
|
||||
if getline(first_line) =~? '^\%({\%(\s\|$\)\|OPTIONAL\s\)'
|
||||
return true
|
||||
endif
|
||||
|
||||
var n = first_line
|
||||
while n < 100 && n <= line("$")
|
||||
# Forth comments and colon definitions
|
||||
if getline(n) =~ '^[:(\\] '
|
||||
return true
|
||||
endif
|
||||
n += 1
|
||||
endwhile
|
||||
return false
|
||||
enddef
|
||||
|
||||
# Distinguish between Forth and Fortran
|
||||
export def FTf()
|
||||
if exists("g:filetype_f")
|
||||
exe "setf " .. g:filetype_f
|
||||
elseif IsForth()
|
||||
setf forth
|
||||
else
|
||||
setf fortran
|
||||
endif
|
||||
enddef
|
||||
|
||||
export def FTfrm()
|
||||
if exists("g:filetype_frm")
|
||||
exe "setf " .. g:filetype_frm
|
||||
return
|
||||
endif
|
||||
|
||||
if getline(1) == "VERSION 5.00"
|
||||
setf vb
|
||||
return
|
||||
endif
|
||||
|
||||
var lines = getline(1, min([line("$"), 5]))
|
||||
|
||||
if match(lines, ft_visual_basic_content) > -1
|
||||
@@ -346,14 +301,20 @@ export def FTfrm()
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Distinguish between Forth and F#
|
||||
# Distinguish between Forth and F#.
|
||||
# Provided by Doug Kearns.
|
||||
export def FTfs()
|
||||
if exists("g:filetype_fs")
|
||||
exe "setf " .. g:filetype_fs
|
||||
elseif IsForth()
|
||||
setf forth
|
||||
else
|
||||
setf fsharp
|
||||
var line = getline(nextnonblank(1))
|
||||
# comments and colon definitions
|
||||
if line =~ '^\s*\.\=( ' || line =~ '^\s*\\G\= ' || line =~ '^\\$'
|
||||
\ || line =~ '^\s*: \S'
|
||||
setf forth
|
||||
else
|
||||
setf fsharp
|
||||
endif
|
||||
endif
|
||||
enddef
|
||||
|
||||
@@ -399,8 +360,8 @@ export def ProtoCheck(default: string)
|
||||
else
|
||||
# recognize Prolog by specific text in the first non-empty line
|
||||
# require a blank after the '%' because Perl uses "%list" and "%translate"
|
||||
var lnum = getline(nextnonblank(1))
|
||||
if lnum =~ '\<prolog\>' || lnum =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || lnum =~ ':-'
|
||||
var l = getline(nextnonblank(1))
|
||||
if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
|
||||
setf prolog
|
||||
else
|
||||
exe 'setf ' .. default
|
||||
@@ -507,28 +468,28 @@ enddef
|
||||
|
||||
# Returns true if file content looks like LambdaProlog module
|
||||
def IsLProlog(): bool
|
||||
# skip apparent comments and blank lines, what looks like
|
||||
# skip apparent comments and blank lines, what looks like
|
||||
# LambdaProlog comment may be RAPID header
|
||||
var lnum: number = nextnonblank(1)
|
||||
while lnum > 0 && lnum < line('$') && getline(lnum) =~ '^\s*%' # LambdaProlog comment
|
||||
lnum = nextnonblank(lnum + 1)
|
||||
var l: number = nextnonblank(1)
|
||||
while l > 0 && l < line('$') && getline(l) =~ '^\s*%' # LambdaProlog comment
|
||||
l = nextnonblank(l + 1)
|
||||
endwhile
|
||||
# this pattern must not catch a go.mod file
|
||||
return getline(lnum) =~ '\<module\s\+\w\+\s*\.\s*\(%\|$\)'
|
||||
return getline(l) =~ '\<module\s\+\w\+\s*\.\s*\(%\|$\)'
|
||||
enddef
|
||||
|
||||
# Determine if *.mod is ABB RAPID, LambdaProlog, Modula-2, Modsim III or go.mod
|
||||
export def FTmod()
|
||||
if exists("g:filetype_mod")
|
||||
exe "setf " .. g:filetype_mod
|
||||
elseif expand("<afile>") =~ '\<go.mod$'
|
||||
setf gomod
|
||||
elseif IsLProlog()
|
||||
setf lprolog
|
||||
elseif getline(nextnonblank(1)) =~ '\%(\<MODULE\s\+\w\+\s*;\|^\s*(\*\)'
|
||||
setf modula2
|
||||
elseif IsRapid()
|
||||
setf rapid
|
||||
elseif expand("<afile>") =~ '\<go.mod$'
|
||||
setf gomod
|
||||
else
|
||||
# Nothing recognized, assume modsim3
|
||||
setf modsim3
|
||||
@@ -541,8 +502,8 @@ export def FTpl()
|
||||
else
|
||||
# recognize Prolog by specific text in the first non-empty line
|
||||
# require a blank after the '%' because Perl uses "%list" and "%translate"
|
||||
var line = getline(nextnonblank(1))
|
||||
if line =~ '\<prolog\>' || line =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || line =~ ':-'
|
||||
var l = getline(nextnonblank(1))
|
||||
if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
|
||||
setf prolog
|
||||
else
|
||||
setf perl
|
||||
@@ -590,27 +551,23 @@ export def FTprogress_cweb()
|
||||
endif
|
||||
enddef
|
||||
|
||||
# These include the leading '%' sign
|
||||
var ft_swig_keywords = '^\s*%\%(addmethods\|apply\|beginfile\|clear\|constant\|define\|echo\|enddef\|endoffile\|extend\|feature\|fragment\|ignore\|import\|importfile\|include\|includefile\|inline\|insert\|keyword\|module\|name\|namewarn\|native\|newobject\|parms\|pragma\|rename\|template\|typedef\|typemap\|types\|varargs\|warn\)'
|
||||
# This is the start/end of a block that is copied literally to the processor file (C/C++)
|
||||
var ft_swig_verbatim_block_start = '^\s*%{'
|
||||
|
||||
export def FTi()
|
||||
export def FTprogress_asm()
|
||||
if exists("g:filetype_i")
|
||||
exe "setf " .. g:filetype_i
|
||||
return
|
||||
endif
|
||||
# This function checks for an assembly comment or a SWIG keyword or verbatim block in the first 50 lines.
|
||||
# This function checks for an assembly comment the first ten lines.
|
||||
# If not found, assume Progress.
|
||||
var lnum = 1
|
||||
while lnum <= 50 && lnum < line('$')
|
||||
while lnum <= 10 && lnum < line('$')
|
||||
var line = getline(lnum)
|
||||
if line =~ '^\s*;' || line =~ '^\*'
|
||||
FTasm()
|
||||
return
|
||||
elseif line =~ ft_swig_keywords || line =~ ft_swig_verbatim_block_start
|
||||
setf swig
|
||||
return
|
||||
elseif line !~ '^\s*$' || line =~ '^/\*'
|
||||
# Not an empty line: Doesn't look like valid assembly code.
|
||||
# Or it looks like a Progress /* comment
|
||||
break
|
||||
endif
|
||||
lnum += 1
|
||||
endwhile
|
||||
@@ -719,24 +676,26 @@ export def McSetf()
|
||||
enddef
|
||||
|
||||
# Called from filetype.vim and scripts.vim.
|
||||
# When "setft" is passed and false then the 'filetype' option is not set.
|
||||
export def SetFileTypeSH(name: string, setft = true): string
|
||||
if setft && did_filetype()
|
||||
export def SetFileTypeSH(name: string)
|
||||
if did_filetype()
|
||||
# Filetype was already detected
|
||||
return ''
|
||||
return
|
||||
endif
|
||||
if setft && expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return ''
|
||||
if expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return
|
||||
endif
|
||||
if name =~ '\<csh\>'
|
||||
# Some .sh scripts contain #!/bin/csh.
|
||||
return SetFileTypeShell("csh", setft)
|
||||
SetFileTypeShell("csh")
|
||||
return
|
||||
elseif name =~ '\<tcsh\>'
|
||||
# Some .sh scripts contain #!/bin/tcsh.
|
||||
return SetFileTypeShell("tcsh", setft)
|
||||
SetFileTypeShell("tcsh")
|
||||
return
|
||||
elseif name =~ '\<zsh\>'
|
||||
# Some .sh scripts contain #!/bin/zsh.
|
||||
return SetFileTypeShell("zsh", setft)
|
||||
SetFileTypeShell("zsh")
|
||||
return
|
||||
elseif name =~ '\<ksh\>'
|
||||
b:is_kornshell = 1
|
||||
if exists("b:is_bash")
|
||||
@@ -763,43 +722,34 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
unlet b:is_bash
|
||||
endif
|
||||
endif
|
||||
|
||||
return SetFileTypeShell("sh", setft)
|
||||
SetFileTypeShell("sh")
|
||||
enddef
|
||||
|
||||
# For shell-like file types, check for an "exec" command hidden in a comment,
|
||||
# as used for Tcl.
|
||||
# When "setft" is passed and false then the 'filetype' option is not set.
|
||||
# Also called from scripts.vim, thus can't be local to this script.
|
||||
export def SetFileTypeShell(name: string, setft = true): string
|
||||
if setft && did_filetype()
|
||||
export def SetFileTypeShell(name: string)
|
||||
if did_filetype()
|
||||
# Filetype was already detected
|
||||
return ''
|
||||
return
|
||||
endif
|
||||
if setft && expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return ''
|
||||
if expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return
|
||||
endif
|
||||
|
||||
var lnum = 2
|
||||
while lnum < 20 && lnum < line("$") && getline(lnum) =~ '^\s*\(#\|$\)'
|
||||
var l = 2
|
||||
while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
|
||||
# Skip empty and comment lines.
|
||||
lnum += 1
|
||||
l += 1
|
||||
endwhile
|
||||
if lnum < line("$") && getline(lnum) =~ '\s*exec\s' && getline(lnum - 1) =~ '^\s*#.*\\$'
|
||||
if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
|
||||
# Found an "exec" line after a comment with continuation
|
||||
var n = substitute(getline(lnum), '\s*exec\s\+\([^ ]*/\)\=', '', '')
|
||||
var n = substitute(getline(l), '\s*exec\s\+\([^ ]*/\)\=', '', '')
|
||||
if n =~ '\<tclsh\|\<wish'
|
||||
if setft
|
||||
setf tcl
|
||||
endif
|
||||
return 'tcl'
|
||||
setf tcl
|
||||
return
|
||||
endif
|
||||
endif
|
||||
|
||||
if setft
|
||||
exe "setf " .. name
|
||||
endif
|
||||
return name
|
||||
exe "setf " .. name
|
||||
enddef
|
||||
|
||||
export def CSH()
|
||||
@@ -1154,93 +1104,5 @@ export def FTlsl()
|
||||
endif
|
||||
enddef
|
||||
|
||||
export def FTtyp()
|
||||
if exists("g:filetype_typ")
|
||||
exe "setf " .. g:filetype_typ
|
||||
return
|
||||
endif
|
||||
|
||||
# Look for SQL type definition syntax
|
||||
for line in getline(1, 200)
|
||||
# SQL type files may define the casing
|
||||
if line =~ '^CASE\s\==\s\=\(SAME\|LOWER\|UPPER\|OPPOSITE\)$'
|
||||
setf sql
|
||||
return
|
||||
endif
|
||||
|
||||
# SQL type files may define some types as follows
|
||||
if line =~ '^TYPE\s.*$'
|
||||
setf sql
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
|
||||
# Otherwise, affect the typst filetype
|
||||
setf typst
|
||||
enddef
|
||||
|
||||
# Set the filetype of a *.v file to Verilog, V or Cog based on the first 200
|
||||
# lines.
|
||||
export def FTv()
|
||||
if did_filetype()
|
||||
# ":setf" will do nothing, bail out early
|
||||
return
|
||||
endif
|
||||
if exists("g:filetype_v")
|
||||
exe "setf " .. g:filetype_v
|
||||
return
|
||||
endif
|
||||
|
||||
var in_comment = 0
|
||||
for lnum in range(1, min([line("$"), 200]))
|
||||
var line = getline(lnum)
|
||||
# Skip Verilog and V comments (lines and blocks).
|
||||
if line =~ '^\s*/\*'
|
||||
# start comment block
|
||||
in_comment = 1
|
||||
endif
|
||||
if in_comment == 1
|
||||
if line =~ '\*/'
|
||||
# end comment block
|
||||
in_comment = 0
|
||||
endif
|
||||
# skip comment-block line
|
||||
continue
|
||||
endif
|
||||
if line =~ '^\s*//'
|
||||
# skip comment line
|
||||
continue
|
||||
endif
|
||||
|
||||
# Coq: line ends with a '.' followed by an optional variable number of
|
||||
# spaces or contains the start of a comment, but not inside a Verilog or V
|
||||
# comment.
|
||||
# Example: "Definition x := 10. (*".
|
||||
if (line =~ '\.\s*$' && line !~ '/[/*]') || (line =~ '(\*' && line !~ '/[/*].*(\*')
|
||||
setf coq
|
||||
return
|
||||
endif
|
||||
|
||||
# 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*\(/[/*].*\)\?$'
|
||||
setf verilog
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
|
||||
# No line matched, fall back to "v".
|
||||
setf v
|
||||
enddef
|
||||
|
||||
export def FTvba()
|
||||
if getline(1) =~ '^["#] Vimball Archiver'
|
||||
setf vim
|
||||
else
|
||||
setf vb
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
# defcompile
|
||||
|
||||
Vendored
-182
@@ -1,182 +0,0 @@
|
||||
vim9script
|
||||
|
||||
# Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
# Last update: 2023-12-10
|
||||
#
|
||||
# Set of functions to format/beautify JSON data structures.
|
||||
#
|
||||
# Could be used to reformat a minified json in a buffer (put it into ~/.vim/ftplugin/json.vim):
|
||||
# import autoload 'dist/json.vim'
|
||||
# setl formatexpr=json.FormatExpr()
|
||||
#
|
||||
# Or to get a formatted string out of vim's dict/list/string:
|
||||
# vim9script
|
||||
# import autoload 'dist/json.vim'
|
||||
# echo json.Format({
|
||||
# "widget": { "debug": "on", "window": { "title": "Sample \"Konfabulator\" Widget",
|
||||
# "name": "main_window", "width": 500, "height": 500
|
||||
# },
|
||||
# "image": { "src": "Images/Sun.png", "name": "sun1", "hOffset": 250,
|
||||
# "vOffset": 250, "alignment": "center" },
|
||||
# "text": { "data": "Click Here", "size": 36, "style": "bold", "name": "text1",
|
||||
# "hOffset": 250, "vOffset": 100, "alignment": "center",
|
||||
# "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" } }
|
||||
# })
|
||||
#
|
||||
# Should output:
|
||||
# {
|
||||
# "widget": {
|
||||
# "debug": "on",
|
||||
# "window": {
|
||||
# "title": "Sample \"Konfabulator\" Widget",
|
||||
# "name": "main_window",
|
||||
# "width": 500,
|
||||
# "height": 500
|
||||
# },
|
||||
# "image": {
|
||||
# "src": "Images/Sun.png",
|
||||
# "name": "sun1",
|
||||
# "hOffset": 250,
|
||||
# "vOffset": 250,
|
||||
# "alignment": "center"
|
||||
# },
|
||||
# "text": {
|
||||
# "data": "Click Here",
|
||||
# "size": 36,
|
||||
# "style": "bold",
|
||||
# "name": "text1",
|
||||
# "hOffset": 250,
|
||||
# "vOffset": 100,
|
||||
# "alignment": "center",
|
||||
# "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
#
|
||||
# NOTE: order of `key: value` pairs is not kept.
|
||||
#
|
||||
# You can also use a JSON string instead of vim's dict/list to maintain order:
|
||||
# echo json.Format('{"hello": 1, "world": 2}')
|
||||
# {
|
||||
# "hello": 1,
|
||||
# "world": 2
|
||||
# }
|
||||
|
||||
|
||||
# To be able to reformat with `gq` add following to `~/.vim/ftplugin/json.vim`:
|
||||
# import autoload 'dist/json.vim'
|
||||
# setl formatexpr=json.FormatExpr()
|
||||
export def FormatExpr(): number
|
||||
FormatRange(v:lnum, v:lnum + v:count - 1)
|
||||
return 0
|
||||
enddef
|
||||
|
||||
|
||||
# import autoload 'dist/json.vim'
|
||||
# command -range=% JSONFormat json.FormatRange(<line1>, <line2>)
|
||||
export def FormatRange(line1: number, line2: number)
|
||||
var indent_base = matchstr(getline(line1), '^\s*')
|
||||
var indent = &expandtab ? repeat(' ', &shiftwidth) : "\t"
|
||||
|
||||
var [l1, l2] = line1 > line2 ? [line2, line1] : [line1, line2]
|
||||
|
||||
var json_src = getline(l1, l2)->join()
|
||||
var json_fmt = Format(json_src, {use_tabs: !&et, indent: &sw, indent_base: indent_base})->split("\n")
|
||||
|
||||
exe $":{l1},{l2}d"
|
||||
|
||||
if line('$') == 1 && getline(1) == ''
|
||||
setline(l1, json_fmt[0])
|
||||
append(l1, json_fmt[1 : ])
|
||||
else
|
||||
append(l1 - 1, json_fmt)
|
||||
endif
|
||||
enddef
|
||||
|
||||
|
||||
# Format JSON string or dict/list as JSON
|
||||
# import autoload 'dist/json.vim'
|
||||
# echo json.Format('{"hello": "world"}', {use_tabs: false, indent: 2, indent_base: 0})
|
||||
|
||||
# {
|
||||
# "hello": "world"
|
||||
# }
|
||||
|
||||
# echo json.Format({'hello': 'world'}, {use_tabs: false, indent: 2, indent_base: 0})
|
||||
# {
|
||||
# "hello": "world"
|
||||
# }
|
||||
#
|
||||
# Note, when `obj` is dict, order of the `key: value` pairs might be different:
|
||||
# echo json.Format({'hello': 1, 'world': 2})
|
||||
# {
|
||||
# "world": 2,
|
||||
# "hello": 1
|
||||
# }
|
||||
export def Format(obj: any, params: dict<any> = {}): string
|
||||
var obj_str = ''
|
||||
if type(obj) == v:t_string
|
||||
obj_str = obj
|
||||
else
|
||||
obj_str = json_encode(obj)
|
||||
endif
|
||||
|
||||
var indent_lvl = 0
|
||||
var indent_base = get(params, "indent_base", "")
|
||||
var indent = get(params, "use_tabs", false) ? "\t" : repeat(' ', get(params, "indent", 2))
|
||||
var json_line = indent_base
|
||||
var json = ""
|
||||
var state = ""
|
||||
for char in obj_str
|
||||
if state == ""
|
||||
if char =~ '[{\[]'
|
||||
json_line ..= char
|
||||
json ..= json_line .. "\n"
|
||||
indent_lvl += 1
|
||||
json_line = indent_base .. repeat(indent, indent_lvl)
|
||||
elseif char =~ '[}\]]'
|
||||
if json_line !~ '^\s*$'
|
||||
json ..= json_line .. "\n"
|
||||
indent_lvl -= 1
|
||||
if indent_lvl < 0
|
||||
json_line = strpart(indent_base, -indent_lvl * len(indent))
|
||||
else
|
||||
json_line = indent_base .. repeat(indent, indent_lvl)
|
||||
endif
|
||||
elseif json =~ '[{\[]\n$'
|
||||
json = json[ : -2]
|
||||
json_line = substitute(json_line, '^\s*', '', '')
|
||||
indent_lvl -= 1
|
||||
endif
|
||||
json_line ..= char
|
||||
elseif char == ':'
|
||||
json_line ..= char .. ' '
|
||||
elseif char == '"'
|
||||
json_line ..= char
|
||||
state = 'QUOTE'
|
||||
elseif char == ','
|
||||
json_line ..= char
|
||||
json ..= json_line .. "\n"
|
||||
json_line = indent_base .. repeat(indent, indent_lvl)
|
||||
elseif char !~ '\s'
|
||||
json_line ..= char
|
||||
endif
|
||||
elseif state == "QUOTE"
|
||||
json_line ..= char
|
||||
if char == '\'
|
||||
state = "ESCAPE"
|
||||
elseif char == '"'
|
||||
state = ""
|
||||
endif
|
||||
elseif state == "ESCAPE"
|
||||
state = "QUOTE"
|
||||
json_line ..= char
|
||||
else
|
||||
json_line ..= char
|
||||
endif
|
||||
endfor
|
||||
if json_line !~ '^\s*$'
|
||||
json ..= json_line .. "\n"
|
||||
endif
|
||||
return json
|
||||
enddef
|
||||
Vendored
+24
-66
@@ -1,9 +1,9 @@
|
||||
" Vim filetype plugin autoload file
|
||||
" Language: man
|
||||
" Maintainer: Jason Franklin <jason@oneway.dev>
|
||||
" Maintainer: Jason Franklin <vim@justemail.net>
|
||||
" Maintainer: SungHyun Nam <goweol@gmail.com>
|
||||
" Autoload Split: Bram Moolenaar
|
||||
" Last Change: 2023 Jun 28
|
||||
" Last Change: 2022 Jun 18
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
@@ -21,65 +21,31 @@ catch /E145:/
|
||||
" Ignore the error in restricted mode
|
||||
endtry
|
||||
|
||||
func s:ParseIntoPageAndSection()
|
||||
" Accommodate a reference that terminates in a hyphen.
|
||||
"
|
||||
" See init_charset_table() at
|
||||
" https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/input.cpp?h=1.22.4#n6794
|
||||
"
|
||||
" See can_break_after() at
|
||||
" https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/charinfo.h?h=1.22.4#n140
|
||||
"
|
||||
" Assumptions and limitations:
|
||||
" 1) Manual-page references (in consequence of command-related filenames)
|
||||
" do not contain non-ASCII HYPHENs (0x2010), any terminating HYPHEN
|
||||
" must have been introduced to mark division of a word at the end of
|
||||
" a line and can be discarded; whereas similar references may contain
|
||||
" ASCII HYPHEN-MINUSes (0x002d) and any terminating HYPHEN-MINUS forms
|
||||
" a compound word in addition to marking word division.
|
||||
" 2) Well-formed manual-page references always have a section suffix, e.g.
|
||||
" "git-commit(1)", therefore suspended hyphenated compounds are not
|
||||
" determined, e.g. [V] (With cursor at _git-merge-_ below...)
|
||||
" ".................... git-merge- and git-merge-base. (See git-cherry-
|
||||
" pick(1) and git-cherry(1).)" (... look up "git-merge-pick(1)".)
|
||||
"
|
||||
" Note that EM DASH (0x2014), a third stooge from init_charset_table(),
|
||||
" neither connects nor divides parts of a word.
|
||||
let str = expand("<cWORD>")
|
||||
|
||||
if str =~ '\%u2010$' " HYPHEN (-1).
|
||||
let str = strpart(str, 0, strridx(str, "\u2010"))
|
||||
|
||||
" Append the leftmost WORD (or an empty string) from the line below.
|
||||
let str .= get(split(get(getbufline(bufnr('%'), line('.') + 1), 0, '')), 0, '')
|
||||
elseif str =~ '-$' " HYPHEN-MINUS.
|
||||
" Append the leftmost WORD (or an empty string) from the line below.
|
||||
let str .= get(split(get(getbufline(bufnr('%'), line('.') + 1), 0, '')), 0, '')
|
||||
endif
|
||||
|
||||
" According to man(1), section name formats vary (MANSECT):
|
||||
" 1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
|
||||
let parts = matchlist(str, '\(\k\+\)(\(\k\+\))')
|
||||
return (len(parts) > 2)
|
||||
\ ? {'page': parts[1], 'section': parts[2]}
|
||||
\ : {'page': matchstr(str, '\k\+'), 'section': ''}
|
||||
endfunc
|
||||
|
||||
func dist#man#PreGetPage(cnt)
|
||||
if a:cnt == 0
|
||||
let what = s:ParseIntoPageAndSection()
|
||||
let sect = what.section
|
||||
let page = what.page
|
||||
let old_isk = &iskeyword
|
||||
if &ft == 'man'
|
||||
setl iskeyword+=(,)
|
||||
endif
|
||||
let str = expand("<cword>")
|
||||
let &l:iskeyword = old_isk
|
||||
let page = substitute(str, '(*\(\k\+\).*', '\1', '')
|
||||
let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '')
|
||||
if match(sect, '^[0-9 ]\+$') == -1
|
||||
let sect = ""
|
||||
endif
|
||||
if sect == page
|
||||
let sect = ""
|
||||
endif
|
||||
else
|
||||
let what = s:ParseIntoPageAndSection()
|
||||
let sect = a:cnt
|
||||
let page = what.page
|
||||
let page = expand("<cword>")
|
||||
endif
|
||||
|
||||
call dist#man#GetPage('', sect, page)
|
||||
endfunc
|
||||
|
||||
func s:GetCmdArg(sect, page)
|
||||
|
||||
if empty(a:sect)
|
||||
return shellescape(a:page)
|
||||
endif
|
||||
@@ -109,11 +75,9 @@ func dist#man#GetPage(cmdmods, ...)
|
||||
return
|
||||
endif
|
||||
|
||||
" To support: nmap K :Man <cWORD><CR>
|
||||
if page ==? '<cword>'
|
||||
let what = s:ParseIntoPageAndSection()
|
||||
let sect = what.section
|
||||
let page = what.page
|
||||
" To support: nmap K :Man <cword>
|
||||
if page == '<cword>'
|
||||
let page = expand('<cword>')
|
||||
endif
|
||||
|
||||
if !exists('g:ft_man_no_sect_fallback') || (g:ft_man_no_sect_fallback == 0)
|
||||
@@ -190,14 +154,9 @@ func dist#man#GetPage(cmdmods, ...)
|
||||
endif
|
||||
let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
|
||||
let env_cmd .= ' GROFF_NO_SGR=1'
|
||||
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page)
|
||||
|
||||
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
|
||||
silent exec "r !" . man_cmd
|
||||
|
||||
" Emulate piping the buffer through the "col -b" command.
|
||||
" Ref: https://github.com/vim/vim/issues/12301
|
||||
exe 'silent! keepjumps keeppatterns %s/\v(.)\b\ze\1?//e' .. (&gdefault ? '' : 'g')
|
||||
|
||||
if unsetwidth
|
||||
let $MANWIDTH = ''
|
||||
endif
|
||||
@@ -221,10 +180,9 @@ func dist#man#PopPage()
|
||||
exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth
|
||||
exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth
|
||||
exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth
|
||||
|
||||
exec s:man_tag_buf."b"
|
||||
call cursor(s:man_tag_lin, s:man_tag_col)
|
||||
|
||||
exec s:man_tag_lin
|
||||
exec "norm! ".s:man_tag_col."|"
|
||||
exec "unlet s:man_tag_buf_".s:man_tag_depth
|
||||
exec "unlet s:man_tag_lin_".s:man_tag_depth
|
||||
exec "unlet s:man_tag_col_".s:man_tag_depth
|
||||
|
||||
Vendored
+87
-123
@@ -3,9 +3,8 @@ vim9script
|
||||
# Vim function for detecting a filetype from the file contents.
|
||||
# Invoked from "scripts.vim" in 'runtimepath'
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Aug 10
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Last Change: 2022 Nov 24
|
||||
|
||||
export def DetectFiletype()
|
||||
var line1 = getline(1)
|
||||
@@ -45,7 +44,7 @@ def DetectFromHashBang(firstline: string)
|
||||
elseif line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
|
||||
name = substitute(line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
|
||||
else
|
||||
name = substitute(line1, '^#!\s*\S*[/\\]\(\f\+\).*', '\1', '')
|
||||
name = substitute(line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
|
||||
endif
|
||||
|
||||
# tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
|
||||
@@ -54,184 +53,151 @@ def DetectFromHashBang(firstline: string)
|
||||
name = 'wish'
|
||||
endif
|
||||
|
||||
var ft = Exe2filetype(name, line1)
|
||||
if ft != ''
|
||||
exe 'setl ft=' .. ft
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Returns the filetype name associated with program "name".
|
||||
# "line1" is the #! line at the top of the file. Use the same as "name" if
|
||||
# not available.
|
||||
# Returns an empty string when not recognized.
|
||||
export def Exe2filetype(name: string, line1: string): string
|
||||
# Bourne-like shell scripts: bash bash2 dash ksh ksh93 sh
|
||||
if name =~ '^\(bash\d*\|dash\|ksh\d*\|sh\)\>'
|
||||
return dist#ft#SetFileTypeSH(line1, false)
|
||||
call dist#ft#SetFileTypeSH(line1)
|
||||
|
||||
# csh scripts
|
||||
elseif name =~ '^csh\>'
|
||||
return dist#ft#SetFileTypeShell(exists("g:filetype_csh") ? g:filetype_csh : 'csh', false)
|
||||
if exists("g:filetype_csh")
|
||||
call dist#ft#SetFileTypeShell(g:filetype_csh)
|
||||
else
|
||||
call dist#ft#SetFileTypeShell("csh")
|
||||
endif
|
||||
|
||||
# tcsh scripts
|
||||
elseif name =~ '^tcsh\>'
|
||||
return dist#ft#SetFileTypeShell("tcsh", false)
|
||||
call dist#ft#SetFileTypeShell("tcsh")
|
||||
|
||||
# Z shell scripts
|
||||
elseif name =~ '^zsh\>'
|
||||
return 'zsh'
|
||||
set ft=zsh
|
||||
|
||||
# TCL scripts
|
||||
elseif name =~ '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
|
||||
return 'tcl'
|
||||
set ft=tcl
|
||||
|
||||
# Expect scripts
|
||||
elseif name =~ '^expect\>'
|
||||
return 'expect'
|
||||
set ft=expect
|
||||
|
||||
# Gnuplot scripts
|
||||
elseif name =~ '^gnuplot\>'
|
||||
return 'gnuplot'
|
||||
set ft=gnuplot
|
||||
|
||||
# Makefiles
|
||||
elseif name =~ 'make\>'
|
||||
return 'make'
|
||||
set ft=make
|
||||
|
||||
# Pike
|
||||
elseif name =~ '^pike\%(\>\|[0-9]\)'
|
||||
return 'pike'
|
||||
set ft=pike
|
||||
|
||||
# Lua
|
||||
elseif name =~ 'lua'
|
||||
return 'lua'
|
||||
set ft=lua
|
||||
|
||||
# Perl
|
||||
elseif name =~ 'perl'
|
||||
return 'perl'
|
||||
set ft=perl
|
||||
|
||||
# PHP
|
||||
elseif name =~ 'php'
|
||||
return 'php'
|
||||
set ft=php
|
||||
|
||||
# Python
|
||||
elseif name =~ 'python'
|
||||
return 'python'
|
||||
set ft=python
|
||||
|
||||
# Groovy
|
||||
elseif name =~ '^groovy\>'
|
||||
return 'groovy'
|
||||
set ft=groovy
|
||||
|
||||
# Raku
|
||||
elseif name =~ 'raku'
|
||||
return 'raku'
|
||||
set ft=raku
|
||||
|
||||
# Ruby
|
||||
elseif name =~ 'ruby'
|
||||
return 'ruby'
|
||||
set ft=ruby
|
||||
|
||||
# JavaScript
|
||||
elseif name =~ 'node\(js\)\=\>\|js\>' || name =~ 'rhino\>'
|
||||
return 'javascript'
|
||||
set ft=javascript
|
||||
|
||||
# BC calculator
|
||||
elseif name =~ '^bc\>'
|
||||
return 'bc'
|
||||
set ft=bc
|
||||
|
||||
# sed
|
||||
elseif name =~ 'sed\>'
|
||||
return 'sed'
|
||||
set ft=sed
|
||||
|
||||
# OCaml-scripts
|
||||
elseif name =~ 'ocaml'
|
||||
return 'ocaml'
|
||||
set ft=ocaml
|
||||
|
||||
# Awk scripts; also finds "gawk"
|
||||
elseif name =~ 'awk\>'
|
||||
return 'awk'
|
||||
set ft=awk
|
||||
|
||||
# Website MetaLanguage
|
||||
elseif name =~ 'wml'
|
||||
return 'wml'
|
||||
set ft=wml
|
||||
|
||||
# Scheme scripts
|
||||
elseif name =~ 'scheme'
|
||||
return 'scheme'
|
||||
set ft=scheme
|
||||
|
||||
# CFEngine scripts
|
||||
elseif name =~ 'cfengine'
|
||||
return 'cfengine'
|
||||
set ft=cfengine
|
||||
|
||||
# Erlang scripts
|
||||
elseif name =~ 'escript'
|
||||
return 'erlang'
|
||||
set ft=erlang
|
||||
|
||||
# Haskell
|
||||
elseif name =~ 'haskell'
|
||||
return 'haskell'
|
||||
set ft=haskell
|
||||
|
||||
# Scala
|
||||
elseif name =~ 'scala\>'
|
||||
return 'scala'
|
||||
set ft=scala
|
||||
|
||||
# Clojure
|
||||
elseif name =~ 'clojure'
|
||||
return 'clojure'
|
||||
set ft=clojure
|
||||
|
||||
# Free Pascal
|
||||
elseif name =~ 'instantfpc\>'
|
||||
return 'pascal'
|
||||
set ft=pascal
|
||||
|
||||
# Fennel
|
||||
elseif name =~ 'fennel\>'
|
||||
return 'fennel'
|
||||
set ft=fennel
|
||||
|
||||
# MikroTik RouterOS script
|
||||
elseif name =~ 'rsc\>'
|
||||
return 'routeros'
|
||||
set ft=routeros
|
||||
|
||||
# Fish shell
|
||||
elseif name =~ 'fish\>'
|
||||
return 'fish'
|
||||
set ft=fish
|
||||
|
||||
# Gforth
|
||||
elseif name =~ 'gforth\>'
|
||||
return 'forth'
|
||||
set ft=forth
|
||||
|
||||
# Icon
|
||||
elseif name =~ 'icon\>'
|
||||
return 'icon'
|
||||
set ft=icon
|
||||
|
||||
# Guile
|
||||
elseif name =~ 'guile'
|
||||
return 'scheme'
|
||||
|
||||
# Nix
|
||||
elseif name =~ 'nix-shell'
|
||||
return 'nix'
|
||||
|
||||
# Crystal
|
||||
elseif name =~ '^crystal\>'
|
||||
return 'crystal'
|
||||
|
||||
# Rexx
|
||||
elseif name =~ '^\%(rexx\|regina\)\>'
|
||||
return 'rexx'
|
||||
|
||||
# Janet
|
||||
elseif name =~ '^janet\>'
|
||||
return 'janet'
|
||||
|
||||
# Dart
|
||||
elseif name =~ '^dart\>'
|
||||
return 'dart'
|
||||
|
||||
# Execline (s6)
|
||||
elseif name =~ '^execlineb\>'
|
||||
return 'execline'
|
||||
set ft=scheme
|
||||
|
||||
endif
|
||||
|
||||
return ''
|
||||
enddef
|
||||
|
||||
|
||||
@@ -252,28 +218,28 @@ def DetectFromText(line1: string)
|
||||
|| "\n" .. line1 .. "\n" .. line2 .. "\n" .. line3 ..
|
||||
"\n" .. line4 .. "\n" .. line5
|
||||
=~ '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
|
||||
setl ft=zsh
|
||||
set ft=zsh
|
||||
|
||||
# ELM Mail files
|
||||
elseif line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|
||||
setl ft=mail
|
||||
set ft=mail
|
||||
|
||||
# Mason
|
||||
elseif line1 =~ '^<[%&].*>'
|
||||
setl ft=mason
|
||||
set ft=mason
|
||||
|
||||
# Vim scripts (must have '" vim' as the first line to trigger this)
|
||||
elseif line1 =~ '^" *[vV]im$'
|
||||
setl ft=vim
|
||||
set ft=vim
|
||||
|
||||
# libcxx and libstdc++ standard library headers like "iostream" do not have
|
||||
# an extension, recognize the Emacs file mode.
|
||||
elseif line1 =~? '-\*-.*C++.*-\*-'
|
||||
setl ft=cpp
|
||||
set ft=cpp
|
||||
|
||||
# MOO
|
||||
elseif line1 =~ '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
|
||||
setl ft=moo
|
||||
set ft=moo
|
||||
|
||||
# Diff file:
|
||||
# - "diff" in first line (context diff)
|
||||
@@ -292,11 +258,11 @@ def DetectFromText(line1: string)
|
||||
|| (line1 =~ '^\*\*\* ' && line2 =~ '^--- ')
|
||||
|| (line1 =~ '^=== ' && ((line2 =~ '^=\{66\}' && line3 =~ '^--- ' && line4 =~ '^+++') || (line2 =~ '^--- ' && line3 =~ '^+++ ')))
|
||||
|| (line1 =~ '^=== \(removed\|added\|renamed\|modified\)')
|
||||
setl ft=diff
|
||||
set ft=diff
|
||||
|
||||
# PostScript Files (must have %!PS as the first line, like a2ps output)
|
||||
elseif line1 =~ '^%![ \t]*PS'
|
||||
setl ft=postscr
|
||||
set ft=postscr
|
||||
|
||||
# M4 scripts: Guess there is a line that starts with "dnl".
|
||||
elseif line1 =~ '^\s*dnl\>'
|
||||
@@ -304,64 +270,64 @@ def DetectFromText(line1: string)
|
||||
|| line3 =~ '^\s*dnl\>'
|
||||
|| line4 =~ '^\s*dnl\>'
|
||||
|| line5 =~ '^\s*dnl\>'
|
||||
setl ft=m4
|
||||
set ft=m4
|
||||
|
||||
# AmigaDos scripts
|
||||
elseif $TERM == "amiga" && (line1 =~ "^;" || line1 =~? '^\.bra')
|
||||
setl ft=amiga
|
||||
set ft=amiga
|
||||
|
||||
# SiCAD scripts (must have procn or procd as the first line to trigger this)
|
||||
elseif line1 =~? '^ *proc[nd] *$'
|
||||
setl ft=sicad
|
||||
set ft=sicad
|
||||
|
||||
# Purify log files start with "**** Purify"
|
||||
elseif line1 =~ '^\*\*\*\* Purify'
|
||||
setl ft=purifylog
|
||||
set ft=purifylog
|
||||
|
||||
# XML
|
||||
elseif line1 =~ '<?\s*xml.*?>'
|
||||
setl ft=xml
|
||||
set ft=xml
|
||||
|
||||
# XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
|
||||
elseif line1 =~ '\<DTD\s\+XHTML\s'
|
||||
setl ft=xhtml
|
||||
set ft=xhtml
|
||||
|
||||
# HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
|
||||
# Avoid "doctype html", used by slim.
|
||||
elseif line1 =~? '<!DOCTYPE\s\+html\>'
|
||||
setl ft=html
|
||||
set ft=html
|
||||
|
||||
# PDF
|
||||
elseif line1 =~ '^%PDF-'
|
||||
setl ft=pdf
|
||||
set ft=pdf
|
||||
|
||||
# XXD output
|
||||
elseif line1 =~ '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
|
||||
setl ft=xxd
|
||||
set ft=xxd
|
||||
|
||||
# RCS/CVS log output
|
||||
elseif line1 =~ '^RCS file:' || line2 =~ '^RCS file:'
|
||||
setl ft=rcslog
|
||||
set ft=rcslog
|
||||
|
||||
# CVS commit
|
||||
elseif line2 =~ '^CVS:' || getline("$") =~ '^CVS: '
|
||||
setl ft=cvs
|
||||
set ft=cvs
|
||||
|
||||
# Prescribe
|
||||
elseif line1 =~ '^!R!'
|
||||
setl ft=prescribe
|
||||
set ft=prescribe
|
||||
|
||||
# Send-pr
|
||||
elseif line1 =~ '^SEND-PR:'
|
||||
setl ft=sendpr
|
||||
set ft=sendpr
|
||||
|
||||
# SNNS files
|
||||
elseif line1 =~ '^SNNS network definition file'
|
||||
setl ft=snnsnet
|
||||
set ft=snnsnet
|
||||
elseif line1 =~ '^SNNS pattern definition file'
|
||||
setl ft=snnspat
|
||||
set ft=snnspat
|
||||
elseif line1 =~ '^SNNS result file'
|
||||
setl ft=snnsres
|
||||
set ft=snnsres
|
||||
|
||||
# Virata
|
||||
elseif line1 =~ '^%.\{-}[Vv]irata'
|
||||
@@ -369,81 +335,79 @@ def DetectFromText(line1: string)
|
||||
|| line3 =~ '^%.\{-}[Vv]irata'
|
||||
|| line4 =~ '^%.\{-}[Vv]irata'
|
||||
|| line5 =~ '^%.\{-}[Vv]irata'
|
||||
setl ft=virata
|
||||
set ft=virata
|
||||
|
||||
# Strace
|
||||
# inaccurate fast match first, then use accurate slow match
|
||||
elseif (line1 =~ 'execve(' && line1 =~ '^[0-9:. ]*execve(')
|
||||
|| line1 =~ '^__libc_start_main'
|
||||
setl ft=strace
|
||||
elseif line1 =~ '[0-9:.]* *execve(' || line1 =~ '^__libc_start_main'
|
||||
set ft=strace
|
||||
|
||||
# VSE JCL
|
||||
elseif line1 =~ '^\* $$ JOB\>' || line1 =~ '^// *JOB\>'
|
||||
setl ft=vsejcl
|
||||
set ft=vsejcl
|
||||
|
||||
# TAK and SINDA
|
||||
elseif line4 =~ 'K & K Associates' || line2 =~ 'TAK 2000'
|
||||
setl ft=takout
|
||||
set ft=takout
|
||||
elseif line3 =~ 'S Y S T E M S I M P R O V E D '
|
||||
setl ft=sindaout
|
||||
set ft=sindaout
|
||||
elseif getline(6) =~ 'Run Date: '
|
||||
setl ft=takcmp
|
||||
set ft=takcmp
|
||||
elseif getline(9) =~ 'Node File 1'
|
||||
setl ft=sindacmp
|
||||
set ft=sindacmp
|
||||
|
||||
# DNS zone files
|
||||
elseif line1 .. line2 .. line3 .. line4 =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
setl ft=bindzone
|
||||
set ft=bindzone
|
||||
|
||||
# BAAN
|
||||
elseif line1 =~ '|\*\{1,80}' && line2 =~ 'VRC '
|
||||
|| line2 =~ '|\*\{1,80}' && line3 =~ 'VRC '
|
||||
setl ft=baan
|
||||
set ft=baan
|
||||
|
||||
# Valgrind
|
||||
elseif line1 =~ '^==\d\+== valgrind' || line3 =~ '^==\d\+== Using valgrind'
|
||||
setl ft=valgrind
|
||||
set ft=valgrind
|
||||
|
||||
# Go docs
|
||||
elseif line1 =~ '^PACKAGE DOCUMENTATION$'
|
||||
setl ft=godoc
|
||||
set ft=godoc
|
||||
|
||||
# Renderman Interface Bytestream
|
||||
elseif line1 =~ '^##RenderMan'
|
||||
setl ft=rib
|
||||
set ft=rib
|
||||
|
||||
# Scheme scripts
|
||||
elseif line1 =~ 'exec\s\+\S*scheme' || line2 =~ 'exec\s\+\S*scheme'
|
||||
setl ft=scheme
|
||||
set ft=scheme
|
||||
|
||||
# Git output
|
||||
elseif line1 =~ '^\(commit\|tree\|object\) \x\{40,\}\>\|^tag \S\+$'
|
||||
setl ft=git
|
||||
set ft=git
|
||||
|
||||
# Gprof (gnu profiler)
|
||||
elseif line1 == 'Flat profile:'
|
||||
&& line2 == ''
|
||||
&& line3 =~ '^Each sample counts as .* seconds.$'
|
||||
setl ft=gprof
|
||||
set ft=gprof
|
||||
|
||||
# Erlang terms
|
||||
# (See also: http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html#Choosing-Modes)
|
||||
elseif line1 =~? '-\*-.*erlang.*-\*-'
|
||||
setl ft=erlang
|
||||
set ft=erlang
|
||||
|
||||
# YAML
|
||||
elseif line1 =~ '^%YAML'
|
||||
setl ft=yaml
|
||||
set ft=yaml
|
||||
|
||||
# MikroTik RouterOS script
|
||||
elseif line1 =~ '^#.*by RouterOS.*$'
|
||||
setl ft=routeros
|
||||
set ft=routeros
|
||||
|
||||
# Sed scripts
|
||||
# #ncomment is allowed but most likely a false positive so require a space
|
||||
# before any trailing comment text
|
||||
elseif line1 =~ '^#n\%($\|\s\)'
|
||||
setl ft=sed
|
||||
set ft=sed
|
||||
|
||||
else
|
||||
var lnum = 1
|
||||
@@ -452,7 +416,7 @@ def DetectFromText(line1: string)
|
||||
endwhile
|
||||
if getline(lnum) =~ '^Index:\s\+\f\+$'
|
||||
# CVS diff
|
||||
setl ft=diff
|
||||
set ft=diff
|
||||
|
||||
# locale input files: Formal Definitions of Cultural Conventions
|
||||
# filename must be like en_US, fr_FR@euro or en_US.UTF-8
|
||||
|
||||
Vendored
-32
@@ -1,32 +0,0 @@
|
||||
" Vim runtime support library,
|
||||
" runs the vim9 script version or legacy script version
|
||||
" on demand (mostly for Neovim compatability)
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Nov 04
|
||||
|
||||
|
||||
" enable the zip and gzip plugin by default, if not set
|
||||
if !exists('g:zip_exec')
|
||||
let g:zip_exec = 1
|
||||
endif
|
||||
|
||||
if !exists('g:gzip_exec')
|
||||
let g:gzip_exec = 1
|
||||
endif
|
||||
|
||||
if !has('vim9script')
|
||||
function dist#vim#IsSafeExecutable(filetype, executable)
|
||||
let cwd = getcwd()
|
||||
return get(g:, a:filetype .. '_exec', get(g:, 'plugin_exec', 0)) &&
|
||||
\ (fnamemodify(exepath(a:executable), ':p:h') !=# cwd
|
||||
\ || (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1 &&
|
||||
\ cwd != '.'))
|
||||
endfunction
|
||||
|
||||
finish
|
||||
endif
|
||||
|
||||
def dist#vim#IsSafeExecutable(filetype: string, executable: string): bool
|
||||
return dist#vim9#IsSafeExecutable(filetype, executable)
|
||||
enddef
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
vim9script
|
||||
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2023 Oct 25
|
||||
|
||||
export def IsSafeExecutable(filetype: string, executable: string): bool
|
||||
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
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
# defcompile
|
||||
Vendored
+19
-10
@@ -2,7 +2,7 @@ vim9script
|
||||
|
||||
# Language: Vim script
|
||||
# Maintainer: github user lacygoill
|
||||
# Last Change: 2023 Jun 29
|
||||
# Last Change: 2023 Feb 01
|
||||
|
||||
# NOTE: Whenever you change the code, make sure the tests are still passing:
|
||||
#
|
||||
@@ -112,6 +112,10 @@ const DICT_KEY: string = '^\s*\%('
|
||||
.. '\)'
|
||||
.. ':\%(\s\|$\)'
|
||||
|
||||
# NOT_A_DICT_KEY {{{3
|
||||
|
||||
const NOT_A_DICT_KEY: string = ':\@!'
|
||||
|
||||
# END_OF_COMMAND {{{3
|
||||
|
||||
const END_OF_COMMAND: string = $'\s*\%($\|||\@!\|{INLINE_COMMENT}\)'
|
||||
@@ -193,13 +197,13 @@ patterns =<< trim eval END
|
||||
ldo\=\>!\=
|
||||
tabdo\=\>
|
||||
windo\>
|
||||
au\%[tocmd]\>!\=.*
|
||||
com\%[mand]\>!\=.*
|
||||
au\%[tocmd]\>.*
|
||||
com\%[mand]\>.*
|
||||
g\%[lobal]!\={PATTERN_DELIMITER}.*
|
||||
v\%[global]!\={PATTERN_DELIMITER}.*
|
||||
END
|
||||
|
||||
const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\)\%(\s\|$\)\@='
|
||||
const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\){NOT_A_DICT_KEY}'
|
||||
|
||||
# START_MIDDLE_END {{{3
|
||||
|
||||
@@ -250,7 +254,7 @@ START_MIDDLE_END = START_MIDDLE_END
|
||||
kwds->map((_, kwd: string) => kwd == ''
|
||||
? ''
|
||||
: $'\%(^\|{BAR_SEPARATION}\|\<sil\%[ent]\|{HIGHER_ORDER_COMMAND}\)\s*'
|
||||
.. $'\<\%({kwd}\)\>\%(\s\|$\|!\)\@=\%(\s*{OPERATOR}\)\@!'))
|
||||
.. $'\<\%({kwd}\)\>\%(\s*{OPERATOR}\)\@!'))
|
||||
|
||||
lockvar! START_MIDDLE_END
|
||||
|
||||
@@ -275,7 +279,7 @@ patterns = BLOCKS
|
||||
|
||||
const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}'
|
||||
.. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}'
|
||||
.. $'\|^\s*elseif\=\>\%(\s\|$\)\@=\%(\s*{OPERATOR}\)\@!'
|
||||
.. $'\|^\s*elseif\=\>\%({OPERATOR}\)\@!'
|
||||
|
||||
# STARTS_NAMED_BLOCK {{{3
|
||||
|
||||
@@ -292,7 +296,7 @@ patterns = []
|
||||
endfor
|
||||
}
|
||||
|
||||
const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>\%(\s\|$\|!\)\@='
|
||||
const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>{NOT_A_DICT_KEY}'
|
||||
|
||||
# STARTS_CURLY_BLOCK {{{3
|
||||
|
||||
@@ -308,7 +312,7 @@ const STARTS_CURLY_BLOCK: string = '\%('
|
||||
|
||||
# STARTS_FUNCTION {{{3
|
||||
|
||||
const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>!\=\s\@='
|
||||
const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>{NOT_A_DICT_KEY}'
|
||||
|
||||
# ENDS_FUNCTION {{{3
|
||||
|
||||
@@ -1117,8 +1121,13 @@ def Is_IN_KeywordForLoop(line_1: string, line_2: string): bool # {{{3
|
||||
enddef
|
||||
|
||||
def InCommentOrString(): bool # {{{3
|
||||
return synstack('.', col('.'))
|
||||
->indexof((_, id: number): bool => synIDattr(id, 'name') =~ '\ccomment\|string\|heredoc') >= 0
|
||||
for synID: number in synstack('.', col('.'))
|
||||
if synIDattr(synID, 'name') =~ '\ccomment\|string\|heredoc'
|
||||
return true
|
||||
endif
|
||||
endfor
|
||||
|
||||
return false
|
||||
enddef
|
||||
|
||||
def AlsoClosesBlock(line_B: dict<any>): bool # {{{3
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
" Vim autoload file for editing compressed files.
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Sep 28
|
||||
|
||||
" These functions are used by the gzip plugin.
|
||||
|
||||
@@ -10,17 +9,12 @@
|
||||
fun s:check(cmd)
|
||||
let name = substitute(a:cmd, '\(\S*\).*', '\1', '')
|
||||
if !exists("s:have_" . name)
|
||||
" safety check, don't execute anything from the current directory
|
||||
let f = dist#vim#IsSafeExecutable('gzip', name)
|
||||
if !f
|
||||
echoerr "Warning: NOT executing " .. name .. " from current directory!"
|
||||
endif
|
||||
let e = executable(name)
|
||||
if e < 0
|
||||
let r = system(name . " --version")
|
||||
let e = (r !~ "not found" && r != "")
|
||||
endif
|
||||
exe "let s:have_" . name . "=" . (e && f)
|
||||
exe "let s:have_" . name . "=" . e
|
||||
endif
|
||||
exe "return s:have_" . name
|
||||
endfun
|
||||
|
||||
@@ -156,8 +156,8 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
\ 'text', 'vLink']
|
||||
let bodys = bodyprop
|
||||
" Document - document.
|
||||
let docuprop = ['anchors', 'applets', 'body', 'characterSet', 'childNodes',
|
||||
\ 'doctype', 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms',
|
||||
let docuprop = ['anchors', 'body', 'characterSet', 'doctype',
|
||||
\ 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms',
|
||||
\ 'head', 'hidden', 'images', 'implementation', 'lastStyleSheetSet',
|
||||
\ 'links', 'plugins', 'preferredStyleSheetSet', 'scripts',
|
||||
\ 'scrollingElement', 'selectedStyleSheetSet', 'styleSheetSets',
|
||||
@@ -171,7 +171,7 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
\ 'createEvent', 'createExpression', 'createNSResolver',
|
||||
\ 'createNodeIterator', 'createProcessingInstruction', 'createRange',
|
||||
\ 'createTextNode', 'createTouchList', 'createTreeWalker',
|
||||
\ 'enableStyleSheetsForSet', 'evaluate', 'focus',
|
||||
\ 'enableStyleSheetsForSet', 'evaluate', 'focus', 'getElementById',
|
||||
\ 'getElementById', 'getElementsByClassName', 'getElementsByName',
|
||||
\ 'getElementsByTagName', 'getElementsByTagNameNS',
|
||||
\ 'hasStorageAccess', 'importNode', 'onClick', 'onDblClick',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
vim9script
|
||||
# Support scripts for MacVim-specific functionality
|
||||
# Maintainer: Yee Cheng Chin (macvim-dev@macvim.org)
|
||||
# Last Change: 2023-03-15
|
||||
# Last Change: 2022-10-14
|
||||
|
||||
# Retrieves the text under the selection, without polluting the registers.
|
||||
# This is easier if we could yank, but we don't know what the user has been
|
||||
@@ -76,56 +76,4 @@ export def ShowDefinitionUnderCursor()
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Print functionality. We simply show the file in Preview and let the user
|
||||
# decide what to do. This allows for more control instead of immediately
|
||||
# piping the file to lpr which will actually print the file.
|
||||
#
|
||||
# PreviewConvertPostScript:
|
||||
# Convert the provided PostScript file to PDF, then show in Preview. This is
|
||||
# necessary in macOS 13+ as Preview doesn't support .ps files anymore.
|
||||
# PreviewPostScript:
|
||||
# Directly open PostScript file in Preview. Can use this if
|
||||
# PreviewConvertPostScript doesn't work.
|
||||
export def PreviewConvertPostScript(deltimer = 10000): number
|
||||
# Convert PS to PDF because Preview can't use PS files in macOS 13+
|
||||
if executable('/usr/bin/pstopdf')
|
||||
system($"/usr/bin/pstopdf {v:fname_in} -o {v:fname_in}.pdf")
|
||||
else
|
||||
# Starting in macOS 14, pstopdf is no longer bundled. We just require the
|
||||
# user to install ps2pdf as it's the simplest solution for a relatively
|
||||
# niche feature today (printing).
|
||||
if executable('ps2pdf')
|
||||
system($"ps2pdf {v:fname_in} {v:fname_in}.pdf")
|
||||
else
|
||||
echoerr 'Cannot find ps2pdf. You can install it by installing Ghostscript. This is necessary in macOS 14+ for printing to work.'
|
||||
return 1
|
||||
endif
|
||||
endif
|
||||
if v:shell_error != 0
|
||||
return v:shell_error
|
||||
endif
|
||||
system($"open -a Preview {v:fname_in}.pdf")
|
||||
delete(v:fname_in)
|
||||
|
||||
# Delete the file after it's opened in Preview for privacy. We don't have an
|
||||
# easy way to detect that Preview has opened the file already, so we just
|
||||
# use a generous 10 secs timer.
|
||||
# Note that we can't use `open -W` instead because 1) it will block
|
||||
# synchronously, and 2) it will only return if Preview.app has closed, which
|
||||
# may not happen for a while if it has other unrelated documents opened.
|
||||
var to_delete_file = $"{v:fname_in}.pdf"
|
||||
timer_start(deltimer, (timer) => delete(to_delete_file))
|
||||
|
||||
return v:shell_error
|
||||
enddef
|
||||
|
||||
export def PreviewPostScript(deltimer = 10000): number
|
||||
system($"open -a Preview {v:fname_in}")
|
||||
|
||||
var to_delete_file = v:fname_in
|
||||
timer_start(deltimer, (timer) => delete(to_delete_file))
|
||||
|
||||
return v:shell_error
|
||||
enddef
|
||||
|
||||
# vim: set sw=2 ts=2 et :
|
||||
|
||||
+96
-234
@@ -1,10 +1,7 @@
|
||||
" netrw.vim: Handles file transfer and remote directory listing across
|
||||
" AUTOLOAD SECTION
|
||||
" Date: May 03, 2023
|
||||
" Version: 173a
|
||||
" Last Change:
|
||||
" 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a)
|
||||
" 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a)
|
||||
" Date: Aug 16, 2021
|
||||
" Version: 171
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||
@@ -46,7 +43,7 @@ if exists("s:needspatches")
|
||||
endfor
|
||||
endif
|
||||
|
||||
let g:loaded_netrw = "v173"
|
||||
let g:loaded_netrw = "v171"
|
||||
if !exists("s:NOTE")
|
||||
let s:NOTE = 0
|
||||
let s:WARNING = 1
|
||||
@@ -211,6 +208,7 @@ let g:netrw_localcopycmdopt = ""
|
||||
let g:netrw_localcopydircmdopt = ""
|
||||
let g:netrw_localmkdiropt = ""
|
||||
let g:netrw_localmovecmdopt = ""
|
||||
let g:netrw_localrmdiropt = ""
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Default values for netrw's global protocol variables {{{2
|
||||
@@ -403,7 +401,7 @@ if !exists("g:netrw_localcopycmd")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_localcopycmd= "cp"
|
||||
else
|
||||
let g:netrw_localcopycmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localcopycmd = expand("$COMSPEC")
|
||||
let g:netrw_localcopycmdopt= " /c copy"
|
||||
endif
|
||||
elseif has("unix") || has("macunix")
|
||||
@@ -418,7 +416,7 @@ if !exists("g:netrw_localcopydircmd")
|
||||
let g:netrw_localcopydircmd = "cp"
|
||||
let g:netrw_localcopydircmdopt= " -R"
|
||||
else
|
||||
let g:netrw_localcopydircmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localcopydircmd = expand("$COMSPEC")
|
||||
let g:netrw_localcopydircmdopt= " /c xcopy /e /c /h /i /k"
|
||||
endif
|
||||
elseif has("unix")
|
||||
@@ -439,7 +437,7 @@ if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if g:netrw_cygwin
|
||||
call s:NetrwInit("g:netrw_localmkdir","mkdir")
|
||||
else
|
||||
let g:netrw_localmkdir = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localmkdir = expand("$COMSPEC")
|
||||
let g:netrw_localmkdiropt= " /c mkdir"
|
||||
endif
|
||||
else
|
||||
@@ -455,7 +453,7 @@ if !exists("g:netrw_localmovecmd")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_localmovecmd= "mv"
|
||||
else
|
||||
let g:netrw_localmovecmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localmovecmd = expand("$COMSPEC")
|
||||
let g:netrw_localmovecmdopt= " /c move"
|
||||
endif
|
||||
elseif has("unix") || has("macunix")
|
||||
@@ -1169,6 +1167,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
2match none
|
||||
if exists("s:explore_match") | unlet s:explore_match | endif
|
||||
if exists("s:explore_prvdir") | unlet s:explore_prvdir | endif
|
||||
echo " "
|
||||
" call Decho("cleared explore match list",'~'.expand("<slnum>"))
|
||||
endif
|
||||
|
||||
@@ -1187,11 +1186,6 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" netrw#Lexplore: toggle Explorer window, keeping it on the left of the current tab {{{2
|
||||
" Uses g:netrw_chgwin : specifies the window where Lexplore files are to be opened
|
||||
" t:netrw_lexposn : winsaveview() output (used on Lexplore window)
|
||||
" t:netrw_lexbufnr: the buffer number of the Lexplore buffer (internal to this function)
|
||||
" s:lexplore_win : window number of Lexplore window (serves to indicate which window is a Lexplore window)
|
||||
" w:lexplore_buf : buffer number of Lexplore window (serves to indicate which window is a Lexplore window)
|
||||
fun! netrw#Lexplore(count,rightside,...)
|
||||
" call Dfunc("netrw#Lexplore(count=".a:count." rightside=".a:rightside.",...) a:0=".a:0." ft=".&ft)
|
||||
let curwin= winnr()
|
||||
@@ -1208,8 +1202,6 @@ fun! netrw#Lexplore(count,rightside,...)
|
||||
" call Decho("exe Explore ".fnameescape(a:1),'~'.expand("<slnum>"))
|
||||
exe "Explore ".fnameescape(a1)
|
||||
exe curwin."wincmd w"
|
||||
let s:lexplore_win= curwin
|
||||
let w:lexplore_buf= bufnr("%")
|
||||
if exists("t:netrw_lexposn")
|
||||
" call Decho("forgetting t:netrw_lexposn",'~'.expand("<slnum>"))
|
||||
unlet t:netrw_lexposn
|
||||
@@ -1284,7 +1276,7 @@ fun! netrw#Lexplore(count,rightside,...)
|
||||
let t:netrw_lexbufnr = bufnr("%")
|
||||
" done to prevent build-up of hidden buffers due to quitting and re-invocation of :Lexplore.
|
||||
" Since the intended use of :Lexplore is to have an always-present explorer window, the extra
|
||||
" effort to prevent mis-use of :Lex is warranted.
|
||||
" effort to mis-use :Lex is warranted.
|
||||
set bh=wipe
|
||||
" call Decho("let t:netrw_lexbufnr=".t:netrw_lexbufnr)
|
||||
" call Decho("t:netrw_lexposn".(exists("t:netrw_lexposn")? string(t:netrw_lexposn) : " n/a"))
|
||||
@@ -1688,7 +1680,7 @@ fun! s:NetrwOptionsSave(vt)
|
||||
endif
|
||||
let {a:vt}netrw_fokeep = &l:fo " formatoptions
|
||||
let {a:vt}netrw_gdkeep = &l:gd " gdefault
|
||||
let {a:vt}netrw_gokeep = &go " guioptions
|
||||
let {a:vt}netrw_gokeep = &l:go " guioptions
|
||||
let {a:vt}netrw_hidkeep = &l:hidden
|
||||
let {a:vt}netrw_imkeep = &l:im
|
||||
let {a:vt}netrw_iskkeep = &l:isk
|
||||
@@ -1759,9 +1751,8 @@ fun! s:NetrwOptionsSafe(islocal)
|
||||
if &cpo =~ 'a' | call s:NetrwSetSafeSetting("&cpo",substitute(&cpo,'a','','g')) | endif
|
||||
if &cpo =~ 'A' | call s:NetrwSetSafeSetting("&cpo",substitute(&cpo,'A','','g')) | endif
|
||||
setl fo=nroql2
|
||||
if &go =~ 'a' | set go-=a | endif
|
||||
if &go =~ 'A' | set go-=A | endif
|
||||
if &go =~ 'P' | set go-=P | endif
|
||||
" call s:NetrwSetSafeSetting("&go","begmr")
|
||||
if &go =~ '\ca' | call s:NetrwSetSafeSetting("&go",substitute(&go,'\ca','','g')) | endif
|
||||
call s:NetrwSetSafeSetting("&l:hid",0)
|
||||
call s:NetrwSetSafeSetting("&l:im",0)
|
||||
setl isk+=@ isk+=* isk+=/
|
||||
@@ -1800,13 +1791,11 @@ fun! s:NetrwOptionsRestore(vt)
|
||||
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||
if !exists("{a:vt}netrw_optionsave")
|
||||
" call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>"))
|
||||
if filereadable(expand("%"))
|
||||
if !isdirectory(expand('%'))
|
||||
" call Decho("..doing filetype detect anyway")
|
||||
filetype detect
|
||||
" call Decho("..settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||
else
|
||||
setl ft=netrw
|
||||
filetype detect
|
||||
endif
|
||||
" call Decho("..settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||
" call Decho("..ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
||||
" call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
|
||||
return
|
||||
@@ -1846,7 +1835,7 @@ fun! s:NetrwOptionsRestore(vt)
|
||||
" call Decho("(s:NetrwOptionsRestore) #4 lines=".&lines)
|
||||
call s:NetrwRestoreSetting(a:vt."netrw_fokeep" ,"&l:fo")
|
||||
call s:NetrwRestoreSetting(a:vt."netrw_gdkeep" ,"&l:gd")
|
||||
call s:NetrwRestoreSetting(a:vt."netrw_gokeep" ,"&go")
|
||||
call s:NetrwRestoreSetting(a:vt."netrw_gokeep" ,"&l:go")
|
||||
call s:NetrwRestoreSetting(a:vt."netrw_hidkeep" ,"&l:hidden")
|
||||
" call Decho("(s:NetrwOptionsRestore) #5 lines=".&lines)
|
||||
call s:NetrwRestoreSetting(a:vt."netrw_imkeep" ,"&l:im")
|
||||
@@ -1917,9 +1906,11 @@ fun! s:NetrwOptionsRestore(vt)
|
||||
" were having their filetype detect-generated settings overwritten by
|
||||
" NetrwOptionRestore.
|
||||
if &ft != "netrw"
|
||||
" call Decho("before: filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
filetype detect
|
||||
" call Decho("after : filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
if !isdirectory(expand('%'))
|
||||
" call Decho("before: filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
filetype detect
|
||||
" call Decho("after : filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
|
||||
endif
|
||||
endif
|
||||
" call Decho("(s:NetrwOptionsRestore) lines=".&lines)
|
||||
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||
@@ -1963,7 +1954,7 @@ endfun
|
||||
" Doing this means that netrw will not come up as having changed a
|
||||
" setting last when it really didn't actually change it.
|
||||
"
|
||||
" Used by s:NetrwOptionsRestore() to restore each netrw-sensitive setting
|
||||
" Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting
|
||||
" keepvars are set up by s:NetrwOptionsSave
|
||||
fun! s:NetrwRestoreSetting(keepvar,setting)
|
||||
""" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)")
|
||||
@@ -2994,19 +2985,13 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
|
||||
" rename buffer back to remote filename
|
||||
call s:NetrwBufRename(rfile)
|
||||
|
||||
" Jan 19, 2022: COMBAK -- bram problem with https://github.com/vim/vim/pull/9554.diff filetype
|
||||
" Detect filetype of local version of remote file.
|
||||
" Note that isk must not include a "/" for scripts.vim
|
||||
" to process this detection correctly.
|
||||
" call Decho("detect filetype of local version of remote file<".rfile.">",'~'.expand("<slnum>"))
|
||||
" call Decho("..did_filetype()=".did_filetype())
|
||||
" setl ft=
|
||||
" call Decho("..initial filetype<".&ft."> for buf#".bufnr()."<".bufname().">")
|
||||
let iskkeep= &isk
|
||||
" call Decho("detect filetype of local version of remote file",'~'.expand("<slnum>"))
|
||||
let iskkeep= &l:isk
|
||||
setl isk-=/
|
||||
filetype detect
|
||||
" call Decho("..local filetype<".&ft."> for buf#".bufnr()."<".bufname().">")
|
||||
let &isk= iskkeep
|
||||
let &l:isk= iskkeep
|
||||
" call Dredir("ls!","NetrwGetFile (renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">)")
|
||||
let line1 = 1
|
||||
let line2 = line("$")
|
||||
@@ -3518,11 +3503,6 @@ fun! s:NetrwBookHistHandler(chg,curdir)
|
||||
echo "bookmarked the current directory"
|
||||
endif
|
||||
|
||||
try
|
||||
call s:NetrwBookHistSave()
|
||||
catch
|
||||
endtry
|
||||
|
||||
elseif a:chg == 1
|
||||
" change to the bookmarked directory
|
||||
" call Decho("(user: <".v:count."gb>) change to the bookmarked directory",'~'.expand("<slnum>"))
|
||||
@@ -3667,11 +3647,6 @@ fun! s:NetrwBookHistHandler(chg,curdir)
|
||||
" call Decho("g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
|
||||
endif
|
||||
" call Decho("resulting g:netrw_bookmarklist=".string(g:netrw_bookmarklist),'~'.expand("<slnum>"))
|
||||
|
||||
try
|
||||
call s:NetrwBookHistSave()
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
call s:NetrwBookmarkMenu()
|
||||
call s:NetrwTgtMenu()
|
||||
@@ -4297,7 +4272,7 @@ fun! s:NetrwGetBuffer(islocal,dirname)
|
||||
endif
|
||||
" call Decho(" bufnum#".bufnum,'~'.expand("<slnum>"))
|
||||
|
||||
" highjack the current buffer
|
||||
" hijack the current buffer
|
||||
" IF the buffer already has the desired name
|
||||
" AND it is empty
|
||||
let curbuf = bufname("%")
|
||||
@@ -4305,7 +4280,7 @@ fun! s:NetrwGetBuffer(islocal,dirname)
|
||||
let curbuf = getcwd()
|
||||
endif
|
||||
" call Dredir("ls!","NetrwGetFile (renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">)")
|
||||
" call Decho("deciding if netrw may highjack the current buffer#".bufnr("%")."<".curbuf.">",'~'.expand("<slnum>"))
|
||||
" call Decho("deciding if netrw may hijack the current buffer#".bufnr("%")."<".curbuf.">",'~'.expand("<slnum>"))
|
||||
" call Decho("..dirname<".dirname."> IF dirname == bufname",'~'.expand("<slnum>"))
|
||||
" call Decho("..curbuf<".curbuf.">",'~'.expand("<slnum>"))
|
||||
" call Decho("..line($)=".line("$")." AND this is 1",'~'.expand("<slnum>"))
|
||||
@@ -4314,7 +4289,7 @@ fun! s:NetrwGetBuffer(islocal,dirname)
|
||||
" call Dret("s:NetrwGetBuffer 0<cleared buffer> : highjacking buffer#".bufnr("%"))
|
||||
return 0
|
||||
else " DEBUG
|
||||
" call Decho("..did NOT highjack buffer",'~'.expand("<slnum>"))
|
||||
" call Decho("..did NOT hijack buffer",'~'.expand("<slnum>"))
|
||||
endif
|
||||
" Aug 14, 2021: was thinking about looking for a [No Name] buffer here and using it, but that might cause problems
|
||||
|
||||
@@ -4350,25 +4325,19 @@ fun! s:NetrwGetBuffer(islocal,dirname)
|
||||
|
||||
else " Re-use the buffer
|
||||
" call Decho("--re-use buffer#".bufnum." (bufnum#".bufnum.">=0 AND bufexists(".bufnum.")=".bufexists(bufnum)."!=0)",'~'.expand("<slnum>"))
|
||||
" ignore all events
|
||||
let eikeep= &ei
|
||||
setl ei=all
|
||||
|
||||
if &ft == "netrw"
|
||||
" call Decho("buffer type is netrw; not using keepalt with b ".bufnum)
|
||||
exe "sil! NetrwKeepj noswapfile b ".bufnum
|
||||
" call Dredir("ls!","one")
|
||||
if getline(2) =~# '^" Netrw Directory Listing'
|
||||
" call Decho(" getline(2)<".getline(2).'> matches "Netrw Directory Listing" : using keepalt b '.bufnum,'~'.expand("<slnum>"))
|
||||
exe "sil! NetrwKeepj noswapfile keepalt b ".bufnum
|
||||
else
|
||||
" call Decho("buffer type is not netrw; using keepalt with b ".bufnum)
|
||||
call s:NetrwEditBuf(bufnum)
|
||||
" call Dredir("ls!","two")
|
||||
" call Decho(" getline(2)<".getline(2).'> does not match "Netrw Directory Listing" : using b '.bufnum,'~'.expand("<slnum>"))
|
||||
exe "sil! NetrwKeepj noswapfile keepalt b ".bufnum
|
||||
endif
|
||||
" call Decho(" line($)=".line("$"),'~'.expand("<slnum>"))
|
||||
if bufname("%") == '.'
|
||||
call s:NetrwBufRename(getcwd())
|
||||
endif
|
||||
|
||||
" restore ei
|
||||
let &ei= eikeep
|
||||
|
||||
if line("$") <= 1 && getline(1) == ""
|
||||
@@ -5019,7 +4988,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
|
||||
" the point where netrw actually edits the (local) file
|
||||
" if its local only: LocalBrowseCheck() doesn't edit a file, but NetrwBrowse() will
|
||||
" use keepalt to support :e # to return to a directory listing
|
||||
" no keepalt to support :e # to return to a directory listing
|
||||
if !&mod
|
||||
" if e the new file would fail due to &mod, then don't change any of the flags
|
||||
let dolockout= 1
|
||||
@@ -5030,8 +4999,12 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
" others like c-^ to return to the netrw buffer
|
||||
" Apr 30, 2020: used to have e! here. That can cause loss of a modified file,
|
||||
" so emit error E37 instead.
|
||||
call s:NetrwEditFile("e","",dirname)
|
||||
" call Decho("edit-a-file: after e ".dirname.": hidden=".&hidden." bufhidden<".&bufhidden."> mod=".&mod,'~'.expand("<slnum>"))
|
||||
if exists("g:netrw_altfile") && g:netrw_altfile
|
||||
exe "NetrwKeepj keepalt e ".fnameescape(dirname)
|
||||
else
|
||||
exe "NetrwKeepj e ".fnameescape(dirname)
|
||||
endif
|
||||
" call Decho("edit-a-file: after e! ".dirname.": hidden=".&hidden." bufhidden<".&bufhidden."> mod=".&mod,'~'.expand("<slnum>"))
|
||||
" COMBAK -- cuc cul related
|
||||
call s:NetrwCursor(1)
|
||||
if &hidden || &bufhidden == "hide"
|
||||
@@ -5315,8 +5288,7 @@ fun! s:NetrwBrowseUpDir(islocal)
|
||||
endif
|
||||
call s:RestorePosn(s:netrw_posn)
|
||||
let curdir= substitute(curdir,'^.*[\/]','','')
|
||||
let curdir= '\<'. escape(curdir, '~'). '/'
|
||||
call search(curdir,'wc')
|
||||
call search('\<'.curdir.'/','wc')
|
||||
endif
|
||||
" call Dret("s:NetrwBrowseUpDir")
|
||||
endfun
|
||||
@@ -5373,8 +5345,8 @@ fun! netrw#BrowseX(fname,remote)
|
||||
" g:Netrw_corehandler is a List of function references (see :help Funcref)
|
||||
" call Decho("g:Netrw_corehandler is a List",'~'.expand("<slnum>"))
|
||||
for Fncref in g:Netrw_corehandler
|
||||
if type(Fncref) == 2
|
||||
call Fncref(a:fname)
|
||||
if type(FncRef) == 2
|
||||
call FncRef(a:fname)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
@@ -5447,8 +5419,6 @@ fun! netrw#BrowseX(fname,remote)
|
||||
else
|
||||
let redir= &srr . "/dev/null"
|
||||
endif
|
||||
else
|
||||
let redir= ""
|
||||
endif
|
||||
" call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>"))
|
||||
|
||||
@@ -5565,7 +5535,7 @@ fun! netrw#BrowseX(fname,remote)
|
||||
" cleanup: remove temporary file,
|
||||
" delete current buffer if success with handler,
|
||||
" return to prior buffer (directory listing)
|
||||
" Feb 12, 2008: had to de-activate removal of
|
||||
" Feb 12, 2008: had to de-activiate removal of
|
||||
" temporary file because it wasn't getting seen.
|
||||
" if remote == 1 && fname != a:fname
|
||||
"" call Decho("deleting temporary file<".fname.">",'~'.expand("<slnum>"))
|
||||
@@ -5733,38 +5703,11 @@ fun! s:NetrwClearExplore()
|
||||
if exists("w:netrw_explore_list") |unlet w:netrw_explore_list |endif
|
||||
if exists("w:netrw_explore_bufnr") |unlet w:netrw_explore_bufnr |endif
|
||||
" redraw!
|
||||
echo " "
|
||||
echo " "
|
||||
" call Dret("s:NetrwClearExplore")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwEditBuf: decides whether or not to use keepalt to edit a buffer {{{2
|
||||
fun! s:NetrwEditBuf(bufnum)
|
||||
" call Dfunc("s:NetrwEditBuf(fname<".a:bufnum.">)")
|
||||
if exists("g:netrw_altfile") && g:netrw_altfile && &ft == "netrw"
|
||||
" call Decho("exe sil! NetrwKeepj keepalt noswapfile b ".fnameescape(a:bufnum))
|
||||
exe "sil! NetrwKeepj keepalt noswapfile b ".fnameescape(a:bufnum)
|
||||
else
|
||||
" call Decho("exe sil! NetrwKeepj noswapfile b ".fnameescape(a:bufnum))
|
||||
exe "sil! NetrwKeepj noswapfile b ".fnameescape(a:bufnum)
|
||||
endif
|
||||
" call Dret("s:NetrwEditBuf")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwEditFile: decides whether or not to use keepalt to edit a file {{{2
|
||||
" NetrwKeepj [keepalt] <OPT> <CMD> <FILENAME>
|
||||
fun! s:NetrwEditFile(cmd,opt,fname)
|
||||
" call Dfunc("s:NetrwEditFile(cmd<".a:cmd.">,opt<".a:opt.">,fname<".a:fname.">) ft<".&ft.">")
|
||||
if exists("g:netrw_altfile") && g:netrw_altfile && &ft == "netrw"
|
||||
" call Decho("exe NetrwKeepj keepalt ".a:opt." ".a:cmd." ".fnameescape(a:fname))
|
||||
exe "NetrwKeepj keepalt ".a:opt." ".a:cmd." ".fnameescape(a:fname)
|
||||
else
|
||||
" call Decho("exe NetrwKeepj ".a:opt." ".a:cmd." ".fnameescape(a:fname))
|
||||
exe "NetrwKeepj ".a:opt." ".a:cmd." ".fnameescape(a:fname)
|
||||
endif
|
||||
" call Dret("s:NetrwEditFile")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwExploreListUniq: {{{2
|
||||
fun! s:NetrwExploreListUniq(explist)
|
||||
@@ -7393,7 +7336,8 @@ fun! s:NetrwMarkFileDiff(islocal)
|
||||
exe "NetrwKeepj e ".fnameescape(fname)
|
||||
diffthis
|
||||
elseif cnt == 2 || cnt == 3
|
||||
below vsplit
|
||||
vsplit
|
||||
wincmd l
|
||||
" call Decho("diffthis: ".fname,'~'.expand("<slnum>"))
|
||||
exe "NetrwKeepj e ".fnameescape(fname)
|
||||
diffthis
|
||||
@@ -7870,16 +7814,8 @@ fun! s:NetrwMarkFileMove(islocal)
|
||||
" call Decho("movecmd<".movecmd."> (#3 linux or cygwin)",'~'.expand("<slnum>"))
|
||||
endif
|
||||
for fname in s:netrwmarkfilelist_{bufnr("%")}
|
||||
if g:netrw_keepdir
|
||||
" Jul 19, 2022: fixing file move when g:netrw_keepdir is 1
|
||||
let fname= b:netrw_curdir."/".fname
|
||||
endif
|
||||
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
|
||||
let fname= substitute(fname,'/','\\','g')
|
||||
if g:netrw_keepdir
|
||||
" Jul 19, 2022: fixing file move when g:netrw_keepdir is 1
|
||||
let fname= b:netrw_curdir."\\".fname
|
||||
endif
|
||||
endif
|
||||
" call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("<slnum>"))
|
||||
let ret= system(movecmd.g:netrw_localmovecmdopt." ".s:ShellEscape(fname)." ".tgt)
|
||||
@@ -8637,28 +8573,21 @@ endfun
|
||||
" choice = 2 : didn't save modified file, opened window
|
||||
" choice = 3 : cancel open
|
||||
fun! s:NetrwPrevWinOpen(islocal)
|
||||
" call Dfunc("s:NetrwPrevWinOpen(islocal=".a:islocal.") win#".winnr())
|
||||
" call Dfunc("s:NetrwPrevWinOpen(islocal=".a:islocal.")")
|
||||
|
||||
let ykeep= @@
|
||||
" grab a copy of the b:netrw_curdir to pass it along to newly split windows
|
||||
let curdir = b:netrw_curdir
|
||||
" call Decho("COMBAK#1: mod=".&mod." win#".winnr())
|
||||
|
||||
" get last window number and the word currently under the cursor
|
||||
let origwin = winnr()
|
||||
let lastwinnr = winnr("$")
|
||||
" call Decho("origwin#".origwin." lastwinnr#".lastwinnr)
|
||||
" call Decho("COMBAK#2: mod=".&mod." win#".winnr())
|
||||
let curword = s:NetrwGetWord()
|
||||
let choice = 0
|
||||
let s:prevwinopen= 1 " lets s:NetrwTreeDir() know that NetrwPrevWinOpen called it (s:NetrwTreeDir() will unlet s:prevwinopen)
|
||||
" call Decho("COMBAK#3: mod=".&mod." win#".winnr())
|
||||
let curword = s:NetrwGetWord()
|
||||
let choice = 0
|
||||
let s:prevwinopen= 1 " lets s:NetrwTreeDir() know that NetrwPrevWinOpen called it
|
||||
let s:treedir = s:NetrwTreeDir(a:islocal)
|
||||
" call Decho("COMBAK#4: mod=".&mod." win#".winnr())
|
||||
let curdir = s:treedir
|
||||
" call Decho("COMBAK#5: mod=".&mod." win#".winnr())
|
||||
" call Decho("winnr($)#".lastwinnr." curword<".curword.">",'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#6: mod=".&mod." win#".winnr())
|
||||
|
||||
let didsplit = 0
|
||||
if lastwinnr == 1
|
||||
@@ -8681,26 +8610,11 @@ fun! s:NetrwPrevWinOpen(islocal)
|
||||
" call Decho("did split",'~'.expand("<slnum>"))
|
||||
|
||||
else
|
||||
" call Decho("COMBAK#7: mod=".&mod." win#".winnr())
|
||||
NetrwKeepj call s:SaveBufVars()
|
||||
" call Decho("COMBAK#8: mod=".&mod." win#".winnr())
|
||||
let eikeep= &ei
|
||||
" call Decho("COMBAK#9: mod=".&mod." win#".winnr())
|
||||
setl ei=all
|
||||
" call Decho("COMBAK#10: mod=".&mod." win#".winnr())
|
||||
wincmd p
|
||||
" call Decho("COMBAK#11: mod=".&mod)
|
||||
" call Decho("wincmd p (now in win#".winnr().") curdir<".curdir.">",'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#12: mod=".&mod)
|
||||
|
||||
if exists("s:lexplore_win") && s:lexplore_win == winnr()
|
||||
" whoops -- user trying to open file in the Lexplore window.
|
||||
" Use Lexplore's opening-file window instead.
|
||||
" call Decho("whoops -- user trying to open file in Lexplore Window. Use win#".g:netrw_chgwin." instead")
|
||||
" exe g:netrw_chgwin."wincmd w"
|
||||
wincmd p
|
||||
call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,s:NetrwGetWord()))
|
||||
endif
|
||||
|
||||
" prevwinnr: the window number of the "prev" window
|
||||
" prevbufnr: the buffer number of the buffer in the "prev" window
|
||||
@@ -8710,10 +8624,8 @@ fun! s:NetrwPrevWinOpen(islocal)
|
||||
let prevbufname = bufname("%")
|
||||
let prevmod = &mod
|
||||
let bnrcnt = 0
|
||||
" call Decho("COMBAK#13: mod=".&mod." win#".winnr())
|
||||
NetrwKeepj call s:RestoreBufVars()
|
||||
" call Decho("after wincmd p: win#".winnr()." win($)#".winnr("$")." origwin#".origwin." &mod=".&mod." bufname(%)<".bufname("%")."> prevbufnr=".prevbufnr,'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#14: mod=".&mod." win#".winnr())
|
||||
|
||||
" if the previous window's buffer has been changed (ie. its modified flag is set),
|
||||
" and it doesn't appear in any other extant window, then ask the
|
||||
@@ -8723,7 +8635,6 @@ fun! s:NetrwPrevWinOpen(islocal)
|
||||
windo if winbufnr(0) == prevbufnr | let bnrcnt=bnrcnt+1 | endif
|
||||
" call Decho("prevbufnr=".prevbufnr." bnrcnt=".bnrcnt." buftype=".&bt." winnr()=".winnr()." prevwinnr#".prevwinnr,'~'.expand("<slnum>"))
|
||||
exe prevwinnr."wincmd w"
|
||||
" call Decho("COMBAK#15: mod=".&mod." win#".winnr())
|
||||
|
||||
if bnrcnt == 1 && &hidden == 0
|
||||
" only one copy of the modified buffer in a window, and
|
||||
@@ -8731,7 +8642,6 @@ fun! s:NetrwPrevWinOpen(islocal)
|
||||
let choice = confirm("Save modified buffer<".prevbufname."> first?","&Yes\n&No\n&Cancel")
|
||||
" call Decho("prevbufname<".prevbufname."> choice=".choice." current-winnr#".winnr(),'~'.expand("<slnum>"))
|
||||
let &ei= eikeep
|
||||
" call Decho("COMBAK#16: mod=".&mod." win#".winnr())
|
||||
|
||||
if choice == 1
|
||||
" Yes -- write file & then browse
|
||||
@@ -8764,7 +8674,6 @@ fun! s:NetrwPrevWinOpen(islocal)
|
||||
endif
|
||||
let &ei= eikeep
|
||||
endif
|
||||
" call Decho("COMBAK#17: mod=".&mod." win#".winnr())
|
||||
|
||||
" restore b:netrw_curdir (window split/enew may have lost it)
|
||||
let b:netrw_curdir= curdir
|
||||
@@ -9452,23 +9361,19 @@ fun! s:NetrwTreeDir(islocal)
|
||||
if exists("s:prevwinopen")
|
||||
unlet s:prevwinopen
|
||||
endif
|
||||
" call Decho("COMBAK#18 : mod=".&mod." win#".winnr())
|
||||
|
||||
if !exists("b:netrw_curdir") || b:netrw_curdir == ""
|
||||
let b:netrw_curdir= getcwd()
|
||||
endif
|
||||
let treedir = b:netrw_curdir
|
||||
" call Decho("set initial treedir<".treedir.">",'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#19 : mod=".&mod." win#".winnr())
|
||||
|
||||
let s:treecurpos= winsaveview()
|
||||
" call Decho("saving posn to s:treecurpos<".string(s:treecurpos).">",'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#20 : mod=".&mod." win#".winnr())
|
||||
|
||||
if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
|
||||
" call Decho("w:netrw_liststyle is TREELIST:",'~'.expand("<slnum>"))
|
||||
" call Decho("line#".line(".")." getline(.)<".getline('.')."> treecurpos<".string(s:treecurpos).">",'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#21 : mod=".&mod." win#".winnr())
|
||||
|
||||
" extract tree directory if on a line specifying a subdirectory (ie. ends with "/")
|
||||
let curline= substitute(getline('.'),"\t -->.*$",'','')
|
||||
@@ -9484,7 +9389,6 @@ fun! s:NetrwTreeDir(islocal)
|
||||
" call Decho("do not extract tree subdirectory from current line and set treedir to empty",'~'.expand("<slnum>"))
|
||||
let treedir= ""
|
||||
endif
|
||||
" call Decho("COMBAK#22 : mod=".&mod." win#".winnr())
|
||||
|
||||
" detect user attempting to close treeroot
|
||||
" call Decho("check if user is attempting to close treeroot",'~'.expand("<slnum>"))
|
||||
@@ -9500,12 +9404,10 @@ fun! s:NetrwTreeDir(islocal)
|
||||
" else " Decho
|
||||
" call Decho(".user not attempting to close treeroot",'~'.expand("<slnum>"))
|
||||
endif
|
||||
" call Decho("COMBAK#23 : mod=".&mod." win#".winnr())
|
||||
|
||||
" call Decho("islocal=".a:islocal." curline<".curline.">",'~'.expand("<slnum>"))
|
||||
let potentialdir= s:NetrwFile(substitute(curline,'^'.s:treedepthstring.'\+ \(.*\)@$','\1',''))
|
||||
" call Decho("potentialdir<".potentialdir."> isdir=".isdirectory(potentialdir),'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#24 : mod=".&mod." win#".winnr())
|
||||
|
||||
" COMBAK: a symbolic link may point anywhere -- so it will be used to start a new treetop
|
||||
" if a:islocal && curline =~ '@$' && isdirectory(s:NetrwFile(potentialdir))
|
||||
@@ -9519,12 +9421,10 @@ fun! s:NetrwTreeDir(islocal)
|
||||
let treedir = s:NetrwTreePath(w:netrw_treetop)
|
||||
" endif
|
||||
endif
|
||||
" call Decho("COMBAK#25 : mod=".&mod." win#".winnr())
|
||||
|
||||
" sanity maintenance: keep those //s away...
|
||||
let treedir= substitute(treedir,'//$','/','')
|
||||
" call Decho("treedir<".treedir.">",'~'.expand("<slnum>"))
|
||||
" call Decho("COMBAK#26 : mod=".&mod." win#".winnr())
|
||||
|
||||
" call Dret("s:NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".(exists("s:treecurpos")? string(s:treecurpos) : 'n/a').">")
|
||||
return treedir
|
||||
@@ -10381,7 +10281,7 @@ fun! s:NetrwRemoteListing()
|
||||
let w:netrw_bannercnt= s:bannercnt
|
||||
endif
|
||||
if !exists("w:netrw_bannercnt") && exists("b:bannercnt")
|
||||
let w:netrw_bannercnt= b:bannercnt
|
||||
let w:netrw_bannercnt= s:bannercnt
|
||||
endif
|
||||
|
||||
call s:RemotePathAnalysis(b:netrw_curdir)
|
||||
@@ -10895,8 +10795,7 @@ fun! netrw#LocalBrowseCheck(dirname)
|
||||
" call Dfunc("netrw#LocalBrowseCheck(dirname<".a:dirname.">)")
|
||||
" call Decho("isdir<".a:dirname."> =".isdirectory(s:NetrwFile(a:dirname)).((exists("s:treeforceredraw")? " treeforceredraw" : "")).'~'.expand("<slnum>"))
|
||||
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>"))
|
||||
" getting E930: Cannot use :redir inside execute
|
||||
"" call Dredir("ls!","netrw#LocalBrowseCheck")
|
||||
" call Dredir("ls!","netrw#LocalBrowseCheck")
|
||||
" call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
|
||||
" call Decho("current buffer#".bufnr("%")."<".bufname("%")."> ft=".&ft,'~'.expand("<slnum>"))
|
||||
|
||||
@@ -10963,10 +10862,6 @@ fun! s:LocalBrowseRefresh()
|
||||
" call Dret("s:LocalBrowseRefresh : don't refresh when focus not on netrw window")
|
||||
return
|
||||
endif
|
||||
if !empty(getcmdwintype())
|
||||
" cannot move away from cmdline window, see :h E11
|
||||
return
|
||||
endif
|
||||
if exists("s:netrw_events") && s:netrw_events == 1
|
||||
" s:LocalFastBrowser gets called (indirectly) from a
|
||||
let s:netrw_events= 2
|
||||
@@ -11193,16 +11088,13 @@ fun! s:LocalListing()
|
||||
" call Decho("pfile <".pfile.">",'~'.expand("<slnum>"))
|
||||
|
||||
if w:netrw_liststyle == s:LONGLIST
|
||||
let longfile= printf("%-".g:netrw_maxfilenamelen."S",pfile)
|
||||
let sz = getfsize(filename)
|
||||
let szlen = 15 - (strdisplaywidth(longfile) - g:netrw_maxfilenamelen)
|
||||
let szlen = (szlen > 0) ? szlen : 0
|
||||
|
||||
let fsz = strpart(" ",1,15-strlen(sz)).sz
|
||||
if g:netrw_sizestyle =~# "[hH]"
|
||||
let sz= s:NetrwHumanReadable(sz)
|
||||
endif
|
||||
let fsz = printf("%".szlen."S",sz)
|
||||
let pfile = longfile." ".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
|
||||
let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile)
|
||||
let pfile = longfile.sz." ".strftime(g:netrw_timefmt,getftime(filename))
|
||||
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
|
||||
endif
|
||||
|
||||
@@ -11212,7 +11104,7 @@ fun! s:LocalListing()
|
||||
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (time)")
|
||||
" call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
|
||||
let t = getftime(filename)
|
||||
let ft = printf("%018d",t)
|
||||
let ft = strpart("000000000000000000",1,18-strlen(t)).t
|
||||
" call Decho("exe NetrwKeepj put ='".ft.'/'.pfile."'",'~'.expand("<slnum>"))
|
||||
let ftpfile= ft.'/'.pfile
|
||||
sil! NetrwKeepj put=ftpfile
|
||||
@@ -11222,7 +11114,10 @@ fun! s:LocalListing()
|
||||
" call Decho("implementing g:netrw_sort_by=".g:netrw_sort_by." (size)")
|
||||
" call Decho("getfsize(".filename.")=".getfsize(filename),'~'.expand("<slnum>"))
|
||||
let sz = getfsize(filename)
|
||||
let fsz = printf("%018d",sz)
|
||||
if g:netrw_sizestyle =~# "[hH]"
|
||||
let sz= s:NetrwHumanReadable(sz)
|
||||
endif
|
||||
let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz
|
||||
" call Decho("exe NetrwKeepj put ='".fsz.'/'.filename."'",'~'.expand("<slnum>"))
|
||||
let fszpfile= fsz.'/'.pfile
|
||||
sil! NetrwKeepj put =fszpfile
|
||||
@@ -11279,10 +11174,6 @@ endfun
|
||||
fun! s:NetrwLocalRename(path) range
|
||||
" call Dfunc("NetrwLocalRename(path<".a:path.">)")
|
||||
|
||||
if !exists("w:netrw_bannercnt")
|
||||
let w:netrw_bannercnt= b:netrw_bannercnt
|
||||
endif
|
||||
|
||||
" preparation for removing multiple files/directories
|
||||
let ykeep = @@
|
||||
let ctr = a:firstline
|
||||
@@ -11384,10 +11275,6 @@ fun! s:NetrwLocalRm(path) range
|
||||
" call Dfunc("s:NetrwLocalRm(path<".a:path.">)")
|
||||
" call Decho("firstline=".a:firstline." lastline=".a:lastline,'~'.expand("<slnum>"))
|
||||
|
||||
if !exists("w:netrw_bannercnt")
|
||||
let w:netrw_bannercnt= b:netrw_bannercnt
|
||||
endif
|
||||
|
||||
" preparation for removing multiple files/directories
|
||||
let ykeep = @@
|
||||
let ret = 0
|
||||
@@ -11506,8 +11393,34 @@ fun! s:NetrwLocalRmFile(path,fname,all)
|
||||
let rmfile= substitute(rmfile,'[\/]$','','e')
|
||||
|
||||
if all || ok =~# 'y\%[es]' || ok == ""
|
||||
if delete(rmfile,"d")
|
||||
call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".rmfile.">!",103)
|
||||
if v:version < 704 || (v:version == 704 && !has("patch1107"))
|
||||
" " call Decho("1st attempt: system(netrw#WinPath(".g:netrw_localrmdir.') '.s:ShellEscape(rmfile).')','~'.expand("<slnum>"))
|
||||
call system(netrw#WinPath(g:netrw_localrmdir).' '.s:ShellEscape(rmfile))
|
||||
" " call Decho("v:shell_error=".v:shell_error,'~'.expand("<slnum>"))
|
||||
|
||||
if v:shell_error != 0
|
||||
" " call Decho("2nd attempt to remove directory<".rmfile.">",'~'.expand("<slnum>"))
|
||||
let errcode= s:NetrwDelete(rmfile)
|
||||
" " call Decho("errcode=".errcode,'~'.expand("<slnum>"))
|
||||
|
||||
if errcode != 0
|
||||
if has("unix")
|
||||
" " call Decho("3rd attempt to remove directory<".rmfile.">",'~'.expand("<slnum>"))
|
||||
call system("rm ".s:ShellEscape(rmfile))
|
||||
if v:shell_error != 0 && !exists("g:netrw_quiet")
|
||||
call netrw#ErrorMsg(s:ERROR,"unable to remove directory<".rmfile."> -- is it empty?",34)
|
||||
let ok="no"
|
||||
endif
|
||||
elseif !exists("g:netrw_quiet")
|
||||
call netrw#ErrorMsg(s:ERROR,"unable to remove directory<".rmfile."> -- is it empty?",35)
|
||||
let ok="no"
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
if delete(rmfile,"d")
|
||||
call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".rmfile.">!",103)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -12063,9 +11976,9 @@ fun! s:NetrwBufRemover(bufid)
|
||||
" call Decho("buf#".a:bufid." has name <".bufname(a:bufid).">","~".expand("<slnum>"))
|
||||
" call Decho("buf#".a:bufid." has winid#".bufwinid(a:bufid),"~".expand("<slnum>"))
|
||||
|
||||
if a:bufid > 1 && !buflisted(a:bufid) && bufloaded(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
|
||||
if a:bufid > 1 && !buflisted(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
|
||||
" call Decho("(s:NetrwBufRemover) removing buffer#".a:bufid,"~".expand("<slnum>"))
|
||||
exe "sil! bd! ".a:bufid
|
||||
exe "bd! ".a:bufid
|
||||
endif
|
||||
|
||||
" call Dret("s:NetrwBufRemover")
|
||||
@@ -12102,13 +12015,13 @@ fun! s:NetrwEnew(...)
|
||||
if exists("b:netrw_prvdir") |let netrw_prvdir = b:netrw_prvdir |endif
|
||||
|
||||
NetrwKeepj call s:NetrwOptionsRestore("w:")
|
||||
" call Decho("generate a buffer with NetrwKeepj enew!",'~'.expand("<slnum>"))
|
||||
" call Decho("generate a buffer with NetrwKeepj keepalt enew!",'~'.expand("<slnum>"))
|
||||
" when tree listing uses file TreeListing... a new buffer is made.
|
||||
" Want the old buffer to be unlisted.
|
||||
" COMBAK: this causes a problem, see P43
|
||||
" setl nobl
|
||||
let netrw_keepdiff= &l:diff
|
||||
call s:NetrwEditFile("enew!","","")
|
||||
noswapfile NetrwKeepj keepalt enew!
|
||||
let &l:diff= netrw_keepdiff
|
||||
" call Decho("bufnr($)=".bufnr("$")."<".bufname(bufnr("$"))."> winnr($)=".winnr("$"),'~'.expand("<slnum>"))
|
||||
NetrwKeepj call s:NetrwOptionsSave("w:")
|
||||
@@ -12157,7 +12070,7 @@ endfun
|
||||
" s:NetrwExe: executes a string using "!" {{{2
|
||||
fun! s:NetrwExe(cmd)
|
||||
" call Dfunc("s:NetrwExe(a:cmd<".a:cmd.">)")
|
||||
if has("win32") && &shell !~? 'cmd\|pwsh\|powershell' && !g:netrw_cygwin
|
||||
if has("win32") && &shell !~? 'cmd' && !g:netrw_cygwin
|
||||
" call Decho("using win32:",expand("<slnum>"))
|
||||
let savedShell=[&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash]
|
||||
set shell& shellcmdflag& shellxquote& shellxescape&
|
||||
@@ -12826,54 +12739,3 @@ unlet s:keepcpo
|
||||
" Modelines: {{{1
|
||||
" ===============
|
||||
" vim:ts=8 fdm=marker
|
||||
" doing autoload/netrw.vim version v172g ~57
|
||||
" varname<g:netrw_dirhistcnt> value=0 ~1
|
||||
" varname<s:THINLIST> value=0 ~1
|
||||
" varname<s:LONGLIST> value=1 ~1
|
||||
" varname<s:WIDELIST> value=2 ~1
|
||||
" varname<s:TREELIST> value=3 ~1
|
||||
" varname<s:MAXLIST> value=4 ~1
|
||||
" varname<g:netrw_use_errorwindow> value=2 ~1
|
||||
" varname<g:netrw_http_xcmd> value=-q -O ~1
|
||||
" varname<g:netrw_http_put_cmd> value=curl -T ~1
|
||||
" varname<g:netrw_keepj> value=keepj ~1
|
||||
" varname<g:netrw_rcp_cmd> value=rcp ~1
|
||||
" varname<g:netrw_rsync_cmd> value=rsync ~1
|
||||
" varname<g:netrw_rsync_sep> value=/ ~1
|
||||
" varname<g:netrw_scp_cmd> value=scp -q ~1
|
||||
" varname<g:netrw_sftp_cmd> value=sftp ~1
|
||||
" varname<g:netrw_ssh_cmd> value=ssh ~1
|
||||
" varname<g:netrw_alto> value=0 ~1
|
||||
" varname<g:netrw_altv> value=1 ~1
|
||||
" varname<g:netrw_banner> value=1 ~1
|
||||
" varname<g:netrw_browse_split> value=0 ~1
|
||||
" varname<g:netrw_bufsettings> value=noma nomod nonu nobl nowrap ro nornu ~1
|
||||
" varname<g:netrw_chgwin> value=-1 ~1
|
||||
" varname<g:netrw_clipboard> value=1 ~1
|
||||
" varname<g:netrw_compress> value=gzip ~1
|
||||
" varname<g:netrw_ctags> value=ctags ~1
|
||||
" varname<g:netrw_cursor> value=2 ~1
|
||||
" (netrw) COMBAK: cuc=0 cul=0 initialization of s:netrw_cu[cl]
|
||||
" varname<g:netrw_cygdrive> value=/cygdrive ~1
|
||||
" varname<s:didstarstar> value=0 ~1
|
||||
" varname<g:netrw_dirhistcnt> value=0 ~1
|
||||
" varname<g:netrw_decompress> value={ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf", ".xz" : "unxz" } ~1
|
||||
" varname<g:netrw_dirhistmax> value=10 ~1
|
||||
" varname<g:netrw_errorlvl> value=0 ~1
|
||||
" varname<g:netrw_fastbrowse> value=1 ~1
|
||||
" varname<g:netrw_ftp_browse_reject> value=^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$ ~1
|
||||
" varname<g:netrw_ftpmode> value=binary ~1
|
||||
" varname<g:netrw_hide> value=1 ~1
|
||||
" varname<g:netrw_keepdir> value=1 ~1
|
||||
" varname<g:netrw_list_hide> value= ~1
|
||||
" varname<g:netrw_localmkdir> value=mkdir ~1
|
||||
" varname<g:netrw_remote_mkdir> value=mkdir ~1
|
||||
" varname<g:netrw_liststyle> value=0 ~1
|
||||
" varname<g:netrw_markfileesc> value=*./[\~ ~1
|
||||
" varname<g:netrw_maxfilenamelen> value=32 ~1
|
||||
" varname<g:netrw_menu> value=1 ~1
|
||||
" varname<g:netrw_mkdir_cmd> value=ssh USEPORT HOSTNAME mkdir ~1
|
||||
" varname<g:netrw_mousemaps> value=1 ~1
|
||||
" varname<g:netrw_retmap> value=0 ~1
|
||||
" varname<g:netrw_chgperm> value=chmod PERM FILENAME ~1
|
||||
" varname<g:netrw_preview> value=0 ~1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" netrwSettings.vim: makes netrw settings simpler
|
||||
" Date: Nov 15, 2021
|
||||
" Date: Aug 12, 2021
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Version: 18
|
||||
" Version: 17 ASTRO-ONLY
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
@@ -19,7 +19,7 @@
|
||||
if exists("g:loaded_netrwSettings") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwSettings = "v18"
|
||||
let g:loaded_netrwSettings = "v17"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||
@@ -159,6 +159,8 @@ fun! netrwSettings#NetrwSettings()
|
||||
put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
|
||||
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
|
||||
put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
|
||||
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
|
||||
put = 'let g:netrw_localrmdiropt = '.g:netrw_localrmdiropt
|
||||
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
|
||||
put = 'let g:netrw_menu = '.g:netrw_menu
|
||||
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
" Vim support file to help with paste mappings and menus
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Jan 27
|
||||
|
||||
" Define the string to use for items that are present both in Edit, Popup and
|
||||
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
||||
|
||||
@@ -2907,7 +2907,7 @@ endfor
|
||||
" builtin class information
|
||||
let g:php_builtin_object_functions = {}
|
||||
|
||||
" When completing for 'everything imaginable' (no class context, not a
|
||||
" When completing for 'everyting imaginable' (no class context, not a
|
||||
" variable) we need a list of built-in classes in a format of {'classname':''}
|
||||
" for performance reasons we precompile this too
|
||||
let g:php_builtin_classnames = {}
|
||||
|
||||
@@ -22,7 +22,8 @@ let s:maxoff = 50 " maximum number of lines to look backwards for ()
|
||||
function s:SearchBracket(fromlnum, flags)
|
||||
return searchpairpos('[[({]', '', '[])}]', a:flags,
|
||||
\ {-> synstack('.', col('.'))
|
||||
\ ->indexof({_, id -> synIDattr(id, 'name') =~ '\%(Comment\|Todo\|String\)$'}) >= 0},
|
||||
\ ->map({_, id -> id->synIDattr('name')})
|
||||
\ ->match('\%(Comment\|Todo\|String\)$') >= 0},
|
||||
\ [0, a:fromlnum - s:maxoff]->max(), g:python_indent.searchpair_timeout)
|
||||
endfunction
|
||||
|
||||
@@ -156,13 +157,15 @@ function python#GetIndent(lnum, ...)
|
||||
" the start of the comment. synID() is slow, a linear search would take
|
||||
" too long on a long line.
|
||||
if synstack(plnum, pline_len)
|
||||
\ ->indexof({_, id -> synIDattr(id, 'name') =~ '\%(Comment\|Todo\)$'}) >= 0
|
||||
\ ->map({_, id -> id->synIDattr('name')})
|
||||
\ ->match('\%(Comment\|Todo\)$') >= 0
|
||||
let min = 1
|
||||
let max = pline_len
|
||||
while min < max
|
||||
let col = (min + max) / 2
|
||||
if synstack(plnum, col)
|
||||
\ ->indexof({_, id -> synIDattr(id, 'name') =~ '\%(Comment\|Todo\)$'}) >= 0
|
||||
\ ->map({_, id -> id->synIDattr('name')})
|
||||
\ ->match('\%(Comment\|Todo\)$') >= 0
|
||||
let max = col
|
||||
else
|
||||
let min = col + 1
|
||||
|
||||
@@ -1,213 +0,0 @@
|
||||
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
|
||||
" URL: https://github.com/benknoble/vim-racket
|
||||
" Last Change: 2023 Sep 22
|
||||
vim9script
|
||||
|
||||
def MakePatternFromLiterals(xs: list<string>): string
|
||||
return printf('\V%s', xs->mapnew((_, v) => escape(v, '\'))->join('\|'))
|
||||
enddef
|
||||
|
||||
const openers = ['(', '[', '{']
|
||||
const closers = {'(': ')', '[': ']', '{': '}'}
|
||||
const brackets_pattern: string = closers->items()->flattennew()->MakePatternFromLiterals()
|
||||
|
||||
# transliterated from a modified copy of src/indent.c
|
||||
|
||||
export def Indent(): number
|
||||
if InHerestring(v:lnum)
|
||||
return -1
|
||||
endif
|
||||
# Indent from first column to avoid odd results from nested forms.
|
||||
cursor(v:lnum, 1)
|
||||
const bracket = FindBracket()
|
||||
if bracket == null_dict || !bracket.found
|
||||
return -1
|
||||
endif
|
||||
|
||||
# assert_report(printf('{lnum: %d, str: %s, found: %s, line: %d, column: %d}',
|
||||
# v:lnum, getline(bracket.line)[bracket.column - 1], bracket.found, bracket.line, bracket.column))
|
||||
# N.B. Column =/= Line Index; Columns start at 1
|
||||
const amount: number = bracket.column
|
||||
const line = getline(bracket.line)
|
||||
|
||||
const lw = Lispword(line[bracket.column :])
|
||||
if !IsForFold(lw) # skip: see comments about for/fold special case below
|
||||
# "Extra trick"
|
||||
var current = prevnonblank(v:lnum - 1)
|
||||
while current > bracket.line
|
||||
cursor(current, 1)
|
||||
if getline(current) !~# '^\s*;' && synID(current, 1, 0)->synIDattr('name') !~? 'string' && FindBracket() == bracket
|
||||
return indent(current)
|
||||
endif
|
||||
current = prevnonblank(current - 1)
|
||||
endwhile
|
||||
cursor(v:lnum, 1)
|
||||
endif
|
||||
|
||||
if index(openers, line[bracket.column - 1]) >= 0 && !empty(lw)
|
||||
# Special case for/fold &co. The iterator clause (2nd form) is indented
|
||||
# under the accumulator clause (1st form). Everything else is standard.
|
||||
const start_of_first_form = match(line[bracket.column :], MakePatternFromLiterals(openers))
|
||||
# assert_report(printf('{line: %s}', line))
|
||||
# assert_report(printf('{start: %s}', start_of_first_form >= 0 ? line[bracket.column + start_of_first_form :] : '<NULL>'))
|
||||
if IsForFold(lw) && IsSecondForm(bracket.line, bracket.column, v:lnum) && start_of_first_form >= 0
|
||||
return amount + start_of_first_form
|
||||
else
|
||||
# Lispword, but not for/fold second form (or first form couldn't be
|
||||
# found): indent like define or lambda.
|
||||
# 2 extra indent, but subtract 1 for columns starting at 1.
|
||||
# Current vim9 doesn't constant fold "x + 2 - 1", so write "x + 1"
|
||||
return amount + 1
|
||||
endif
|
||||
else
|
||||
# assert_report(printf('{line: %s}', line[bracket.column :]))
|
||||
return amount + IndentForContinuation(bracket.line, bracket.column, line[bracket.column :])
|
||||
endif
|
||||
enddef
|
||||
|
||||
def InHerestring(start: number): bool
|
||||
return synID(start, col([start, '$']) - 1, 0)->synIDattr('name') =~? 'herestring'
|
||||
enddef
|
||||
|
||||
def FindBracket(): dict<any>
|
||||
const paren = FindMatch('(', ')')
|
||||
const square = FindMatch('\[', ']')
|
||||
const curly = FindMatch('{', '}')
|
||||
return null_dict
|
||||
->MatchMax(paren)
|
||||
->MatchMax(square)
|
||||
->MatchMax(curly)
|
||||
enddef
|
||||
|
||||
def Lispword(line: string): string
|
||||
# assume keyword on same line as opener
|
||||
const word: string = matchstr(line, '^\s*\k\+\>')->trim()
|
||||
# assert_report(printf('line: %s; word: %s', line, word))
|
||||
# assert_report(&l:lispwords->split(',')->index(word) >= 0 ? 't' : 'f')
|
||||
return &l:lispwords->split(',')->index(word) >= 0 ? word : ''
|
||||
enddef
|
||||
|
||||
# line contains everything on line_nr after column
|
||||
def IndentForContinuation(line_nr: number, column: number, line: string): number
|
||||
const end = len(line)
|
||||
var indent = match(line, '[^[:space:]]')
|
||||
# first word is a string or some other literal (or maybe a form); assume that
|
||||
# the current line is outside such a thing
|
||||
if indent < end && ['"', '#']->index(line[indent]) >= 0
|
||||
return indent
|
||||
endif
|
||||
if indent < end && ["'", '`']->index(line[indent]) >= 0
|
||||
# could be a form or a word. Advance one and see.
|
||||
++indent
|
||||
endif
|
||||
if indent < end && ['(', '[', '{']->index(line[indent]) >= 0
|
||||
# there's a form; assume outside, but need to skip it to see if any others
|
||||
cursor(line_nr, column + indent + 1)
|
||||
# assert_report(getline(line_nr)[column + indent :])
|
||||
normal! %
|
||||
const [_, matched_line, matched_col, _, _] = getcursorcharpos()
|
||||
if line_nr != matched_line || matched_col == column + indent + 1
|
||||
return indent
|
||||
endif
|
||||
indent = matched_col - column
|
||||
endif
|
||||
var in_delim: bool
|
||||
var quoted: bool
|
||||
while indent < end && (line[indent] !~# '\s' || in_delim || quoted)
|
||||
if line[indent] == '\' && !in_delim
|
||||
quoted = true
|
||||
else
|
||||
quoted = false
|
||||
endif
|
||||
if line[indent] == '|' && !quoted
|
||||
in_delim = !in_delim
|
||||
endif
|
||||
++indent
|
||||
endwhile
|
||||
# not handling newlines in first words
|
||||
if quoted || in_delim
|
||||
return 0
|
||||
endif
|
||||
# no other word on this line
|
||||
if indent == end
|
||||
return 0
|
||||
endif
|
||||
# find beginning of next word
|
||||
indent += match(line[indent :], '[^[:space:]]')
|
||||
return indent
|
||||
enddef
|
||||
|
||||
def FindMatch(start: string, end: string): dict<any>
|
||||
# TODO too slow…
|
||||
# could try replicating C? might have false positives. Or make "100"
|
||||
# configurable number: for amounts of indent bodies, we're still fast enough…
|
||||
const [linenr, column] = searchpairpos(start, '', end, 'bnzW',
|
||||
() =>
|
||||
synID(line('.'), col('.'), 0)->synIDattr('name') =~? 'char\|string\|comment',
|
||||
line('.') > 100 ? line('.') - 100 : 0)
|
||||
if linenr > 0 && column > 0
|
||||
return {found: true, line: linenr, column: column}
|
||||
else
|
||||
return {found: false, line: linenr, column: column}
|
||||
endif
|
||||
enddef
|
||||
|
||||
def MatchMax(left: dict<any>, right: dict<any>): dict<any>
|
||||
if left == null_dict || !left.found
|
||||
return right
|
||||
endif
|
||||
if right == null_dict || !right.found
|
||||
return left
|
||||
endif
|
||||
# left and right non-null, both found
|
||||
return PosLT(left, right) ? right : left
|
||||
enddef
|
||||
|
||||
def PosLT(left: dict<any>, right: dict<any>): bool
|
||||
return left.line != right.line
|
||||
\ ? left.line < right.line
|
||||
\ : (left.column != right.column && left.column < right.column)
|
||||
enddef
|
||||
|
||||
def IsForFold(word: string): bool
|
||||
return ['for/fold', 'for/foldr', 'for*/fold', 'for*/foldr']->index(word) >= 0
|
||||
enddef
|
||||
|
||||
def IsSecondForm(blnum: number, bcol: number, vlnum: number): bool
|
||||
var forms_seen: number # "top-level" (inside for/fold) counter only
|
||||
var [lnum, col] = [blnum, bcol + 1]
|
||||
cursor(lnum, col)
|
||||
var stack: list<string> = []
|
||||
|
||||
while lnum <= vlnum
|
||||
const found = search(brackets_pattern, '', vlnum, 0, () =>
|
||||
synID(line('.'), col('.'), 0)->synIDattr('name') =~? 'char\|string\|comment')
|
||||
if found <= 0
|
||||
break
|
||||
endif
|
||||
const pos = getcursorcharpos()
|
||||
lnum = pos[1]
|
||||
col = pos[2]
|
||||
var current_char = getline(lnum)[col - 1]
|
||||
# assert_report(printf('search: %d, %d: %s', lnum, col, current_char))
|
||||
# assert_report(printf('forms seen post-search: %d', forms_seen))
|
||||
if index(openers, current_char) >= 0
|
||||
insert(stack, current_char)
|
||||
elseif !empty(stack) && current_char ==# closers[stack[0]]
|
||||
stack = stack[1 :]
|
||||
if empty(stack)
|
||||
++forms_seen
|
||||
endif
|
||||
else
|
||||
# parse failure of some kind: not an opener or not the correct closer
|
||||
return false
|
||||
endif
|
||||
# assert_report(printf('forms seen pre-check: %d', forms_seen))
|
||||
if forms_seen > 2
|
||||
return false
|
||||
endif
|
||||
endwhile
|
||||
|
||||
# assert_report(printf('forms seen pre-return: %d', forms_seen))
|
||||
return forms_seen == 2 || (forms_seen == 1 && !empty(stack))
|
||||
enddef
|
||||
@@ -2,7 +2,8 @@
|
||||
" Language: Ruby
|
||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Last Change: 2023 Dec 31
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Apr 12
|
||||
" ----------------------------------------------------------------------------
|
||||
"
|
||||
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
|
||||
@@ -489,7 +490,7 @@ class VimRubyCompletion
|
||||
trail = "%s%s" % [ dir, sub ]
|
||||
tcfg = "%sconfig" % trail
|
||||
|
||||
if File.exist?( tcfg )
|
||||
if File.exists?( tcfg )
|
||||
rails_base = trail
|
||||
break
|
||||
end
|
||||
@@ -502,7 +503,7 @@ class VimRubyCompletion
|
||||
|
||||
bootfile = rails_base + "config/boot.rb"
|
||||
envfile = rails_base + "config/environment.rb"
|
||||
if File.exist?( bootfile ) && File.exist?( envfile )
|
||||
if File.exists?( bootfile ) && File.exists?( envfile )
|
||||
begin
|
||||
require bootfile
|
||||
require envfile
|
||||
|
||||
+295
-450
@@ -1,258 +1,207 @@
|
||||
" Author: Kevin Ballard
|
||||
" Description: Helper functions for Rust commands/mappings
|
||||
" Last Modified: 2023-09-11
|
||||
" Last Modified: May 27, 2014
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
function! rust#Load()
|
||||
" Utility call to get this script loaded, for debugging
|
||||
endfunction
|
||||
|
||||
function! rust#GetConfigVar(name, default)
|
||||
" Local buffer variable with same name takes predeence over global
|
||||
if has_key(b:, a:name)
|
||||
return get(b:, a:name)
|
||||
endif
|
||||
if has_key(g:, a:name)
|
||||
return get(g:, a:name)
|
||||
endif
|
||||
return a:default
|
||||
endfunction
|
||||
|
||||
" Include expression {{{1
|
||||
|
||||
function! rust#IncludeExpr(fname) abort
|
||||
" Remove leading 'crate::' to deal with 2018 edition style 'use'
|
||||
" statements
|
||||
let l:fname = substitute(a:fname, '^crate::', '', '')
|
||||
|
||||
" Remove trailing colons arising from lines like
|
||||
"
|
||||
" use foo::{Bar, Baz};
|
||||
let l:fname = substitute(l:fname, ':\+$', '', '')
|
||||
|
||||
" Replace '::' with '/'
|
||||
let l:fname = substitute(l:fname, '::', '/', 'g')
|
||||
|
||||
" When we have
|
||||
"
|
||||
" use foo::bar::baz;
|
||||
"
|
||||
" we can't tell whether baz is a module or a function; and we can't tell
|
||||
" which modules correspond to files.
|
||||
"
|
||||
" So we work our way up, trying
|
||||
"
|
||||
" foo/bar/baz.rs
|
||||
" foo/bar.rs
|
||||
" foo.rs
|
||||
while l:fname !=# '.'
|
||||
let l:path = findfile(l:fname)
|
||||
if !empty(l:path)
|
||||
return l:fname
|
||||
endif
|
||||
let l:fname = fnamemodify(l:fname, ':h')
|
||||
endwhile
|
||||
return l:fname
|
||||
endfunction
|
||||
|
||||
" Jump {{{1
|
||||
|
||||
function! rust#Jump(mode, function) range
|
||||
let cnt = v:count1
|
||||
normal! m'
|
||||
if a:mode ==# 'v'
|
||||
norm! gv
|
||||
endif
|
||||
let foldenable = &foldenable
|
||||
set nofoldenable
|
||||
while cnt > 0
|
||||
execute "call <SID>Jump_" . a:function . "()"
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
let &foldenable = foldenable
|
||||
let cnt = v:count1
|
||||
normal! m'
|
||||
if a:mode ==# 'v'
|
||||
norm! gv
|
||||
endif
|
||||
let foldenable = &foldenable
|
||||
set nofoldenable
|
||||
while cnt > 0
|
||||
execute "call <SID>Jump_" . a:function . "()"
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
let &foldenable = foldenable
|
||||
endfunction
|
||||
|
||||
function! s:Jump_Back()
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{
|
||||
endfunction
|
||||
|
||||
function! s:Jump_Forward()
|
||||
normal! j0
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{%
|
||||
call search('{')
|
||||
normal! j0
|
||||
call search('{', 'b')
|
||||
keepjumps normal! w99[{%
|
||||
call search('{')
|
||||
endfunction
|
||||
|
||||
" Run {{{1
|
||||
|
||||
function! rust#Run(bang, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang
|
||||
let idx = index(l:args, '--')
|
||||
if idx != -1
|
||||
let rustc_args = idx == 0 ? [] : l:args[:idx-1]
|
||||
let args = l:args[idx+1:]
|
||||
else
|
||||
let rustc_args = l:args
|
||||
let args = []
|
||||
endif
|
||||
else
|
||||
let rustc_args = []
|
||||
endif
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang
|
||||
let idx = index(l:args, '--')
|
||||
if idx != -1
|
||||
let rustc_args = idx == 0 ? [] : l:args[:idx-1]
|
||||
let args = l:args[idx+1:]
|
||||
else
|
||||
let rustc_args = l:args
|
||||
let args = []
|
||||
endif
|
||||
else
|
||||
let rustc_args = []
|
||||
endif
|
||||
|
||||
let b:rust_last_rustc_args = l:rustc_args
|
||||
let b:rust_last_args = l:args
|
||||
let b:rust_last_rustc_args = l:rustc_args
|
||||
let b:rust_last_args = l:args
|
||||
|
||||
call s:WithPath(function("s:Run"), rustc_args, args)
|
||||
call s:WithPath(function("s:Run"), rustc_args, args)
|
||||
endfunction
|
||||
|
||||
function! s:Run(dict, rustc_args, args)
|
||||
let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
|
||||
if has('win32')
|
||||
let exepath .= '.exe'
|
||||
endif
|
||||
let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
|
||||
if has('win32')
|
||||
let exepath .= '.exe'
|
||||
endif
|
||||
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let rustc_args = [relpath, '-o', exepath] + a:rustc_args
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let rustc_args = [relpath, '-o', exepath] + a:rustc_args
|
||||
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
|
||||
if output !=# ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
||||
endif
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
|
||||
if output != ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Expand {{{1
|
||||
|
||||
function! rust#Expand(bang, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang && !empty(l:args)
|
||||
let pretty = remove(l:args, 0)
|
||||
else
|
||||
let pretty = "expanded"
|
||||
endif
|
||||
call s:WithPath(function("s:Expand"), pretty, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
if a:bang && !empty(l:args)
|
||||
let pretty = remove(l:args, 0)
|
||||
else
|
||||
let pretty = "expanded"
|
||||
endif
|
||||
call s:WithPath(function("s:Expand"), pretty, args)
|
||||
endfunction
|
||||
|
||||
function! s:Expand(dict, pretty, args)
|
||||
try
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
try
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
|
||||
let flag = '--xpretty'
|
||||
else
|
||||
let flag = '--pretty'
|
||||
endif
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '-Z', 'unstable-options', l:flag, a:pretty] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if v:shell_error
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
new
|
||||
silent put =output
|
||||
1
|
||||
d
|
||||
setl filetype=rust
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.pretty.rs'
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endtry
|
||||
if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
|
||||
let flag = '--xpretty'
|
||||
else
|
||||
let flag = '--pretty'
|
||||
endif
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '-Z', 'unstable-options', l:flag, a:pretty] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if v:shell_error
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
new
|
||||
silent put =output
|
||||
1
|
||||
d
|
||||
setl filetype=rust
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.pretty.rs'
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! rust#CompleteExpand(lead, line, pos)
|
||||
if a:line[: a:pos-1] =~# '^RustExpand!\s*\S*$'
|
||||
" first argument and it has a !
|
||||
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
|
||||
if !empty(a:lead)
|
||||
call filter(list, "v:val[:len(a:lead)-1] == a:lead")
|
||||
endif
|
||||
return list
|
||||
endif
|
||||
if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
|
||||
" first argument and it has a !
|
||||
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
|
||||
if !empty(a:lead)
|
||||
call filter(list, "v:val[:len(a:lead)-1] == a:lead")
|
||||
endif
|
||||
return list
|
||||
endif
|
||||
|
||||
return glob(escape(a:lead, "*?[") . '*', 0, 1)
|
||||
return glob(escape(a:lead, "*?[") . '*', 0, 1)
|
||||
endfunction
|
||||
|
||||
" Emit {{{1
|
||||
|
||||
function! rust#Emit(type, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
call s:WithPath(function("s:Emit"), a:type, args)
|
||||
let args = s:ShellTokenize(a:args)
|
||||
call s:WithPath(function("s:Emit"), a:type, args)
|
||||
endfunction
|
||||
|
||||
function! s:Emit(dict, type, args)
|
||||
try
|
||||
let output_path = a:dict.tmpdir.'/output'
|
||||
try
|
||||
let output_path = a:dict.tmpdir.'/output'
|
||||
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if output !=# ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
new
|
||||
exe 'silent keepalt read' fnameescape(output_path)
|
||||
1
|
||||
d
|
||||
if a:type ==# "llvm-ir"
|
||||
setl filetype=llvm
|
||||
let extension = 'll'
|
||||
elseif a:type ==# "asm"
|
||||
setl filetype=asm
|
||||
let extension = 's'
|
||||
endif
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
if exists('l:extension')
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.'.extension
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endif
|
||||
endtry
|
||||
let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
|
||||
let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
|
||||
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
|
||||
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
|
||||
if output != ''
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
endif
|
||||
if !v:shell_error
|
||||
new
|
||||
exe 'silent keepalt read' fnameescape(output_path)
|
||||
1
|
||||
d
|
||||
if a:type == "llvm-ir"
|
||||
setl filetype=llvm
|
||||
let extension = 'll'
|
||||
elseif a:type == "asm"
|
||||
setl filetype=asm
|
||||
let extension = 's'
|
||||
endif
|
||||
setl buftype=nofile
|
||||
setl bufhidden=hide
|
||||
setl noswapfile
|
||||
if exists('l:extension')
|
||||
" give the buffer a nice name
|
||||
let suffix = 1
|
||||
let basename = fnamemodify(a:dict.path, ':t:r')
|
||||
while 1
|
||||
let bufname = basename
|
||||
if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
|
||||
let bufname .= '.'.extension
|
||||
if bufexists(bufname)
|
||||
let suffix += 1
|
||||
continue
|
||||
endif
|
||||
exe 'silent noautocmd keepalt file' fnameescape(bufname)
|
||||
break
|
||||
endwhile
|
||||
endif
|
||||
endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
" Utility functions {{{1
|
||||
@@ -270,154 +219,145 @@ endfunction
|
||||
" existing path of the current buffer. If the path is inside of {dict.tmpdir}
|
||||
" then it is guaranteed to have a '.rs' extension.
|
||||
function! s:WithPath(func, ...)
|
||||
let buf = bufnr('')
|
||||
let saved = {}
|
||||
let dict = {}
|
||||
try
|
||||
let saved.write = &write
|
||||
set write
|
||||
let dict.path = expand('%')
|
||||
let pathisempty = empty(dict.path)
|
||||
let buf = bufnr('')
|
||||
let saved = {}
|
||||
let dict = {}
|
||||
try
|
||||
let saved.write = &write
|
||||
set write
|
||||
let dict.path = expand('%')
|
||||
let pathisempty = empty(dict.path)
|
||||
|
||||
" Always create a tmpdir in case the wrapped command wants it
|
||||
let dict.tmpdir = tempname()
|
||||
call mkdir(dict.tmpdir)
|
||||
" Always create a tmpdir in case the wrapped command wants it
|
||||
let dict.tmpdir = tempname()
|
||||
call mkdir(dict.tmpdir)
|
||||
|
||||
if pathisempty || !saved.write
|
||||
let dict.istemp = 1
|
||||
" if we're doing this because of nowrite, preserve the filename
|
||||
if !pathisempty
|
||||
let filename = expand('%:t:r').".rs"
|
||||
else
|
||||
let filename = 'unnamed.rs'
|
||||
endif
|
||||
let dict.tmpdir_relpath = filename
|
||||
let dict.path = dict.tmpdir.'/'.filename
|
||||
if pathisempty || !saved.write
|
||||
let dict.istemp = 1
|
||||
" if we're doing this because of nowrite, preserve the filename
|
||||
if !pathisempty
|
||||
let filename = expand('%:t:r').".rs"
|
||||
else
|
||||
let filename = 'unnamed.rs'
|
||||
endif
|
||||
let dict.tmpdir_relpath = filename
|
||||
let dict.path = dict.tmpdir.'/'.filename
|
||||
|
||||
let saved.mod = &modified
|
||||
set nomodified
|
||||
let saved.mod = &mod
|
||||
set nomod
|
||||
|
||||
silent exe 'keepalt write! ' . fnameescape(dict.path)
|
||||
if pathisempty
|
||||
silent keepalt 0file
|
||||
endif
|
||||
else
|
||||
let dict.istemp = 0
|
||||
update
|
||||
endif
|
||||
silent exe 'keepalt write! ' . fnameescape(dict.path)
|
||||
if pathisempty
|
||||
silent keepalt 0file
|
||||
endif
|
||||
else
|
||||
let dict.istemp = 0
|
||||
update
|
||||
endif
|
||||
|
||||
call call(a:func, [dict] + a:000)
|
||||
finally
|
||||
if bufexists(buf)
|
||||
for [opt, value] in items(saved)
|
||||
silent call setbufvar(buf, '&'.opt, value)
|
||||
unlet value " avoid variable type mismatches
|
||||
endfor
|
||||
endif
|
||||
if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
|
||||
endtry
|
||||
call call(a:func, [dict] + a:000)
|
||||
finally
|
||||
if bufexists(buf)
|
||||
for [opt, value] in items(saved)
|
||||
silent call setbufvar(buf, '&'.opt, value)
|
||||
unlet value " avoid variable type mismatches
|
||||
endfor
|
||||
endif
|
||||
if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! rust#AppendCmdLine(text)
|
||||
call setcmdpos(getcmdpos())
|
||||
let cmd = getcmdline() . a:text
|
||||
return cmd
|
||||
call setcmdpos(getcmdpos())
|
||||
let cmd = getcmdline() . a:text
|
||||
return cmd
|
||||
endfunction
|
||||
|
||||
" Tokenize the string according to sh parsing rules
|
||||
function! s:ShellTokenize(text)
|
||||
" states:
|
||||
" 0: start of word
|
||||
" 1: unquoted
|
||||
" 2: unquoted backslash
|
||||
" 3: double-quote
|
||||
" 4: double-quoted backslash
|
||||
" 5: single-quote
|
||||
let l:state = 0
|
||||
let l:current = ''
|
||||
let l:args = []
|
||||
for c in split(a:text, '\zs')
|
||||
if l:state == 0 || l:state == 1 " unquoted
|
||||
if l:c ==# ' '
|
||||
if l:state == 0 | continue | endif
|
||||
call add(l:args, l:current)
|
||||
let l:current = ''
|
||||
let l:state = 0
|
||||
elseif l:c ==# '\'
|
||||
let l:state = 2
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 3
|
||||
elseif l:c ==# "'"
|
||||
let l:state = 5
|
||||
else
|
||||
let l:current .= l:c
|
||||
let l:state = 1
|
||||
endif
|
||||
elseif l:state == 2 " unquoted backslash
|
||||
if l:c !=# "\n" " can it even be \n?
|
||||
let l:current .= l:c
|
||||
endif
|
||||
let l:state = 1
|
||||
elseif l:state == 3 " double-quote
|
||||
if l:c ==# '\'
|
||||
let l:state = 4
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
elseif l:state == 4 " double-quoted backslash
|
||||
if stridx('$`"\', l:c) >= 0
|
||||
let l:current .= l:c
|
||||
elseif l:c ==# "\n" " is this even possible?
|
||||
" skip it
|
||||
else
|
||||
let l:current .= '\'.l:c
|
||||
endif
|
||||
let l:state = 3
|
||||
elseif l:state == 5 " single-quoted
|
||||
if l:c ==# "'"
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
if l:state != 0
|
||||
call add(l:args, l:current)
|
||||
endif
|
||||
return l:args
|
||||
" states:
|
||||
" 0: start of word
|
||||
" 1: unquoted
|
||||
" 2: unquoted backslash
|
||||
" 3: double-quote
|
||||
" 4: double-quoted backslash
|
||||
" 5: single-quote
|
||||
let l:state = 0
|
||||
let l:current = ''
|
||||
let l:args = []
|
||||
for c in split(a:text, '\zs')
|
||||
if l:state == 0 || l:state == 1 " unquoted
|
||||
if l:c ==# ' '
|
||||
if l:state == 0 | continue | endif
|
||||
call add(l:args, l:current)
|
||||
let l:current = ''
|
||||
let l:state = 0
|
||||
elseif l:c ==# '\'
|
||||
let l:state = 2
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 3
|
||||
elseif l:c ==# "'"
|
||||
let l:state = 5
|
||||
else
|
||||
let l:current .= l:c
|
||||
let l:state = 1
|
||||
endif
|
||||
elseif l:state == 2 " unquoted backslash
|
||||
if l:c !=# "\n" " can it even be \n?
|
||||
let l:current .= l:c
|
||||
endif
|
||||
let l:state = 1
|
||||
elseif l:state == 3 " double-quote
|
||||
if l:c ==# '\'
|
||||
let l:state = 4
|
||||
elseif l:c ==# '"'
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
elseif l:state == 4 " double-quoted backslash
|
||||
if stridx('$`"\', l:c) >= 0
|
||||
let l:current .= l:c
|
||||
elseif l:c ==# "\n" " is this even possible?
|
||||
" skip it
|
||||
else
|
||||
let l:current .= '\'.l:c
|
||||
endif
|
||||
let l:state = 3
|
||||
elseif l:state == 5 " single-quoted
|
||||
if l:c == "'"
|
||||
let l:state = 1
|
||||
else
|
||||
let l:current .= l:c
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
if l:state != 0
|
||||
call add(l:args, l:current)
|
||||
endif
|
||||
return l:args
|
||||
endfunction
|
||||
|
||||
function! s:RmDir(path)
|
||||
" sanity check; make sure it's not empty, /, or $HOME
|
||||
if empty(a:path)
|
||||
echoerr 'Attempted to delete empty path'
|
||||
return 0
|
||||
elseif a:path ==# '/' || a:path ==# $HOME
|
||||
let l:path = expand(a:path)
|
||||
if l:path ==# '/' || l:path ==# $HOME
|
||||
echoerr 'Attempted to delete protected path: ' . a:path
|
||||
return 0
|
||||
endif
|
||||
endif
|
||||
|
||||
if !isdirectory(a:path)
|
||||
return 0
|
||||
endif
|
||||
|
||||
" delete() returns 0 when removing file successfully
|
||||
return delete(a:path, 'rf') == 0
|
||||
" sanity check; make sure it's not empty, /, or $HOME
|
||||
if empty(a:path)
|
||||
echoerr 'Attempted to delete empty path'
|
||||
return 0
|
||||
elseif a:path == '/' || a:path == $HOME
|
||||
echoerr 'Attempted to delete protected path: ' . a:path
|
||||
return 0
|
||||
endif
|
||||
return system("rm -rf " . shellescape(a:path))
|
||||
endfunction
|
||||
|
||||
" Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd.
|
||||
" If {pwd} is the empty string then it doesn't change the cwd.
|
||||
function! s:system(pwd, cmd)
|
||||
let cmd = a:cmd
|
||||
if !empty(a:pwd)
|
||||
let cmd = 'cd ' . shellescape(a:pwd) . ' && ' . cmd
|
||||
endif
|
||||
return system(cmd)
|
||||
let cmd = a:cmd
|
||||
if !empty(a:pwd)
|
||||
let cmd = 'cd ' . shellescape(a:pwd) . ' && ' . cmd
|
||||
endif
|
||||
return system(cmd)
|
||||
endfunction
|
||||
|
||||
" Playpen Support {{{1
|
||||
@@ -426,10 +366,10 @@ endfunction
|
||||
" http://github.com/mattn/gist-vim
|
||||
function! s:has_webapi()
|
||||
if !exists("*webapi#http#post")
|
||||
try
|
||||
call webapi#http#post()
|
||||
catch
|
||||
endtry
|
||||
try
|
||||
call webapi#http#post()
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
return exists("*webapi#http#post")
|
||||
endfunction
|
||||
@@ -441,130 +381,35 @@ function! rust#Play(count, line1, line2, ...) abort
|
||||
let l:rust_shortener_url = get(g:, 'rust_shortener_url', 'https://is.gd/')
|
||||
|
||||
if !s:has_webapi()
|
||||
echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
|
||||
return
|
||||
echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
let bufname = bufname('%')
|
||||
if a:count < 1
|
||||
let content = join(getline(a:line1, a:line2), "\n")
|
||||
let content = join(getline(a:line1, a:line2), "\n")
|
||||
else
|
||||
let save_regcont = @"
|
||||
let save_regtype = getregtype('"')
|
||||
silent! normal! gvy
|
||||
let content = @"
|
||||
call setreg('"', save_regcont, save_regtype)
|
||||
let save_regcont = @"
|
||||
let save_regtype = getregtype('"')
|
||||
silent! normal! gvy
|
||||
let content = @"
|
||||
call setreg('"', save_regcont, save_regtype)
|
||||
endif
|
||||
|
||||
let url = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
|
||||
let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
|
||||
|
||||
if strlen(url) > 5000
|
||||
echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(url).')' | echohl None
|
||||
return
|
||||
if strlen(body) > 5000
|
||||
echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
let payload = "format=simple&url=".webapi#http#encodeURI(url)
|
||||
let payload = "format=simple&url=".webapi#http#encodeURI(body)
|
||||
let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
|
||||
if res.status[0] ==# '2'
|
||||
let url = res.content
|
||||
endif
|
||||
let url = res.content
|
||||
|
||||
let footer = ''
|
||||
if exists('g:rust_clip_command')
|
||||
call system(g:rust_clip_command, url)
|
||||
if !v:shell_error
|
||||
let footer = ' (copied to clipboard)'
|
||||
endif
|
||||
endif
|
||||
redraw | echomsg 'Done: '.url.footer
|
||||
endfunction
|
||||
|
||||
" Run a test under the cursor or all tests {{{1
|
||||
|
||||
" Finds a test function name under the cursor. Returns empty string when a
|
||||
" test function is not found.
|
||||
function! s:SearchTestFunctionNameUnderCursor() abort
|
||||
let cursor_line = line('.')
|
||||
|
||||
" Find #[test] attribute
|
||||
if search('\m\C#\[test\]', 'bcW') is 0
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Move to an opening brace of the test function
|
||||
let test_func_line = search('\m\C^\s*fn\s\+\h\w*\s*(.\+{$', 'eW')
|
||||
if test_func_line is 0
|
||||
return ''
|
||||
endif
|
||||
|
||||
" Search the end of test function (closing brace) to ensure that the
|
||||
" cursor position is within function definition
|
||||
if maparg('<Plug>(MatchitNormalForward)') ==# ''
|
||||
keepjumps normal! %
|
||||
else
|
||||
" Prefer matchit.vim official plugin to native % since the plugin
|
||||
" provides better behavior than original % (#391)
|
||||
" To load the plugin, run:
|
||||
" :packadd matchit
|
||||
execute 'keepjumps' 'normal' "\<Plug>(MatchitNormalForward)"
|
||||
endif
|
||||
if line('.') < cursor_line
|
||||
return ''
|
||||
endif
|
||||
|
||||
return matchstr(getline(test_func_line), '\m\C^\s*fn\s\+\zs\h\w*')
|
||||
endfunction
|
||||
|
||||
function! rust#Test(mods, winsize, all, options) abort
|
||||
let manifest = findfile('Cargo.toml', expand('%:p:h') . ';')
|
||||
if manifest ==# ''
|
||||
return rust#Run(1, '--test ' . a:options)
|
||||
endif
|
||||
|
||||
" <count> defaults to 0, but we prefer an empty string
|
||||
let winsize = a:winsize ? a:winsize : ''
|
||||
|
||||
if has('terminal')
|
||||
if has('patch-8.0.910')
|
||||
let cmd = printf('%s noautocmd %snew | terminal ++curwin ', a:mods, winsize)
|
||||
else
|
||||
let cmd = printf('%s terminal ', a:mods)
|
||||
endif
|
||||
elseif has('nvim')
|
||||
let cmd = printf('%s noautocmd %snew | terminal ', a:mods, winsize)
|
||||
else
|
||||
let cmd = '!'
|
||||
let manifest = shellescape(manifest)
|
||||
endif
|
||||
|
||||
if a:all
|
||||
if a:options ==# ''
|
||||
execute cmd . 'cargo test --manifest-path' manifest
|
||||
else
|
||||
execute cmd . 'cargo test --manifest-path' manifest a:options
|
||||
endif
|
||||
return
|
||||
endif
|
||||
|
||||
let saved = getpos('.')
|
||||
try
|
||||
let func_name = s:SearchTestFunctionNameUnderCursor()
|
||||
finally
|
||||
call setpos('.', saved)
|
||||
endtry
|
||||
if func_name ==# ''
|
||||
echohl ErrorMsg
|
||||
echomsg 'No test function was found under the cursor. Please add ! to command if you want to run all tests'
|
||||
echohl None
|
||||
return
|
||||
endif
|
||||
if a:options ==# ''
|
||||
execute cmd . 'cargo test --manifest-path' manifest func_name
|
||||
else
|
||||
execute cmd . 'cargo test --manifest-path' manifest func_name a:options
|
||||
endif
|
||||
redraw | echomsg 'Done: '.url
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
" vim: set noet sw=8 ts=8:
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
" Last Modified: 2023-09-11
|
||||
|
||||
" For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim
|
||||
|
||||
let s:global_variable_list = [
|
||||
\ '_rustfmt_autosave_because_of_config',
|
||||
\ 'ftplugin_rust_source_path',
|
||||
\ 'loaded_syntastic_rust_cargo_checker',
|
||||
\ 'loaded_syntastic_rust_filetype',
|
||||
\ 'loaded_syntastic_rust_rustc_checker',
|
||||
\ 'rust_bang_comment_leader',
|
||||
\ 'rust_cargo_avoid_whole_workspace',
|
||||
\ 'rust_clip_command',
|
||||
\ 'rust_conceal',
|
||||
\ 'rust_conceal_mod_path',
|
||||
\ 'rust_conceal_pub',
|
||||
\ 'rust_fold',
|
||||
\ 'rust_last_args',
|
||||
\ 'rust_last_rustc_args',
|
||||
\ 'rust_original_delimitMate_excluded_regions',
|
||||
\ 'rust_playpen_url',
|
||||
\ 'rust_prev_delimitMate_quotes',
|
||||
\ 'rust_recent_nearest_cargo_tol',
|
||||
\ 'rust_recent_root_cargo_toml',
|
||||
\ 'rust_recommended_style',
|
||||
\ 'rust_set_conceallevel',
|
||||
\ 'rust_set_conceallevel=1',
|
||||
\ 'rust_set_foldmethod',
|
||||
\ 'rust_set_foldmethod=1',
|
||||
\ 'rust_shortener_url',
|
||||
\ 'rustc_makeprg_no_percent',
|
||||
\ 'rustc_path',
|
||||
\ 'rustfmt_autosave',
|
||||
\ 'rustfmt_autosave_if_config_present',
|
||||
\ 'rustfmt_command',
|
||||
\ 'rustfmt_emit_files',
|
||||
\ 'rustfmt_fail_silently',
|
||||
\ 'rustfmt_options',
|
||||
\ 'syntastic_extra_filetypes',
|
||||
\ 'syntastic_rust_cargo_fname',
|
||||
\]
|
||||
|
||||
function! s:Echo(message) abort
|
||||
execute 'echo a:message'
|
||||
endfunction
|
||||
|
||||
function! s:EchoGlobalVariables() abort
|
||||
for l:key in s:global_variable_list
|
||||
if l:key !~# '^_'
|
||||
call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null)))
|
||||
endif
|
||||
|
||||
if has_key(b:, l:key)
|
||||
call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key]))
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! rust#debugging#Info() abort
|
||||
call cargo#Load()
|
||||
call rust#Load()
|
||||
call rustfmt#Load()
|
||||
call s:Echo('rust.vim Global Variables:')
|
||||
call s:Echo('')
|
||||
call s:EchoGlobalVariables()
|
||||
|
||||
silent let l:output = system(g:rustfmt_command . ' --version')
|
||||
echo l:output
|
||||
|
||||
let l:rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
|
||||
silent let l:output = system(l:rustc . ' --version')
|
||||
echo l:output
|
||||
|
||||
silent let l:output = system('cargo --version')
|
||||
echo l:output
|
||||
|
||||
version
|
||||
|
||||
if exists(":SyntasticInfo")
|
||||
echo "----"
|
||||
echo "Info from Syntastic:"
|
||||
execute "SyntasticInfo"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! rust#debugging#InfoToClipboard() abort
|
||||
redir @"
|
||||
silent call rust#debugging#Info()
|
||||
redir END
|
||||
|
||||
call s:Echo('RustInfo copied to your clipboard')
|
||||
endfunction
|
||||
|
||||
function! rust#debugging#InfoToFile(filename) abort
|
||||
let l:expanded_filename = expand(a:filename)
|
||||
|
||||
redir => l:output
|
||||
silent call rust#debugging#Info()
|
||||
redir END
|
||||
|
||||
call writefile(split(l:output, "\n"), l:expanded_filename)
|
||||
call s:Echo('RustInfo written to ' . l:expanded_filename)
|
||||
endfunction
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
+68
-222
@@ -1,261 +1,107 @@
|
||||
" Author: Stephen Sugden <stephen@stephensugden.com>
|
||||
" Last Modified: 2023-09-11
|
||||
"
|
||||
" Adapted from https://github.com/fatih/vim-go
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
if !exists("g:rustfmt_autosave")
|
||||
let g:rustfmt_autosave = 0
|
||||
let g:rustfmt_autosave = 0
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_command")
|
||||
let g:rustfmt_command = "rustfmt"
|
||||
let g:rustfmt_command = "rustfmt"
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_options")
|
||||
let g:rustfmt_options = ""
|
||||
let g:rustfmt_options = ""
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_fail_silently")
|
||||
let g:rustfmt_fail_silently = 0
|
||||
endif
|
||||
|
||||
function! rustfmt#DetectVersion()
|
||||
" Save rustfmt '--help' for feature inspection
|
||||
silent let s:rustfmt_help = system(g:rustfmt_command . " --help")
|
||||
let s:rustfmt_unstable_features = s:rustfmt_help =~# "--unstable-features"
|
||||
|
||||
" Build a comparable rustfmt version variable out of its `--version` output:
|
||||
silent let l:rustfmt_version_full = system(g:rustfmt_command . " --version")
|
||||
let l:rustfmt_version_list = matchlist(l:rustfmt_version_full,
|
||||
\ '\vrustfmt ([0-9]+[.][0-9]+[.][0-9]+)')
|
||||
if len(l:rustfmt_version_list) < 3
|
||||
let s:rustfmt_version = "0"
|
||||
else
|
||||
let s:rustfmt_version = l:rustfmt_version_list[1]
|
||||
endif
|
||||
return s:rustfmt_version
|
||||
endfunction
|
||||
|
||||
call rustfmt#DetectVersion()
|
||||
|
||||
if !exists("g:rustfmt_emit_files")
|
||||
let g:rustfmt_emit_files = s:rustfmt_version >= "0.8.2"
|
||||
endif
|
||||
|
||||
if !exists("g:rustfmt_file_lines")
|
||||
let g:rustfmt_file_lines = s:rustfmt_help =~# "--file-lines JSON"
|
||||
let g:rustfmt_fail_silently = 0
|
||||
endif
|
||||
|
||||
let s:got_fmt_error = 0
|
||||
|
||||
function! rustfmt#Load()
|
||||
" Utility call to get this script loaded, for debugging
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtWriteMode()
|
||||
if g:rustfmt_emit_files
|
||||
return "--emit=files"
|
||||
else
|
||||
return "--write-mode=overwrite"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtConfigOptions()
|
||||
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:rustfmt_toml !=# ''
|
||||
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
|
||||
endif
|
||||
|
||||
let l:_rustfmt_toml = findfile('.rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:_rustfmt_toml !=# ''
|
||||
return '--config-path '.shellescape(fnamemodify(l:_rustfmt_toml, ":p"))
|
||||
endif
|
||||
|
||||
" Default to edition 2018 in case no rustfmt.toml was found.
|
||||
return '--edition 2018'
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtCommandRange(filename, line1, line2)
|
||||
if g:rustfmt_file_lines == 0
|
||||
echo "--file-lines is not supported in the installed `rustfmt` executable"
|
||||
return
|
||||
endif
|
||||
|
||||
let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
|
||||
let l:write_mode = s:RustfmtWriteMode()
|
||||
let l:rustfmt_config = s:RustfmtConfigOptions()
|
||||
|
||||
" FIXME: When --file-lines gets to be stable, add version range checking
|
||||
" accordingly.
|
||||
let l:unstable_features = s:rustfmt_unstable_features ? '--unstable-features' : ''
|
||||
|
||||
let l:cmd = printf("%s %s %s %s %s --file-lines '[%s]' %s", g:rustfmt_command,
|
||||
\ l:write_mode, g:rustfmt_options,
|
||||
\ l:unstable_features, l:rustfmt_config,
|
||||
\ json_encode(l:arg), shellescape(a:filename))
|
||||
return l:cmd
|
||||
let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
|
||||
return printf("%s %s --write-mode=overwrite --file-lines '[%s]'", g:rustfmt_command, g:rustfmt_options, json_encode(l:arg))
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtCommand()
|
||||
let write_mode = g:rustfmt_emit_files ? '--emit=stdout' : '--write-mode=display'
|
||||
let config = s:RustfmtConfigOptions()
|
||||
return join([g:rustfmt_command, write_mode, config, g:rustfmt_options])
|
||||
function! s:RustfmtCommand(filename)
|
||||
return g:rustfmt_command . " --write-mode=overwrite " . g:rustfmt_options . " " . shellescape(a:filename)
|
||||
endfunction
|
||||
|
||||
function! s:DeleteLines(start, end) abort
|
||||
silent! execute a:start . ',' . a:end . 'delete _'
|
||||
endfunction
|
||||
function! s:RunRustfmt(command, curw, tmpname)
|
||||
if exists("*systemlist")
|
||||
let out = systemlist(a:command)
|
||||
else
|
||||
let out = split(system(a:command), '\r\?\n')
|
||||
endif
|
||||
|
||||
function! s:RunRustfmt(command, tmpname, from_writepre)
|
||||
let l:view = winsaveview()
|
||||
if v:shell_error == 0 || v:shell_error == 3
|
||||
" remove undo point caused via BufWritePre
|
||||
try | silent undojoin | catch | endtry
|
||||
|
||||
let l:stderr_tmpname = tempname()
|
||||
call writefile([], l:stderr_tmpname)
|
||||
" Replace current file with temp file, then reload buffer
|
||||
call rename(a:tmpname, expand('%'))
|
||||
silent edit!
|
||||
let &syntax = &syntax
|
||||
|
||||
let l:command = a:command . ' 2> ' . l:stderr_tmpname
|
||||
" only clear location list if it was previously filled to prevent
|
||||
" clobbering other additions
|
||||
if s:got_fmt_error
|
||||
let s:got_fmt_error = 0
|
||||
call setloclist(0, [])
|
||||
lwindow
|
||||
endif
|
||||
elseif g:rustfmt_fail_silently == 0
|
||||
" otherwise get the errors and put them in the location list
|
||||
let errors = []
|
||||
|
||||
if a:tmpname ==# ''
|
||||
" Rustfmt in stdin/stdout mode
|
||||
for line in out
|
||||
" src/lib.rs:13:5: 13:10 error: expected `,`, or `}`, found `value`
|
||||
let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\):\s*\(\d\+:\d\+\s*\)\?\s*error: \(.*\)')
|
||||
if !empty(tokens)
|
||||
call add(errors, {"filename": @%,
|
||||
\"lnum": tokens[2],
|
||||
\"col": tokens[3],
|
||||
\"text": tokens[5]})
|
||||
endif
|
||||
endfor
|
||||
|
||||
" chdir to the directory of the file
|
||||
let l:has_lcd = haslocaldir()
|
||||
let l:prev_cd = getcwd()
|
||||
execute 'lchdir! '.expand('%:h')
|
||||
if empty(errors)
|
||||
% | " Couldn't detect rustfmt error format, output errors
|
||||
endif
|
||||
|
||||
let l:buffer = getline(1, '$')
|
||||
if exists("*systemlist")
|
||||
silent let out = systemlist(l:command, l:buffer)
|
||||
else
|
||||
silent let out = split(system(l:command,
|
||||
\ join(l:buffer, "\n")), '\r\?\n')
|
||||
endif
|
||||
else
|
||||
if exists("*systemlist")
|
||||
silent let out = systemlist(l:command)
|
||||
else
|
||||
silent let out = split(system(l:command), '\r\?\n')
|
||||
endif
|
||||
endif
|
||||
if !empty(errors)
|
||||
call setloclist(0, errors, 'r')
|
||||
echohl Error | echomsg "rustfmt returned error" | echohl None
|
||||
endif
|
||||
|
||||
let l:stderr = readfile(l:stderr_tmpname)
|
||||
let s:got_fmt_error = 1
|
||||
lwindow
|
||||
" We didn't use the temp file, so clean up
|
||||
call delete(a:tmpname)
|
||||
endif
|
||||
|
||||
call delete(l:stderr_tmpname)
|
||||
|
||||
let l:open_lwindow = 0
|
||||
if v:shell_error == 0
|
||||
if a:from_writepre
|
||||
" remove undo point caused via BufWritePre
|
||||
try | silent undojoin | catch | endtry
|
||||
endif
|
||||
|
||||
if a:tmpname ==# ''
|
||||
let l:content = l:out
|
||||
else
|
||||
" take the tmpfile's content, this is better than rename
|
||||
" because it preserves file modes.
|
||||
let l:content = readfile(a:tmpname)
|
||||
endif
|
||||
|
||||
call s:DeleteLines(len(l:content), line('$'))
|
||||
call setline(1, l:content)
|
||||
|
||||
" only clear location list if it was previously filled to prevent
|
||||
" clobbering other additions
|
||||
if s:got_fmt_error
|
||||
let s:got_fmt_error = 0
|
||||
call setloclist(0, [])
|
||||
let l:open_lwindow = 1
|
||||
endif
|
||||
elseif g:rustfmt_fail_silently == 0 && !a:from_writepre
|
||||
" otherwise get the errors and put them in the location list
|
||||
let l:errors = []
|
||||
|
||||
let l:prev_line = ""
|
||||
for l:line in l:stderr
|
||||
" error: expected one of `;` or `as`, found `extern`
|
||||
" --> src/main.rs:2:1
|
||||
let tokens = matchlist(l:line, '^\s\+-->\s\(.\{-}\):\(\d\+\):\(\d\+\)$')
|
||||
if !empty(tokens)
|
||||
call add(l:errors, {"filename": @%,
|
||||
\"lnum": tokens[2],
|
||||
\"col": tokens[3],
|
||||
\"text": l:prev_line})
|
||||
endif
|
||||
let l:prev_line = l:line
|
||||
endfor
|
||||
|
||||
if !empty(l:errors)
|
||||
call setloclist(0, l:errors, 'r')
|
||||
echohl Error | echomsg "rustfmt returned error" | echohl None
|
||||
else
|
||||
echo "rust.vim: was not able to parse rustfmt messages. Here is the raw output:"
|
||||
echo "\n"
|
||||
for l:line in l:stderr
|
||||
echo l:line
|
||||
endfor
|
||||
endif
|
||||
|
||||
let s:got_fmt_error = 1
|
||||
let l:open_lwindow = 1
|
||||
endif
|
||||
|
||||
" Restore the current directory if needed
|
||||
if a:tmpname ==# ''
|
||||
if l:has_lcd
|
||||
execute 'lchdir! '.l:prev_cd
|
||||
else
|
||||
execute 'chdir! '.l:prev_cd
|
||||
endif
|
||||
endif
|
||||
|
||||
" Open lwindow after we have changed back to the previous directory
|
||||
if l:open_lwindow == 1
|
||||
lwindow
|
||||
endif
|
||||
|
||||
call winrestview(l:view)
|
||||
call winrestview(a:curw)
|
||||
endfunction
|
||||
|
||||
function! rustfmt#FormatRange(line1, line2)
|
||||
let l:tmpname = tempname()
|
||||
call writefile(getline(1, '$'), l:tmpname)
|
||||
let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
|
||||
call s:RunRustfmt(command, l:tmpname, v:false)
|
||||
call delete(l:tmpname)
|
||||
let l:curw = winsaveview()
|
||||
let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
|
||||
call writefile(getline(1, '$'), l:tmpname)
|
||||
|
||||
let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
|
||||
|
||||
call s:RunRustfmt(command, l:curw, l:tmpname)
|
||||
endfunction
|
||||
|
||||
function! rustfmt#Format()
|
||||
call s:RunRustfmt(s:RustfmtCommand(), '', v:false)
|
||||
let l:curw = winsaveview()
|
||||
let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
|
||||
call writefile(getline(1, '$'), l:tmpname)
|
||||
|
||||
let command = s:RustfmtCommand(l:tmpname)
|
||||
|
||||
call s:RunRustfmt(command, l:curw, l:tmpname)
|
||||
endfunction
|
||||
|
||||
function! rustfmt#Cmd()
|
||||
" Mainly for debugging
|
||||
return s:RustfmtCommand()
|
||||
endfunction
|
||||
|
||||
function! rustfmt#PreWrite()
|
||||
if !filereadable(expand("%@"))
|
||||
return
|
||||
endif
|
||||
if rust#GetConfigVar('rustfmt_autosave_if_config_present', 0)
|
||||
if findfile('rustfmt.toml', '.;') !=# '' || findfile('.rustfmt.toml', '.;') !=# ''
|
||||
let b:rustfmt_autosave = 1
|
||||
let b:_rustfmt_autosave_because_of_config = 1
|
||||
endif
|
||||
else
|
||||
if has_key(b:, '_rustfmt_autosave_because_of_config')
|
||||
unlet b:_rustfmt_autosave_because_of_config
|
||||
unlet b:rustfmt_autosave
|
||||
endif
|
||||
endif
|
||||
|
||||
if !rust#GetConfigVar("rustfmt_autosave", 0)
|
||||
return
|
||||
endif
|
||||
|
||||
call s:RunRustfmt(s:RustfmtCommand(), '', v:true)
|
||||
endfunction
|
||||
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
" Vim script to download a missing spell file
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Jul 10
|
||||
|
||||
if !exists('g:spellfile_URL')
|
||||
" Always use https:// because it's secure. The certificate is for nluug.nl,
|
||||
|
||||
+15
-21
@@ -1,7 +1,7 @@
|
||||
" tar.vim: Handles browsing tarfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Nov 14, 2023
|
||||
" Version: 32b (with modifications from the Vim Project)
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 32
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
"
|
||||
@@ -22,7 +22,7 @@
|
||||
if &cp || exists("g:loaded_tar")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v32a"
|
||||
let g:loaded_tar= "v32"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of tar needs vim 7.2"
|
||||
@@ -208,24 +208,18 @@ fun! tar#Browse(tarfile)
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
"
|
||||
" The following should not be neccessary, since in case of errors the
|
||||
" previous if statement should have caught the problem (because tar exited
|
||||
" with a non-zero exit code).
|
||||
" if line("$") == curlast || ( line("$") == (curlast + 1) &&
|
||||
" \ getline("$") =~# '\c\<\%(warning\|error\|inappropriate\|unrecognized\)\>' &&
|
||||
" \ getline("$") =~ '\s' )
|
||||
" redraw!
|
||||
" echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
" keepj sil! %d
|
||||
" let eikeep= &ei
|
||||
" set ei=BufReadCmd,FileReadCmd
|
||||
" exe "r ".fnameescape(a:tarfile)
|
||||
" let &ei= eikeep
|
||||
" keepj sil! 1d
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
" return
|
||||
" endif
|
||||
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~# '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
keepj sil! %d
|
||||
let eikeep= &ei
|
||||
set ei=BufReadCmd,FileReadCmd
|
||||
exe "r ".fnameescape(a:tarfile)
|
||||
let &ei= eikeep
|
||||
keepj sil! 1d
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
|
||||
" set up maps supported for tar
|
||||
setlocal noma nomod ro
|
||||
|
||||
+35
-36
@@ -1,6 +1,6 @@
|
||||
" Vim autoload file for the tohtml plugin.
|
||||
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
||||
" Last Change: 2023 Sep 03
|
||||
" Last Change: 2023 Jan 01
|
||||
"
|
||||
" Additional contributors:
|
||||
"
|
||||
@@ -307,7 +307,7 @@ func! tohtml#Convert2HTML(line1, line2) "{{{
|
||||
let g:html_diff_win_num = 0
|
||||
for window in win_list
|
||||
" switch to the next buffer to convert
|
||||
exe ":" .. bufwinnr(window) .. "wincmd w"
|
||||
exe ":" . bufwinnr(window) . "wincmd w"
|
||||
|
||||
" figure out whether current charset and encoding will work, if not
|
||||
" default to UTF-8
|
||||
@@ -355,7 +355,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
if !s:settings.no_doc
|
||||
if s:settings.use_xhtml
|
||||
if s:settings.encoding != ""
|
||||
let xml_line = "<?xml version=\"1.0\" encoding=\"" .. s:settings.encoding .. "\"?>"
|
||||
let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
|
||||
else
|
||||
let xml_line = "<?xml version=\"1.0\"?>"
|
||||
endif
|
||||
@@ -387,34 +387,34 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
" contained in XML information
|
||||
if s:settings.encoding != "" && !s:settings.use_xhtml
|
||||
if s:html5
|
||||
call add(html, '<meta charset="' .. s:settings.encoding .. '"' .. tag_close)
|
||||
call add(html, '<meta charset="' . s:settings.encoding . '"' . tag_close)
|
||||
else
|
||||
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" .. s:settings.encoding .. '"' .. tag_close)
|
||||
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
|
||||
endif
|
||||
endif
|
||||
|
||||
call add(html, '<title>diff</title>')
|
||||
call add(html, '<meta name="Generator" content="Vim/'..v:version/100..'.'..v:version%100..'"'..tag_close)
|
||||
call add(html, '<meta name="plugin-version" content="'..g:loaded_2html_plugin..'"'..tag_close)
|
||||
call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
|
||||
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
|
||||
call add(html, '<meta name="settings" content="'.
|
||||
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
|
||||
\ ',prevent_copy='..s:settings.prevent_copy.
|
||||
\ ',use_input_for_pc='..s:settings.use_input_for_pc.
|
||||
\ '"'..tag_close)
|
||||
\ ',prevent_copy='.s:settings.prevent_copy.
|
||||
\ ',use_input_for_pc='.s:settings.use_input_for_pc.
|
||||
\ '"'.tag_close)
|
||||
call add(html, '<meta name="colorscheme" content="'.
|
||||
\ (exists('g:colors_name')
|
||||
\ ? g:colors_name
|
||||
\ : 'none').. '"'..tag_close)
|
||||
\ : 'none'). '"'.tag_close)
|
||||
|
||||
call add(html, '</head>')
|
||||
let body_line_num = len(html)
|
||||
call add(html, '<body'..(s:settings.line_ids ? ' onload="JumpToLine();"' : '')..'>')
|
||||
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
|
||||
endif
|
||||
call add(html, "<table "..(s:settings.use_css? "" : "border='1' width='100%' ").."id='vimCodeElement"..s:settings.id_suffix.."'>")
|
||||
call add(html, "<table ".(s:settings.use_css? "" : "border='1' width='100%' ")."id='vimCodeElement".s:settings.id_suffix."'>")
|
||||
|
||||
call add(html, '<tr>')
|
||||
for buf in a:win_list
|
||||
call add(html, '<th>'..bufname(buf)..'</th>')
|
||||
call add(html, '<th>'.bufname(buf).'</th>')
|
||||
endfor
|
||||
call add(html, '</tr><tr>')
|
||||
|
||||
@@ -423,7 +423,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
|
||||
for buf in a:buf_list
|
||||
let temp = []
|
||||
exe bufwinnr(buf) .. 'wincmd w'
|
||||
exe bufwinnr(buf) . 'wincmd w'
|
||||
|
||||
" If text is folded because of user foldmethod settings, etc. we don't want
|
||||
" to act on everything in a fold by mistake.
|
||||
@@ -526,16 +526,16 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
endif
|
||||
|
||||
let i = 1
|
||||
let name = "Diff" .. (s:settings.use_xhtml ? ".xhtml" : ".html")
|
||||
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
|
||||
" Find an unused file name if current file name is already in use
|
||||
while filereadable(name)
|
||||
let name = substitute(name, '\d*\.x\?html$', '', '') .. i .. '.' .. fnamemodify(copy(name), ":t:e")
|
||||
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
|
||||
let i += 1
|
||||
endwhile
|
||||
|
||||
let s:ei_sav = &eventignore
|
||||
set eventignore+=FileType
|
||||
exe "topleft new " .. name
|
||||
exe "topleft new " . name
|
||||
let &eventignore=s:ei_sav
|
||||
unlet s:ei_sav
|
||||
|
||||
@@ -601,7 +601,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
\ "",
|
||||
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
|
||||
\ " var node = lineElem;",
|
||||
\ " while (node && node.id != 'vimCodeElement"..s:settings.id_suffix.."')",
|
||||
\ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
|
||||
\ " {",
|
||||
\ " if (node.className == 'closed-fold')",
|
||||
\ " {",
|
||||
@@ -640,7 +640,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
call append(style_start, [
|
||||
\ " function toggleFold(objID)",
|
||||
\ " {",
|
||||
\ " for (win_num = 1; win_num <= "..len(a:buf_list).."; win_num++)",
|
||||
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
|
||||
\ " {",
|
||||
\ " var fold;",
|
||||
\ ' fold = document.getElementById("win"+win_num+objID);',
|
||||
@@ -660,7 +660,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
if s:uses_script
|
||||
" insert script tag if needed
|
||||
call append(style_start, [
|
||||
\ "<script" .. (s:html5 ? "" : " type='text/javascript'") .. ">",
|
||||
\ "<script" . (s:html5 ? "" : " type='text/javascript'") . ">",
|
||||
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
|
||||
endif
|
||||
|
||||
@@ -671,14 +671,14 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||
" is pretty useless for really long lines. {{{
|
||||
if s:settings.use_css
|
||||
call append(style_start,
|
||||
\ ['<style' .. (s:html5 ? '' : 'type="text/css"') .. '>']+
|
||||
\ ['<style' . (s:html5 ? '' : 'type="text/css"') . '>']+
|
||||
\ style+
|
||||
\ [ s:settings.use_xhtml ? '' : '<!--',
|
||||
\ 'table { table-layout: fixed; }',
|
||||
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
|
||||
\ 'table, td, th { border: 1px solid; }',
|
||||
\ 'td { vertical-align: top; }',
|
||||
\ 'th, td { width: '..printf("%.1f",100.0/len(a:win_list))..'%; }',
|
||||
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
|
||||
\ 'td div { overflow: auto; }',
|
||||
\ s:settings.use_xhtml ? '' : '-->',
|
||||
\ '</style>'
|
||||
@@ -694,7 +694,7 @@ endfunc "}}}
|
||||
" Gets a single user option and sets it in the passed-in Dict, or gives it the
|
||||
" default value if the option doesn't actually exist.
|
||||
func! tohtml#GetOption(settings, option, default) "{{{
|
||||
if exists('g:html_'..a:option)
|
||||
if exists('g:html_'.a:option)
|
||||
let a:settings[a:option] = g:html_{a:option}
|
||||
else
|
||||
let a:settings[a:option] = a:default
|
||||
@@ -713,11 +713,10 @@ func! tohtml#GetUserSettings() "{{{
|
||||
let user_settings = {}
|
||||
|
||||
" Define the correct option if the old option name exists and we haven't
|
||||
" already defined the correct one.
|
||||
" already defined the correct one. Maybe I'll put out a warning message about
|
||||
" this sometime and remove the old option entirely at some even later time,
|
||||
" but for now just silently accept the old option.
|
||||
if exists('g:use_xhtml') && !exists("g:html_use_xhtml")
|
||||
echohl WarningMsg
|
||||
echomsg "Warning: g:use_xhtml is deprecated, use g:html_use_xhtml"
|
||||
echohl None
|
||||
let g:html_use_xhtml = g:use_xhtml
|
||||
endif
|
||||
|
||||
@@ -740,7 +739,7 @@ func! tohtml#GetUserSettings() "{{{
|
||||
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
|
||||
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
|
||||
call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines )
|
||||
call tohtml#GetOption(user_settings, 'use_input_for_pc', 'none')
|
||||
call tohtml#GetOption(user_settings, 'use_input_for_pc', 'fallback')
|
||||
" }}}
|
||||
|
||||
" override those settings that need it {{{
|
||||
@@ -855,16 +854,16 @@ func! tohtml#GetUserSettings() "{{{
|
||||
if user_settings.use_css
|
||||
if exists("g:html_prevent_copy")
|
||||
if user_settings.dynamic_folds && !user_settings.no_foldcolumn && g:html_prevent_copy =~# 'f'
|
||||
let user_settings.prevent_copy ..= 'f'
|
||||
let user_settings.prevent_copy .= 'f'
|
||||
endif
|
||||
if user_settings.number_lines && g:html_prevent_copy =~# 'n'
|
||||
let user_settings.prevent_copy ..= 'n'
|
||||
let user_settings.prevent_copy .= 'n'
|
||||
endif
|
||||
if &diff && g:html_prevent_copy =~# 'd'
|
||||
let user_settings.prevent_copy ..= 'd'
|
||||
let user_settings.prevent_copy .= 'd'
|
||||
endif
|
||||
if !user_settings.ignore_folding && g:html_prevent_copy =~# 't'
|
||||
let user_settings.prevent_copy ..= 't'
|
||||
let user_settings.prevent_copy .= 't'
|
||||
endif
|
||||
else
|
||||
let user_settings.prevent_copy = ""
|
||||
@@ -876,10 +875,10 @@ func! tohtml#GetUserSettings() "{{{
|
||||
|
||||
" enforce valid values for use_input_for_pc
|
||||
if user_settings.use_input_for_pc !~# 'fallback\|none\|all'
|
||||
let user_settings.use_input_for_pc = 'none'
|
||||
let user_settings.use_input_for_pc = 'fallback'
|
||||
echohl WarningMsg
|
||||
echomsg '2html: "' .. g:html_use_input_for_pc .. '" is not valid for g:html_use_input_for_pc'
|
||||
echomsg '2html: defaulting to "' .. user_settings.use_input_for_pc .. '"'
|
||||
echomsg '2html: "' . g:html_use_input_for_pc . '" is not valid for g:html_use_input_for_pc'
|
||||
echomsg '2html: defaulting to "' . user_settings.use_input_for_pc . '"'
|
||||
echohl None
|
||||
sleep 3
|
||||
endif
|
||||
|
||||
@@ -97,7 +97,7 @@ enddef
|
||||
|
||||
# Public interface {{{
|
||||
# When a TeX document is split into several source files, each source file
|
||||
# may contain a "magic line" specifying the "root" file, e.g.:
|
||||
# may contain a "magic line" specifiying the "root" file, e.g.:
|
||||
#
|
||||
# % !TEX root = main.tex
|
||||
#
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Mar 12, 2023
|
||||
" Version: 33
|
||||
" Date: Nov 08, 2021
|
||||
" Version: 32
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
@@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v33"
|
||||
let g:loaded_zip= "v32"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of zip needs vim 7.2 or later"
|
||||
@@ -57,11 +57,6 @@ if !exists("g:zip_extractcmd")
|
||||
let g:zip_extractcmd= g:zip_unzipcmd
|
||||
endif
|
||||
|
||||
if !dist#vim#IsSafeExecutable('zip', g:zip_unzipcmd)
|
||||
echoerr "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!"
|
||||
finish
|
||||
endif
|
||||
|
||||
" ----------------
|
||||
" Functions: {{{1
|
||||
" ----------------
|
||||
@@ -165,14 +160,10 @@ endfun
|
||||
" ---------------------------------------------------------------------
|
||||
" ZipBrowseSelect: {{{2
|
||||
fun! s:ZipBrowseSelect()
|
||||
" call Dfunc("ZipBrowseSelect() zipfile<".((exists("b:zipfile"))? b:zipfile : "n/a")."> curfile<".expand("%").">")
|
||||
" call Dfunc("ZipBrowseSelect() zipfile<".b:zipfile."> curfile<".expand("%").">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
if !exists("b:zipfile")
|
||||
" call Dret("ZipBrowseSelect : b:zipfile doesn't exist!")
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
:" Use this script to create the file "bugreport.txt", which contains
|
||||
:" information about the environment of a possible bug in Vim.
|
||||
:"
|
||||
:" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
:" Last change: 2023 Aug 10
|
||||
:" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
:" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
:" Last change: 2019 Jan 27
|
||||
:"
|
||||
:" To use inside Vim:
|
||||
:" :so $VIMRUNTIME/bugreport.vim
|
||||
|
||||
@@ -111,11 +111,11 @@ please check the following items:
|
||||
- Do not use hard coded escape sequences, these will not work in other
|
||||
terminals. Always use #RRGGBB for the GUI.
|
||||
|
||||
- When targeting 8-16 colors terminals, don't count on "darkblue" to be blue
|
||||
- When targetting 8-16 colors terminals, don't count on "darkblue" to be blue
|
||||
and dark, or on "2" to be even vaguely reddish. Names are more portable
|
||||
than numbers, though.
|
||||
|
||||
- When targeting 256 colors terminals, prefer colors 16-255 to colors 0-15
|
||||
- When targetting 256 colors terminals, prefer colors 16-255 to colors 0-15
|
||||
for the same reason.
|
||||
|
||||
- Typographic attributes (bold, italic, underline, reverse, etc.) are not
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:33
|
||||
" Last Updated: Fri 02 Sep 2022 09:41:44 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'blue'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
|
||||
@@ -583,4 +583,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:33
|
||||
" Last Updated: Fri 02 Sep 2022 09:40:36 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'darkblue'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff']
|
||||
@@ -467,4 +467,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
" Vim color file
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2001 Jul 23
|
||||
|
||||
" This is the default color scheme. It doesn't define the Normal
|
||||
" highlighting, it uses whatever the colors used to be.
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:34
|
||||
" Last Updated: Sun 04 Sep 2022 09:31:26 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=light
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'delek'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000']
|
||||
@@ -408,4 +408,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:34
|
||||
" Last Updated: Fri 02 Sep 2022 09:39:21 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'desert'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#7f7f8c', '#cd5c5c', '#9acd32', '#bdb76b', '#75a0ff', '#eeee00', '#cd853f', '#666666', '#8a7f7f', '#ff0000', '#89fb98', '#f0e68c', '#6dceeb', '#ffde9b', '#ffa0a0', '#c2bfa5']
|
||||
@@ -397,4 +397,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
|
||||
" Website: https://www.github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:35
|
||||
" Last Updated: Fri 02 Sep 2022 09:44:22 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'elflord'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
hi! link Terminal Normal
|
||||
hi! link Boolean Constant
|
||||
@@ -446,4 +446,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:35
|
||||
" Last Updated: Sun 04 Sep 2022 09:48:34 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'evening'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0087ff', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
|
||||
@@ -528,4 +528,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
+105
-50
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:35
|
||||
" Last Updated: Fri 02 Sep 2022 09:45:11 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'habamax'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#1c1c1c', '#d75f5f', '#87af87', '#afaf87', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d7875f', '#afd7af', '#d7d787', '#87afd7', '#d7afd7', '#87afaf', '#bcbcbc']
|
||||
@@ -36,6 +36,38 @@ hi! link vimParenSep Normal
|
||||
hi! link vimCommentString Comment
|
||||
hi! link gitCommitSummary Title
|
||||
hi! link markdownUrl String
|
||||
hi! link elixirOperator Statement
|
||||
hi! link elixirKeyword Statement
|
||||
hi! link elixirBlockDefinition Statement
|
||||
hi! link elixirDefine Statement
|
||||
hi! link elixirPrivateDefine Statement
|
||||
hi! link elixirGuard Statement
|
||||
hi! link elixirPrivateGuard Statement
|
||||
hi! link elixirModuleDefine Statement
|
||||
hi! link elixirProtocolDefine Statement
|
||||
hi! link elixirImplDefine Statement
|
||||
hi! link elixirRecordDefine Statement
|
||||
hi! link elixirPrivateRecordDefine Statement
|
||||
hi! link elixirMacroDefine Statement
|
||||
hi! link elixirPrivateMacroDefine Statement
|
||||
hi! link elixirDelegateDefine Statement
|
||||
hi! link elixirOverridableDefine Statement
|
||||
hi! link elixirExceptionDefine Statement
|
||||
hi! link elixirCallbackDefine Statement
|
||||
hi! link elixirStructDefine Statement
|
||||
hi! link elixirExUnitMacro Statement
|
||||
hi! link elixirInclude Statement
|
||||
hi! link elixirAtom PreProc
|
||||
hi! link elixirDocTest String
|
||||
hi ALEErrorSign guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE
|
||||
hi ALEInfoSign guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi ALEWarningSign guifg=#af87af guibg=NONE gui=NONE cterm=NONE
|
||||
hi ALEError guifg=#1c1c1c guibg=#d75f5f gui=NONE cterm=NONE
|
||||
hi ALEVirtualTextError guifg=#1c1c1c guibg=#d75f5f gui=NONE cterm=NONE
|
||||
hi ALEWarning guifg=#1c1c1c guibg=#af87af gui=NONE cterm=NONE
|
||||
hi ALEVirtualTextWarning guifg=#1c1c1c guibg=#af87af gui=NONE cterm=NONE
|
||||
hi ALEInfo guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi ALEVirtualTextInfo guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Normal guifg=#bcbcbc guibg=#1c1c1c gui=NONE cterm=NONE
|
||||
hi Statusline guifg=#1c1c1c guibg=#9e9e9e gui=NONE cterm=NONE
|
||||
hi StatuslineNC guifg=#1c1c1c guibg=#767676 gui=NONE cterm=NONE
|
||||
@@ -56,14 +88,10 @@ hi SpecialKey guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi FoldColumn guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Visual guifg=#1c1c1c guibg=#87afaf gui=NONE cterm=NONE
|
||||
hi VisualNOS guifg=#1c1c1c guibg=#5f8787 gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=NONE guibg=#262626 gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#767676 gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#1c1c1c guibg=#afaf87 gui=NONE cterm=NONE
|
||||
hi PmenuKind guifg=#d7875f guibg=#3a3a3a gui=NONE cterm=NONE
|
||||
hi PmenuKindSel guifg=#d75f5f guibg=#afaf87 gui=NONE cterm=NONE
|
||||
hi PmenuExtra guifg=#767676 guibg=#3a3a3a gui=NONE cterm=NONE
|
||||
hi PmenuExtraSel guifg=#1c1c1c guibg=#afaf87 gui=NONE cterm=NONE
|
||||
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error guifg=#d75f5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi ErrorMsg guifg=#d75f5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
@@ -72,7 +100,7 @@ hi MoreMsg guifg=#87af87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Question guifg=#afaf87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi WarningMsg guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
|
||||
hi Todo guifg=#d7d787 guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold
|
||||
hi MatchParen guifg=#5f8787 guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi Search guifg=#1c1c1c guibg=#87af87 gui=NONE cterm=NONE
|
||||
hi IncSearch guifg=#1c1c1c guibg=#ffaf5f gui=NONE cterm=NONE
|
||||
hi CurSearch guifg=#1c1c1c guibg=#afaf87 gui=NONE cterm=NONE
|
||||
@@ -84,7 +112,7 @@ hi lCursor guifg=#1c1c1c guibg=#5fff00 gui=NONE cterm=NONE
|
||||
hi CursorLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
|
||||
hi CursorColumn guifg=NONE guibg=#303030 gui=NONE cterm=NONE
|
||||
hi Folded guifg=#9e9e9e guibg=#262626 gui=NONE cterm=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
|
||||
hi SpellBad guifg=NONE guibg=NONE guisp=#d75f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi SpellCap guifg=NONE guibg=NONE guisp=#5f87af gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi SpellLocal guifg=NONE guibg=NONE guisp=#87af87 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
@@ -104,13 +132,13 @@ hi Directory guifg=#87afaf guibg=NONE gui=bold cterm=bold
|
||||
hi Conceal guifg=#767676 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Debug guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi DiffAdd guifg=#dadada guibg=#5f875f gui=NONE cterm=NONE
|
||||
hi DiffAdd guifg=#000000 guibg=#87af87 gui=NONE cterm=NONE
|
||||
hi DiffDelete guifg=#af875f guibg=NONE gui=NONE cterm=NONE
|
||||
hi diffAdded guifg=#87af87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi diffRemoved guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE
|
||||
hi diffSubname guifg=#af87af guibg=NONE gui=NONE cterm=NONE
|
||||
hi DiffText guifg=#dadada guibg=#878787 gui=NONE cterm=NONE
|
||||
hi DiffChange guifg=#bcbcbc guibg=#5f5f5f gui=NONE cterm=NONE
|
||||
hi DiffText guifg=#000000 guibg=#d7d7d7 gui=NONE cterm=NONE
|
||||
hi DiffChange guifg=#000000 guibg=#afafaf gui=NONE cterm=NONE
|
||||
|
||||
if s:t_Co >= 256
|
||||
hi! link Terminal Normal
|
||||
@@ -131,6 +159,38 @@ if s:t_Co >= 256
|
||||
hi! link vimCommentString Comment
|
||||
hi! link gitCommitSummary Title
|
||||
hi! link markdownUrl String
|
||||
hi! link elixirOperator Statement
|
||||
hi! link elixirKeyword Statement
|
||||
hi! link elixirBlockDefinition Statement
|
||||
hi! link elixirDefine Statement
|
||||
hi! link elixirPrivateDefine Statement
|
||||
hi! link elixirGuard Statement
|
||||
hi! link elixirPrivateGuard Statement
|
||||
hi! link elixirModuleDefine Statement
|
||||
hi! link elixirProtocolDefine Statement
|
||||
hi! link elixirImplDefine Statement
|
||||
hi! link elixirRecordDefine Statement
|
||||
hi! link elixirPrivateRecordDefine Statement
|
||||
hi! link elixirMacroDefine Statement
|
||||
hi! link elixirPrivateMacroDefine Statement
|
||||
hi! link elixirDelegateDefine Statement
|
||||
hi! link elixirOverridableDefine Statement
|
||||
hi! link elixirExceptionDefine Statement
|
||||
hi! link elixirCallbackDefine Statement
|
||||
hi! link elixirStructDefine Statement
|
||||
hi! link elixirExUnitMacro Statement
|
||||
hi! link elixirInclude Statement
|
||||
hi! link elixirAtom PreProc
|
||||
hi! link elixirDocTest String
|
||||
hi ALEErrorSign ctermfg=167 ctermbg=NONE cterm=NONE
|
||||
hi ALEInfoSign ctermfg=186 ctermbg=NONE cterm=NONE
|
||||
hi ALEWarningSign ctermfg=139 ctermbg=NONE cterm=NONE
|
||||
hi ALEError ctermfg=234 ctermbg=167 cterm=NONE
|
||||
hi ALEVirtualTextError ctermfg=234 ctermbg=167 cterm=NONE
|
||||
hi ALEWarning ctermfg=234 ctermbg=139 cterm=NONE
|
||||
hi ALEVirtualTextWarning ctermfg=234 ctermbg=139 cterm=NONE
|
||||
hi ALEInfo ctermfg=186 ctermbg=NONE cterm=NONE
|
||||
hi ALEVirtualTextInfo ctermfg=186 ctermbg=NONE cterm=NONE
|
||||
hi Normal ctermfg=250 ctermbg=234 cterm=NONE
|
||||
hi Statusline ctermfg=234 ctermbg=247 cterm=NONE
|
||||
hi StatuslineNC ctermfg=234 ctermbg=243 cterm=NONE
|
||||
@@ -151,14 +211,10 @@ if s:t_Co >= 256
|
||||
hi FoldColumn ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi Visual ctermfg=234 ctermbg=109 cterm=NONE
|
||||
hi VisualNOS ctermfg=234 ctermbg=66 cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=237 cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=235 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=234 ctermbg=144 cterm=NONE
|
||||
hi PmenuKind ctermfg=173 ctermbg=237 cterm=NONE
|
||||
hi PmenuKindSel ctermfg=167 ctermbg=144 cterm=NONE
|
||||
hi PmenuExtra ctermfg=243 ctermbg=237 cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=234 ctermbg=144 cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=167 ctermbg=234 cterm=reverse
|
||||
hi ErrorMsg ctermfg=167 ctermbg=234 cterm=reverse
|
||||
@@ -167,7 +223,7 @@ if s:t_Co >= 256
|
||||
hi Question ctermfg=144 ctermbg=NONE cterm=NONE
|
||||
hi WarningMsg ctermfg=173 ctermbg=NONE cterm=NONE
|
||||
hi Todo ctermfg=186 ctermbg=234 cterm=reverse
|
||||
hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold
|
||||
hi MatchParen ctermfg=66 ctermbg=234 cterm=reverse
|
||||
hi Search ctermfg=234 ctermbg=108 cterm=NONE
|
||||
hi IncSearch ctermfg=234 ctermbg=215 cterm=NONE
|
||||
hi CurSearch ctermfg=234 ctermbg=144 cterm=NONE
|
||||
@@ -177,7 +233,7 @@ if s:t_Co >= 256
|
||||
hi CursorLine ctermfg=NONE ctermbg=236 cterm=NONE
|
||||
hi CursorColumn ctermfg=NONE ctermbg=236 cterm=NONE
|
||||
hi Folded ctermfg=247 ctermbg=235 cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=237 cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=235 cterm=NONE
|
||||
hi SpellBad ctermfg=167 ctermbg=NONE cterm=underline
|
||||
hi SpellCap ctermfg=67 ctermbg=NONE cterm=underline
|
||||
hi SpellLocal ctermfg=108 ctermbg=NONE cterm=underline
|
||||
@@ -197,18 +253,27 @@ if s:t_Co >= 256
|
||||
hi Conceal ctermfg=243 ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Debug ctermfg=66 ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=253 ctermbg=65 cterm=NONE
|
||||
hi DiffAdd ctermfg=16 ctermbg=108 cterm=NONE
|
||||
hi DiffDelete ctermfg=137 ctermbg=NONE cterm=NONE
|
||||
hi diffAdded ctermfg=108 ctermbg=NONE cterm=NONE
|
||||
hi diffRemoved ctermfg=167 ctermbg=NONE cterm=NONE
|
||||
hi diffSubname ctermfg=139 ctermbg=NONE cterm=NONE
|
||||
hi DiffText ctermfg=253 ctermbg=102 cterm=NONE
|
||||
hi DiffChange ctermfg=250 ctermbg=59 cterm=NONE
|
||||
hi DiffText ctermfg=16 ctermbg=188 cterm=NONE
|
||||
hi DiffChange ctermfg=16 ctermbg=145 cterm=NONE
|
||||
unlet s:t_Co
|
||||
finish
|
||||
endif
|
||||
|
||||
if s:t_Co >= 16
|
||||
hi ALEErrorSign ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi ALEInfoSign ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi ALEWarningSign ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
hi ALEError ctermfg=black ctermbg=darkred cterm=NONE
|
||||
hi ALEVirtualTextError ctermfg=black ctermbg=darkred cterm=NONE
|
||||
hi ALEWarning ctermfg=black ctermbg=darkmagenta cterm=NONE
|
||||
hi ALEVirtualTextWarning ctermfg=black ctermbg=darkmagenta cterm=NONE
|
||||
hi ALEInfo ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi ALEVirtualTextInfo ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi Normal ctermfg=white ctermbg=black cterm=NONE
|
||||
hi Statusline ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi StatuslineNC ctermfg=black ctermbg=darkgray cterm=NONE
|
||||
@@ -229,14 +294,10 @@ if s:t_Co >= 16
|
||||
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=cyan cterm=NONE
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi Pmenu ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi PmenuThumb ctermfg=gray ctermbg=black cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=gray cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgray cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuKind ctermfg=darkred ctermbg=gray cterm=NONE
|
||||
hi PmenuKindSel ctermfg=darkred ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuExtra ctermfg=darkgray ctermbg=gray cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=darkred ctermbg=black cterm=reverse
|
||||
hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
|
||||
@@ -245,7 +306,7 @@ if s:t_Co >= 16
|
||||
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
hi Todo ctermfg=yellow ctermbg=black cterm=reverse
|
||||
hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold
|
||||
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
|
||||
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
|
||||
hi IncSearch ctermfg=black ctermbg=red cterm=NONE
|
||||
hi CurSearch ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
@@ -275,13 +336,13 @@ if s:t_Co >= 16
|
||||
hi Conceal ctermfg=darkgray ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE
|
||||
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
hi DiffText ctermfg=white ctermbg=lightgrey cterm=NONE
|
||||
hi DiffChange ctermfg=white ctermbg=darkgray cterm=NONE
|
||||
hi DiffText ctermfg=black ctermbg=lightgrey cterm=NONE
|
||||
hi DiffChange ctermfg=black ctermbg=darkgray cterm=NONE
|
||||
unlet s:t_Co
|
||||
finish
|
||||
endif
|
||||
@@ -305,16 +366,12 @@ if s:t_Co >= 8
|
||||
hi EndOfBuffer ctermfg=gray ctermbg=NONE cterm=bold
|
||||
hi SpecialKey ctermfg=gray ctermbg=NONE cterm=bold
|
||||
hi FoldColumn ctermfg=gray ctermbg=NONE cterm=bold
|
||||
hi Visual ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi Pmenu ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi PmenuThumb ctermfg=gray ctermbg=black cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=gray cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuKind ctermfg=darkred ctermbg=gray cterm=NONE
|
||||
hi PmenuKindSel ctermfg=darkred ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuExtra ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=darkred ctermbg=gray cterm=bold,reverse
|
||||
hi ErrorMsg ctermfg=darkred ctermbg=gray cterm=bold,reverse
|
||||
@@ -323,7 +380,7 @@ if s:t_Co >= 8
|
||||
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi Todo ctermfg=darkyellow ctermbg=black cterm=reverse
|
||||
hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold
|
||||
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
|
||||
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
|
||||
hi IncSearch ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi CurSearch ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
@@ -353,7 +410,7 @@ if s:t_Co >= 8
|
||||
hi Conceal ctermfg=gray ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE
|
||||
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
@@ -450,19 +507,17 @@ endif
|
||||
" Color: color07 #9E9E9E 247 gray
|
||||
" Color: color15 #BCBCBC 250 white
|
||||
" Color: colorLine #303030 236 darkgrey
|
||||
" Color: colorB #3a3a3a 237 darkgrey
|
||||
" Color: colorF #262626 235 darkgrey
|
||||
" Color: colorB #262626 235 darkgrey
|
||||
" Color: colorNonT #585858 240 darkgrey
|
||||
" Color: colorC #FFAF5F 215 red
|
||||
" Color: colorlC #5FFF00 82 green
|
||||
" Color: colorV #1F3F5F 109 cyan
|
||||
" Color: colorMP #ff00af 199 magenta
|
||||
" Color: diffAdd #5f875f 65 darkgreen
|
||||
" Color: diffAdd #87AF87 108 darkgreen
|
||||
" Color: diffDelete #af875f 137 darkyellow
|
||||
" Color: diffChange #5f5f5f 59 darkgray
|
||||
" Color: diffText #878787 102 lightgrey
|
||||
" Color: diffChange #AFAFAF 145 darkgray
|
||||
" Color: diffText #D7D7D7 188 lightgrey
|
||||
" Color: black #000000 16 black
|
||||
" Color: white #dadada 253 white
|
||||
" Color: white #FFFFFF 231 white
|
||||
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
|
||||
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer Shian Lee.
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:36
|
||||
" Last Updated: Sun 04 Sep 2022 09:50:04 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'industry'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#303030', '#870000', '#5fd75f', '#afaf00', '#87afff', '#af00af', '#00afaf', '#6c6c6c', '#444444', '#ff0000', '#00ff00', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
|
||||
@@ -409,4 +409,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
|
||||
" Website: https://www.github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:36
|
||||
" Last Updated: Fri 02 Sep 2022 09:23:56 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'koehler'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
hi! link Terminal Normal
|
||||
hi! link Boolean Constant
|
||||
@@ -423,4 +423,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
" Maintainer: Drew Vogel <dvogel@sidejump.org>
|
||||
" Last Change: 2023 Apr 19
|
||||
" Last Change: 2022 Mar 20
|
||||
"
|
||||
" Replaced rgb.txt as the source of de facto standard color names. This is
|
||||
" sourced each time the colorscheme command is run. It is also sourced each
|
||||
@@ -7,8 +7,7 @@
|
||||
" these colors by introducing a new colors/lists/default.vim file earlier in
|
||||
" the runtimepath.
|
||||
|
||||
" make sure line continuation works
|
||||
let s:keepcpo = &cpo
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
call extend(v:colornames, {
|
||||
@@ -802,7 +801,7 @@ call extend(v:colornames, {
|
||||
\ 'teal': '#008080'
|
||||
\ }, 'keep')
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
"vim: sw=4
|
||||
|
||||
+115
-99
@@ -4,14 +4,14 @@
|
||||
" Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
" Website: https://www.github.com/vim/colorschemes
|
||||
" License: Vim License (see `:help license`)
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:37
|
||||
" Last Updated: Fri 16 Sep 2022 13:15:33 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'lunaperche'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
hi! link helpVim Title
|
||||
hi! link helpHeader Title
|
||||
@@ -51,6 +51,30 @@ hi! link vimParenSep Normal
|
||||
hi! link vimOption Normal
|
||||
hi! link vimCommentString Comment
|
||||
hi! link pythonInclude Statement
|
||||
hi! link elixirOperator Statement
|
||||
hi! link elixirKeyword Statement
|
||||
hi! link elixirBlockDefinition Statement
|
||||
hi! link elixirDefine Statement
|
||||
hi! link elixirPrivateDefine Statement
|
||||
hi! link elixirGuard Statement
|
||||
hi! link elixirPrivateGuard Statement
|
||||
hi! link elixirModuleDefine Statement
|
||||
hi! link elixirProtocolDefine Statement
|
||||
hi! link elixirImplDefine Statement
|
||||
hi! link elixirRecordDefine Statement
|
||||
hi! link elixirPrivateRecordDefine Statement
|
||||
hi! link elixirMacroDefine Statement
|
||||
hi! link elixirPrivateMacroDefine Statement
|
||||
hi! link elixirDelegateDefine Statement
|
||||
hi! link elixirOverridableDefine Statement
|
||||
hi! link elixirExceptionDefine Statement
|
||||
hi! link elixirCallbackDefine Statement
|
||||
hi! link elixirStructDefine Statement
|
||||
hi! link elixirExUnitMacro Statement
|
||||
hi! link elixirInclude Statement
|
||||
hi! link elixirVariable Special
|
||||
hi! link elixirAtom Constant
|
||||
hi! link elixirDocTest String
|
||||
hi! link shQuote Constant
|
||||
hi! link shNoQuote Normal
|
||||
hi! link shTestOpr Normal
|
||||
@@ -110,16 +134,12 @@ if &background ==# 'dark'
|
||||
hi LineNr guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi NonText guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi FoldColumn guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi SpecialKey guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi EndOfBuffer guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=NONE guibg=#303030 gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=NONE guibg=#4e4e4e gui=NONE cterm=NONE
|
||||
hi SpecialKey guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=NONE guibg=#1c1c1c gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=NONE guibg=#444444 gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuKind guifg=#ff5f5f guibg=#303030 gui=NONE cterm=NONE
|
||||
hi PmenuKindSel guifg=#ff5f5f guibg=#4e4e4e gui=NONE cterm=NONE
|
||||
hi PmenuExtra guifg=#767676 guibg=#303030 gui=NONE cterm=NONE
|
||||
hi PmenuExtraSel guifg=#767676 guibg=#4e4e4e gui=NONE cterm=NONE
|
||||
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error guifg=#ffffff guibg=#ff5f5f gui=NONE cterm=NONE
|
||||
hi ErrorMsg guifg=#ffffff guibg=#ff5f5f gui=NONE cterm=NONE
|
||||
@@ -134,15 +154,15 @@ if &background ==# 'dark'
|
||||
hi WildMenu guifg=#000000 guibg=#ffd787 gui=bold cterm=bold
|
||||
hi debugPC guifg=#5f87af guibg=NONE gui=reverse cterm=reverse
|
||||
hi debugBreakpoint guifg=#5fafaf guibg=NONE gui=reverse cterm=reverse
|
||||
hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi lCursor guifg=#ff5fff guibg=#000000 gui=reverse cterm=reverse
|
||||
hi Visual guifg=#ffffff guibg=#005f87 gui=NONE cterm=NONE
|
||||
hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold
|
||||
hi MatchParen guifg=#c5e7c5 guibg=#000000 gui=reverse cterm=reverse
|
||||
hi VisualNOS guifg=#000000 guibg=#5fafaf gui=NONE cterm=NONE
|
||||
hi CursorLine guifg=NONE guibg=#262626 gui=NONE cterm=NONE
|
||||
hi CursorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
|
||||
hi Folded guifg=#767676 guibg=#303030 gui=NONE cterm=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#303030 gui=NONE cterm=NONE
|
||||
hi Folded guifg=#767676 guibg=#1c1c1c gui=NONE cterm=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#1c1c1c gui=NONE cterm=NONE
|
||||
hi SpellBad guifg=NONE guibg=NONE guisp=#ff5f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi SpellCap guifg=NONE guibg=NONE guisp=#5fafaf gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi SpellLocal guifg=NONE guibg=NONE guisp=#5faf5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
@@ -160,9 +180,9 @@ if &background ==# 'dark'
|
||||
hi Directory guifg=#5fafff guibg=NONE gui=bold cterm=bold
|
||||
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd guifg=#c6c6c6 guibg=#875f87 gui=NONE cterm=NONE
|
||||
hi DiffChange guifg=#c6c6c6 guibg=#5f5f5f gui=NONE cterm=NONE
|
||||
hi DiffText guifg=#afffff guibg=#5f8787 gui=NONE cterm=NONE
|
||||
hi DiffAdd guifg=#000000 guibg=#af87af gui=NONE cterm=NONE
|
||||
hi DiffChange guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
|
||||
hi DiffText guifg=#000000 guibg=#5fd7d7 gui=NONE cterm=NONE
|
||||
hi DiffDelete guifg=#d78787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi diffAdded guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE
|
||||
hi diffRemoved guifg=#d78787 guibg=NONE gui=NONE cterm=NONE
|
||||
@@ -202,14 +222,10 @@ else
|
||||
hi FoldColumn guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
|
||||
hi EndOfBuffer guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
|
||||
hi SpecialKey guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#767676 gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuKind guifg=#af0000 guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi PmenuKindSel guifg=#af0000 guibg=#c6c6c6 gui=NONE cterm=NONE
|
||||
hi PmenuExtra guifg=#767676 guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi PmenuExtraSel guifg=#767676 guibg=#c6c6c6 gui=NONE cterm=NONE
|
||||
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE
|
||||
hi ErrorMsg guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE
|
||||
@@ -224,15 +240,15 @@ else
|
||||
hi WildMenu guifg=#000000 guibg=#ffd787 gui=bold cterm=bold
|
||||
hi debugPC guifg=#005fd7 guibg=NONE gui=reverse cterm=reverse
|
||||
hi debugBreakpoint guifg=#005f5f guibg=NONE gui=reverse cterm=reverse
|
||||
hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
|
||||
hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi lCursor guifg=#ff00ff guibg=#000000 gui=reverse cterm=reverse
|
||||
hi Visual guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
|
||||
hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold
|
||||
hi MatchParen guifg=NONE guibg=#c5e7c5 gui=NONE cterm=NONE
|
||||
hi VisualNOS guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
|
||||
hi CursorLine guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
|
||||
hi CursorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
|
||||
hi Folded guifg=#767676 guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi CursorLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi CursorColumn guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi Folded guifg=#767676 guibg=#eeeeee gui=NONE cterm=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
|
||||
hi SpellBad guifg=NONE guibg=NONE guisp=#af0000 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi SpellCap guifg=NONE guibg=NONE guisp=#005f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi SpellLocal guifg=NONE guibg=NONE guisp=#008700 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
@@ -313,6 +329,30 @@ if s:t_Co >= 256
|
||||
hi! link vimOption Normal
|
||||
hi! link vimCommentString Comment
|
||||
hi! link pythonInclude Statement
|
||||
hi! link elixirOperator Statement
|
||||
hi! link elixirKeyword Statement
|
||||
hi! link elixirBlockDefinition Statement
|
||||
hi! link elixirDefine Statement
|
||||
hi! link elixirPrivateDefine Statement
|
||||
hi! link elixirGuard Statement
|
||||
hi! link elixirPrivateGuard Statement
|
||||
hi! link elixirModuleDefine Statement
|
||||
hi! link elixirProtocolDefine Statement
|
||||
hi! link elixirImplDefine Statement
|
||||
hi! link elixirRecordDefine Statement
|
||||
hi! link elixirPrivateRecordDefine Statement
|
||||
hi! link elixirMacroDefine Statement
|
||||
hi! link elixirPrivateMacroDefine Statement
|
||||
hi! link elixirDelegateDefine Statement
|
||||
hi! link elixirOverridableDefine Statement
|
||||
hi! link elixirExceptionDefine Statement
|
||||
hi! link elixirCallbackDefine Statement
|
||||
hi! link elixirStructDefine Statement
|
||||
hi! link elixirExUnitMacro Statement
|
||||
hi! link elixirInclude Statement
|
||||
hi! link elixirVariable Special
|
||||
hi! link elixirAtom Constant
|
||||
hi! link elixirDocTest String
|
||||
hi! link shQuote Constant
|
||||
hi! link shNoQuote Normal
|
||||
hi! link shTestOpr Normal
|
||||
@@ -369,16 +409,12 @@ if s:t_Co >= 256
|
||||
hi LineNr ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi NonText ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=236 cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=239 cterm=NONE
|
||||
hi SpecialKey ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=234 cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=238 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=251 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuKind ctermfg=203 ctermbg=236 cterm=NONE
|
||||
hi PmenuKindSel ctermfg=203 ctermbg=239 cterm=NONE
|
||||
hi PmenuExtra ctermfg=243 ctermbg=236 cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=243 ctermbg=239 cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=231 ctermbg=203 cterm=NONE
|
||||
hi ErrorMsg ctermfg=231 ctermbg=203 cterm=NONE
|
||||
@@ -394,12 +430,12 @@ if s:t_Co >= 256
|
||||
hi debugPC ctermfg=67 ctermbg=NONE cterm=reverse
|
||||
hi debugBreakpoint ctermfg=73 ctermbg=NONE cterm=reverse
|
||||
hi Visual ctermfg=231 ctermbg=24 cterm=NONE
|
||||
hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold
|
||||
hi MatchParen ctermfg=30 ctermbg=16 cterm=reverse
|
||||
hi VisualNOS ctermfg=16 ctermbg=73 cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=235 cterm=NONE
|
||||
hi CursorColumn ctermfg=NONE ctermbg=235 cterm=NONE
|
||||
hi Folded ctermfg=243 ctermbg=236 cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=236 cterm=NONE
|
||||
hi Folded ctermfg=243 ctermbg=234 cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=234 cterm=NONE
|
||||
hi SpellBad ctermfg=203 ctermbg=NONE cterm=underline
|
||||
hi SpellCap ctermfg=73 ctermbg=NONE cterm=underline
|
||||
hi SpellLocal ctermfg=77 ctermbg=NONE cterm=underline
|
||||
@@ -417,9 +453,9 @@ if s:t_Co >= 256
|
||||
hi Directory ctermfg=75 ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=251 ctermbg=96 cterm=NONE
|
||||
hi DiffChange ctermfg=251 ctermbg=59 cterm=NONE
|
||||
hi DiffText ctermfg=159 ctermbg=66 cterm=NONE
|
||||
hi DiffAdd ctermfg=16 ctermbg=139 cterm=NONE
|
||||
hi DiffChange ctermfg=16 ctermbg=252 cterm=NONE
|
||||
hi DiffText ctermfg=16 ctermbg=80 cterm=NONE
|
||||
hi DiffDelete ctermfg=174 ctermbg=NONE cterm=NONE
|
||||
hi diffAdded ctermfg=77 ctermbg=NONE cterm=NONE
|
||||
hi diffRemoved ctermfg=174 ctermbg=NONE cterm=NONE
|
||||
@@ -456,14 +492,10 @@ if s:t_Co >= 256
|
||||
hi FoldColumn ctermfg=247 ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=247 ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=247 ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=254 cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=255 cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=251 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuKind ctermfg=124 ctermbg=254 cterm=NONE
|
||||
hi PmenuKindSel ctermfg=124 ctermbg=251 cterm=NONE
|
||||
hi PmenuExtra ctermfg=243 ctermbg=254 cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=243 ctermbg=251 cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=231 ctermbg=160 cterm=NONE
|
||||
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
|
||||
@@ -479,12 +511,12 @@ if s:t_Co >= 256
|
||||
hi debugPC ctermfg=26 ctermbg=NONE cterm=reverse
|
||||
hi debugBreakpoint ctermfg=23 ctermbg=NONE cterm=reverse
|
||||
hi Visual ctermfg=231 ctermbg=67 cterm=NONE
|
||||
hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold
|
||||
hi MatchParen ctermfg=30 ctermbg=231 cterm=reverse
|
||||
hi VisualNOS ctermfg=231 ctermbg=30 cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=255 cterm=NONE
|
||||
hi CursorColumn ctermfg=NONE ctermbg=255 cterm=NONE
|
||||
hi Folded ctermfg=243 ctermbg=254 cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=254 cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
|
||||
hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
|
||||
hi Folded ctermfg=243 ctermbg=255 cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
|
||||
hi SpellBad ctermfg=124 ctermbg=NONE cterm=underline
|
||||
hi SpellCap ctermfg=23 ctermbg=NONE cterm=underline
|
||||
hi SpellLocal ctermfg=28 ctermbg=NONE cterm=underline
|
||||
@@ -545,16 +577,12 @@ if s:t_Co >= 16
|
||||
hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
|
||||
hi PmenuKindSel ctermfg=darkred ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuExtra ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=white ctermbg=red cterm=NONE
|
||||
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
|
||||
@@ -569,7 +597,8 @@ if s:t_Co >= 16
|
||||
hi WildMenu ctermfg=black ctermbg=yellow cterm=bold
|
||||
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
|
||||
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
|
||||
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
|
||||
hi Visual ctermfg=white ctermbg=darkblue cterm=NONE
|
||||
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE
|
||||
@@ -592,8 +621,8 @@ if s:t_Co >= 16
|
||||
hi Directory ctermfg=blue ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=white ctermbg=darkmagenta cterm=NONE
|
||||
hi DiffChange ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
|
||||
hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE
|
||||
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
|
||||
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi diffAdded ctermfg=green ctermbg=NONE cterm=NONE
|
||||
@@ -632,13 +661,9 @@ if s:t_Co >= 16
|
||||
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
|
||||
hi PmenuKindSel ctermfg=darkred ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuExtra ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=white ctermbg=red cterm=NONE
|
||||
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
|
||||
@@ -654,7 +679,7 @@ if s:t_Co >= 16
|
||||
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
|
||||
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
|
||||
hi Visual ctermfg=white ctermbg=darkblue cterm=NONE
|
||||
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
|
||||
hi MatchParen ctermfg=darkcyan ctermbg=white cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=cyan cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE
|
||||
@@ -718,18 +743,14 @@ if s:t_Co >= 8
|
||||
hi QuickFixLine ctermfg=grey ctermbg=darkblue cterm=bold
|
||||
hi CursorLineNr ctermfg=black ctermbg=NONE cterm=bold
|
||||
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi NonText ctermfg=black ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=black ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=black ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=black ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuKind ctermfg=darkred ctermbg=grey cterm=NONE
|
||||
hi PmenuKindSel ctermfg=darkred ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuExtra ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
@@ -745,7 +766,7 @@ if s:t_Co >= 8
|
||||
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
|
||||
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold
|
||||
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
@@ -767,8 +788,8 @@ if s:t_Co >= 8
|
||||
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=white ctermbg=darkmagenta cterm=NONE
|
||||
hi DiffChange ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
|
||||
hi DiffChange ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
else
|
||||
@@ -789,14 +810,10 @@ if s:t_Co >= 8
|
||||
hi FoldColumn ctermfg=black ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=black ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=black ctermbg=NONE cterm=NONE
|
||||
hi Pmenu ctermfg=grey ctermbg=black cterm=NONE
|
||||
hi Pmenu ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuKind ctermfg=darkred ctermbg=black cterm=NONE
|
||||
hi PmenuKindSel ctermfg=darkred ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuExtra ctermfg=grey ctermbg=black cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
@@ -812,7 +829,7 @@ if s:t_Co >= 8
|
||||
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
|
||||
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold
|
||||
hi MatchParen ctermfg=darkcyan ctermbg=grey cterm=reverse
|
||||
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
@@ -931,21 +948,20 @@ endif
|
||||
" Color: color15 #FFFFFF 231 white
|
||||
" Color: colorDimWhite #E4E4E4 254 grey
|
||||
" Color: colorLine #262626 235 darkgrey
|
||||
" Color: colorB #303030 236 darkgrey
|
||||
" Color: colorB #1C1C1C 234 darkgrey
|
||||
" Color: colorNonT #585858 240 grey
|
||||
" Color: colorTab #585858 240 grey
|
||||
" Color: colorC #FFFFFF 231 white
|
||||
" Color: colorlC #FF5FFF 207 magenta
|
||||
" Color: colorV #005F87 24 darkblue
|
||||
" Color: colorMP #ff00af 199 magenta
|
||||
" Color: colorPMenuSel #4e4e4e 239 darkcyan
|
||||
" Color: colorMP #C5E7C5 30 darkcyan
|
||||
" Color: colorPMenuSel #444444 238 darkcyan
|
||||
" Color: colorDim #878787 102 grey
|
||||
" Color: diffAdd #875f87 96 darkmagenta
|
||||
" Color: diffAdd #AF87AF 139 darkmagenta
|
||||
" Color: diffDelete #D78787 174 darkred
|
||||
" Color: diffChange #5f5f5f 59 darkgreen
|
||||
" Color: diffText #5f8787 66 cyan
|
||||
" Color: fgDiffText #afffff 159 black
|
||||
" Color: fgDiff #C6C6C6 251 white
|
||||
" Color: diffChange #D0D0D0 252 lightgray
|
||||
" Color: diffText #5FD7D7 80 cyan
|
||||
" Color: fgDiff #000000 16 black
|
||||
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
|
||||
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
|
||||
" Background: light
|
||||
@@ -965,14 +981,14 @@ endif
|
||||
" Color: color14 #008787 30 cyan
|
||||
" Color: color07 #808080 244 grey
|
||||
" Color: color15 #FFFFFF 231 white
|
||||
" Color: colorLine #EEEEEE 255 grey
|
||||
" Color: colorB #E4E4E4 254 grey
|
||||
" Color: colorLine #E4E4E4 254 grey
|
||||
" Color: colorB #EEEEEE 255 grey
|
||||
" Color: colorNonT #9E9E9E 247 darkgrey
|
||||
" Color: colorTab #BCBCBC 250 lightgrey
|
||||
" Color: colorC #000000 16 black
|
||||
" Color: colorlC #FF00FF 201 magenta
|
||||
" Color: colorV #5F87AF 67 darkblue
|
||||
" Color: colorMP #ff00af 199 magenta
|
||||
" Color: colorMP #C5E7C5 30 darkcyan
|
||||
" Color: colorPMenuSel #C6C6C6 251 darkcyan
|
||||
" Color: colorDim #626262 241 darkgrey
|
||||
" Color: diffAdd #D7AFD7 182 darkmagenta
|
||||
@@ -983,4 +999,4 @@ endif
|
||||
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
|
||||
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
|
||||
" Background: any
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:37
|
||||
" Last Updated: Fri 02 Sep 2022 09:46:24 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=light
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'morning'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#e4e4e4', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#bcbcbc', '#0000ff', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#000000']
|
||||
@@ -400,4 +400,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:38
|
||||
" Last Updated: Fri 02 Sep 2022 09:47:20 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'murphy'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#303030', '#ffa700', '#005f00', '#ffd7af', '#87afff', '#ffafaf', '#00afaf', '#bcbcbc', '#444444', '#ff0000', '#00875f', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
|
||||
@@ -394,4 +394,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
" Maintainer: Original maintainerRon Aaron <ron@ronware.org>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:38
|
||||
" Last Updated: Wed 14 Sep 2022 19:05:27 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'pablo'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
|
||||
@@ -427,4 +427,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
" Maintainer: Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:39
|
||||
" Last Updated: Fri 02 Sep 2022 09:50:02 MSK
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
" Generated by Colortemplate v2.2.0
|
||||
|
||||
set background=light
|
||||
|
||||
hi clear
|
||||
let g:colors_name = 'peachpuff'
|
||||
|
||||
let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0)
|
||||
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#ffdab9', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#737373', '#406090', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#000000']
|
||||
@@ -405,4 +405,4 @@ endif
|
||||
" Color: fgDiffB #000000 16 black
|
||||
" Color: bgDiffC8 #5F87AF 67 darkblue
|
||||
" Color: bgDiffD8 #AF5FAF 133 darkmagenta
|
||||
" vim: et ts=8 sw=2 sts=2
|
||||
" vim: et ts=2 sw=2
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user