mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
Compare commits
329 Commits
release-0.
...
v0.10.3
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9b5ee7df4e | ||
![]() |
1a030f6e04 | ||
![]() |
bf66871113 | ||
![]() |
424a452401 | ||
![]() |
01fe4fc589 | ||
![]() |
7abc58349e | ||
![]() |
8fbe3e3941 | ||
![]() |
71faa2be88 | ||
![]() |
650dcbbafe | ||
![]() |
6a63034b51 | ||
![]() |
b5b84b806a | ||
![]() |
950048b206 | ||
![]() |
7ca0408a1f | ||
![]() |
78a36cdd55 | ||
![]() |
694c3992ea | ||
![]() |
9695650c0c | ||
![]() |
7781111fef | ||
![]() |
4007c42b77 | ||
![]() |
584b811aee | ||
![]() |
a930b2666e | ||
![]() |
c36c4ddae2 | ||
![]() |
308e9719cf | ||
![]() |
e80e8a0980 | ||
![]() |
163a532cfa | ||
![]() |
1a12dea191 | ||
![]() |
6f2786433d | ||
![]() |
085f1cc99d | ||
![]() |
3c0e1a89d9 | ||
![]() |
57b0fecd47 | ||
![]() |
f8ee92feec | ||
![]() |
98ec48eefb | ||
![]() |
34a976ec2b | ||
![]() |
6a07b199ff | ||
![]() |
6550227110 | ||
![]() |
b7f025e45b | ||
![]() |
6c12cfe18c | ||
![]() |
7774ca9107 | ||
![]() |
348a939168 | ||
![]() |
9455686b6f | ||
![]() |
1a4e78832f | ||
![]() |
fb5a0e28db | ||
![]() |
b286ba419a | ||
![]() |
94f44122ad | ||
![]() |
0b0385ea6a | ||
![]() |
84bbbd9fbe | ||
![]() |
bbefbc995e | ||
![]() |
97aaea3478 | ||
![]() |
1a02f1835f | ||
![]() |
2d1a13bdf5 | ||
![]() |
27fca9c7d2 | ||
![]() |
5480c0bd75 | ||
![]() |
c257fe5582 | ||
![]() |
ee7885aa21 | ||
![]() |
82ea8a7c3f | ||
![]() |
8b98642002 | ||
![]() |
687c0078c2 | ||
![]() |
68a2259804 | ||
![]() |
aa83d866c1 | ||
![]() |
f31e29fce4 | ||
![]() |
045afa9e8a | ||
![]() |
1fc09b0738 | ||
![]() |
28fba3bf27 | ||
![]() |
2f3c447605 | ||
![]() |
9b4e7c9a0d | ||
![]() |
6a0d1eee46 | ||
![]() |
c9d7ad4a34 | ||
![]() |
d535482ab2 | ||
![]() |
e537379641 | ||
![]() |
3a23149cfc | ||
![]() |
b380a8fe21 | ||
![]() |
6a44055a71 | ||
![]() |
2a8d80a442 | ||
![]() |
53e37391e8 | ||
![]() |
b65e978a23 | ||
![]() |
1db8824fbc | ||
![]() |
d5a0e4ec5b | ||
![]() |
983482626d | ||
![]() |
8d842a301c | ||
![]() |
e63e0a2e06 | ||
![]() |
50a021e653 | ||
![]() |
2c95d48083 | ||
![]() |
ba47b440fd | ||
![]() |
9d7711a732 | ||
![]() |
a3f9bd7f79 | ||
![]() |
017a054e82 | ||
![]() |
d63d379eec | ||
![]() |
fa4bd6994d | ||
![]() |
4abd480e8f | ||
![]() |
b4824edac1 | ||
![]() |
e464b8c90d | ||
![]() |
260ac4b3a2 | ||
![]() |
d585f3103d | ||
![]() |
f3675337f0 | ||
![]() |
b020b66005 | ||
![]() |
6f34f07a31 | ||
![]() |
23a9c67f1b | ||
![]() |
61b0816790 | ||
![]() |
1e1e4066b1 | ||
![]() |
ef05c514aa | ||
![]() |
e13564b9f4 | ||
![]() |
b55435f438 | ||
![]() |
461ed5e6bd | ||
![]() |
8611f4dcf0 | ||
![]() |
95c3fd4dc0 | ||
![]() |
59d3d76b79 | ||
![]() |
886a8b62c5 | ||
![]() |
26b72b0f91 | ||
![]() |
1fe8dc4d2c | ||
![]() |
5cb3505ab8 | ||
![]() |
0f6f5c4682 | ||
![]() |
b5a2d52a36 | ||
![]() |
797f524337 | ||
![]() |
8aea03f7b2 | ||
![]() |
974447bfc3 | ||
![]() |
6ed530baa5 | ||
![]() |
d000c56373 | ||
![]() |
2a32ec784c | ||
![]() |
c7e943a181 | ||
![]() |
d874ba319d | ||
![]() |
b18538527e | ||
![]() |
a6b2233c3e | ||
![]() |
d593b20017 | ||
![]() |
7834d80b81 | ||
![]() |
1ed493cc96 | ||
![]() |
dca6c4e92c | ||
![]() |
40671f18f7 | ||
![]() |
316fa168a1 | ||
![]() |
be831a725d | ||
![]() |
1fd86be15c | ||
![]() |
7284400a34 | ||
![]() |
3ca127063b | ||
![]() |
ca6f8ee267 | ||
![]() |
e4492677ee | ||
![]() |
1f58e27600 | ||
![]() |
b0bac2a339 | ||
![]() |
9f8a5cd022 | ||
![]() |
4552a9629a | ||
![]() |
eec37b6e6b | ||
![]() |
339067ab7e | ||
![]() |
ee57bb5a8e | ||
![]() |
dd0f6afa00 | ||
![]() |
2e1f656eb7 | ||
![]() |
05e72488b9 | ||
![]() |
187c93d7e5 | ||
![]() |
6aba2f3944 | ||
![]() |
21157459fe | ||
![]() |
5955ef0ba8 | ||
![]() |
3af1495af0 | ||
![]() |
1fda01fa55 | ||
![]() |
771b3a52c5 | ||
![]() |
7550947157 | ||
![]() |
c43dd3ef6f | ||
![]() |
a0a95edb2d | ||
![]() |
c2625b6fad | ||
![]() |
ad393c1fc1 | ||
![]() |
4ad864dd09 | ||
![]() |
bce2364f60 | ||
![]() |
006fd0304c | ||
![]() |
7e15526dd2 | ||
![]() |
85ac560947 | ||
![]() |
7e194f0d0c | ||
![]() |
70f7708cdf | ||
![]() |
0d293e4315 | ||
![]() |
ffc457a1dc | ||
![]() |
575136c178 | ||
![]() |
f77db12995 | ||
![]() |
18a9ae169e | ||
![]() |
804a94d300 | ||
![]() |
0389472961 | ||
![]() |
9fd6664ba7 | ||
![]() |
5cdf0c22bd | ||
![]() |
4150e5e6fd | ||
![]() |
8c88f402e1 | ||
![]() |
3d319092d5 | ||
![]() |
6527f5e2d2 | ||
![]() |
ad55ec350c | ||
![]() |
125b253e7b | ||
![]() |
b01202df15 | ||
![]() |
d6437e2ca5 | ||
![]() |
97be9d8563 | ||
![]() |
2fb69ccaf7 | ||
![]() |
0e81c62405 | ||
![]() |
68513c2a89 | ||
![]() |
eb53aba5af | ||
![]() |
e13f03af85 | ||
![]() |
24fa65a500 | ||
![]() |
b94b341ef2 | ||
![]() |
410f43c0ae | ||
![]() |
677eb23c38 | ||
![]() |
a03cc83bfb | ||
![]() |
a333847f6b | ||
![]() |
6136326d63 | ||
![]() |
7400f9dfe5 | ||
![]() |
2ae8bb7b96 | ||
![]() |
19787d6057 | ||
![]() |
f654a30093 | ||
![]() |
29fd7432fd | ||
![]() |
b2587a0665 | ||
![]() |
891cc78179 | ||
![]() |
94aacc2695 | ||
![]() |
ceb82a9396 | ||
![]() |
bddbbd874c | ||
![]() |
576363a0fb | ||
![]() |
c467bfeb93 | ||
![]() |
4ce293c2c3 | ||
![]() |
fde5718e62 | ||
![]() |
a430944ea7 | ||
![]() |
7c055bd74b | ||
![]() |
113e5a91de | ||
![]() |
07de890de6 | ||
![]() |
ae9aa58f9c | ||
![]() |
7582d4a7b5 | ||
![]() |
8c00651131 | ||
![]() |
ba90b54301 | ||
![]() |
46d2906332 | ||
![]() |
978b63a9f1 | ||
![]() |
cb9ccedf04 | ||
![]() |
33121f1eae | ||
![]() |
24ee2e7c74 | ||
![]() |
8fe17036ba | ||
![]() |
63ff7338ea | ||
![]() |
f39fb4c11e | ||
![]() |
b397b5672c | ||
![]() |
bc1e168e49 | ||
![]() |
c35e040b7e | ||
![]() |
ab2d243fd0 | ||
![]() |
5cad641848 | ||
![]() |
f89d4ee6ce | ||
![]() |
d6a73d7314 | ||
![]() |
2d7aab623e | ||
![]() |
28a5923aea | ||
![]() |
65776124b1 | ||
![]() |
2845d05569 | ||
![]() |
356ddb1305 | ||
![]() |
803cc08c17 | ||
![]() |
91e337a477 | ||
![]() |
f76d0dc91e | ||
![]() |
35f6425207 | ||
![]() |
9c6efd0a65 | ||
![]() |
259a620eb8 | ||
![]() |
3b8d0721af | ||
![]() |
eadc4e03a2 | ||
![]() |
17fe405adc | ||
![]() |
f82d7b8200 | ||
![]() |
b16fe558ae | ||
![]() |
34cc49bd72 | ||
![]() |
ad82e11eb7 | ||
![]() |
db65017e60 | ||
![]() |
2eafe248c4 | ||
![]() |
3725db69ef | ||
![]() |
9f2aec2629 | ||
![]() |
f7d8650616 | ||
![]() |
446b05f85a | ||
![]() |
891b235df0 | ||
![]() |
1ab52dff9a | ||
![]() |
0827279ff5 | ||
![]() |
77b0970cda | ||
![]() |
643d6af451 | ||
![]() |
4d9114d3ab | ||
![]() |
a784b901be | ||
![]() |
0608444447 | ||
![]() |
981548b7f7 | ||
![]() |
728f6c7c83 | ||
![]() |
18a36d3d9f | ||
![]() |
8a8c3ed4dc | ||
![]() |
aa1321801d | ||
![]() |
0ee3147bc7 | ||
![]() |
46c2962b3a | ||
![]() |
b6b2272573 | ||
![]() |
dfff482efe | ||
![]() |
8dece36427 | ||
![]() |
7055cd1238 | ||
![]() |
f1fba12803 | ||
![]() |
1fe1f8556e | ||
![]() |
94d8f6bde8 | ||
![]() |
f03348472d | ||
![]() |
571e54e12c | ||
![]() |
704d33634e | ||
![]() |
4c53b9c0a1 | ||
![]() |
df6ce8377f | ||
![]() |
58e1ef2f65 | ||
![]() |
c3aef56199 | ||
![]() |
d8ff216040 | ||
![]() |
89fa1ee822 | ||
![]() |
88cd7a6cdd | ||
![]() |
fdf769fa86 | ||
![]() |
b36458b363 | ||
![]() |
b98aa783f3 | ||
![]() |
039121f5a3 | ||
![]() |
e98637e8c0 | ||
![]() |
b9e540cc70 | ||
![]() |
b322c3560b | ||
![]() |
8d1467ce9a | ||
![]() |
5d9f2d7ecc | ||
![]() |
565fccbeeb | ||
![]() |
3a354bfcaa | ||
![]() |
bec397edda | ||
![]() |
4efca7cda5 | ||
![]() |
84d7bfcf16 | ||
![]() |
777e15fa61 | ||
![]() |
ebc6c38cde | ||
![]() |
bf16fe3f01 | ||
![]() |
28f03205be | ||
![]() |
7e878da7dd | ||
![]() |
21b21b94e6 | ||
![]() |
e1b6187801 | ||
![]() |
bdd5871dc5 | ||
![]() |
10a16c1311 | ||
![]() |
3a727beafd | ||
![]() |
efe8a0a520 | ||
![]() |
4f0c4c3921 | ||
![]() |
4e9864147a | ||
![]() |
89f29fcc92 | ||
![]() |
671073e714 | ||
![]() |
dffadc392e | ||
![]() |
1e62f8e15c | ||
![]() |
8e239ed9ea | ||
![]() |
6a1c0e9574 | ||
![]() |
d6756fc0a5 | ||
![]() |
c6ebb931d9 | ||
![]() |
9c91233a38 | ||
![]() |
81560bbdbf | ||
![]() |
9a2760a01f | ||
![]() |
5eaae797af | ||
![]() |
ea6b2b78bd | ||
![]() |
0cf7e2570c | ||
![]() |
902980edb9 | ||
![]() |
6802db7aa1 | ||
![]() |
d90ee70897 |
@@ -6,7 +6,7 @@ freebsd_task:
|
||||
name: FreeBSD
|
||||
only_if: $BRANCH != "master"
|
||||
freebsd_instance:
|
||||
image_family: freebsd-14-2
|
||||
image_family: freebsd-14-0
|
||||
timeout_in: 30m
|
||||
install_script:
|
||||
- pkg install -y cmake gmake ninja unzip wget gettext python git
|
||||
|
@@ -35,7 +35,6 @@ Checks: >
|
||||
-modernize-macro-to-enum,
|
||||
-readability-avoid-nested-conditional-operator,
|
||||
-readability-else-after-return,
|
||||
-readability-enum-initial-value,
|
||||
-readability-function-size,
|
||||
-readability-isolate-declaration,
|
||||
|
||||
@@ -57,7 +56,6 @@ Checks: >
|
||||
-readability-function-cognitive-complexity,
|
||||
-readability-identifier-length,
|
||||
-readability-magic-numbers,
|
||||
-readability-math-missing-parentheses,
|
||||
-readability-redundant-declaration, Conflicts with our header generation scripts,
|
||||
-readability-suspicious-call-argument,
|
||||
|
||||
@@ -67,7 +65,6 @@ Checks: >
|
||||
-cert-dcl51-cpp,
|
||||
-cert-exp42-c,
|
||||
-cert-flp37-c,
|
||||
-cert-int09-c,
|
||||
-cert-msc24-c,
|
||||
-cert-msc33-c,
|
||||
-cppcoreguidelines-avoid-magic-numbers,
|
||||
|
@@ -10,12 +10,9 @@ insert_final_newline = true
|
||||
[*.{c,h,in,lua}]
|
||||
max_line_length = 100
|
||||
|
||||
[src/nvim/{eval,vvars}.lua]
|
||||
max_line_length = 68
|
||||
|
||||
[*.py]
|
||||
indent_size = 4
|
||||
|
||||
[{Makefile,**/Makefile,*.mk,runtime/doc/*.txt}]
|
||||
[{Makefile,**/Makefile,runtime/doc/*.txt}]
|
||||
indent_style = tab
|
||||
indent_size = 8
|
||||
|
6
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
6
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -1,6 +1,6 @@
|
||||
name: Bug Report
|
||||
description: Report a problem in Nvim
|
||||
type: 'bug'
|
||||
description: Report a problem in Neovim
|
||||
labels: [bug]
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
@@ -43,7 +43,7 @@ body:
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: "Nvim version (nvim -v)"
|
||||
label: "Neovim version (nvim -v)"
|
||||
placeholder: "0.6.0 commit db1b0ee3b30f"
|
||||
validations:
|
||||
required: true
|
||||
|
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,5 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Question
|
||||
url: https://github.com/neovim/neovim/discussions
|
||||
about: Ask about configuration and usage of Nvim
|
||||
url: https://vi.stackexchange.com/
|
||||
about: Ask questions about configuration and usage of Neovim
|
||||
|
4
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
4
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@@ -1,6 +1,6 @@
|
||||
name: Feature request
|
||||
description: Request an enhancement for Nvim
|
||||
type: 'enhancement'
|
||||
description: Request an enhancement for Neovim
|
||||
labels: [enhancement]
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
|
8
.github/ISSUE_TEMPLATE/lsp_bug_report.yml
vendored
8
.github/ISSUE_TEMPLATE/lsp_bug_report.yml
vendored
@@ -1,8 +1,6 @@
|
||||
name: Language server (LSP) client bug
|
||||
description: Report an issue with Nvim LSP
|
||||
title: "LSP: "
|
||||
type: bug
|
||||
labels: [lsp]
|
||||
description: Report an issue with Neovim LSP
|
||||
labels: [bug, lsp]
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
@@ -61,7 +59,7 @@ body:
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: "Nvim version (nvim -v)"
|
||||
label: "Neovim version (nvim -v)"
|
||||
placeholder: "0.6.0 commit db1b0ee3b30f"
|
||||
validations:
|
||||
required: true
|
||||
|
14
.github/scripts/env.ps1
vendored
14
.github/scripts/env.ps1
vendored
@@ -1,16 +1,8 @@
|
||||
# This script enables Developer Command Prompt
|
||||
# See https://github.com/microsoft/vswhere/wiki/Start-Developer-Command-Prompt#using-powershell
|
||||
if ($env:BUILD_ARCH -eq "arm64") {
|
||||
$arch = "arm64"
|
||||
$installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.arm64 -property installationPath
|
||||
} else {
|
||||
$arch = "x64"
|
||||
$installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
|
||||
}
|
||||
|
||||
if ($installationPath) {
|
||||
& "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=$arch -no_logo && set" |
|
||||
ForEach-Object {
|
||||
$installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
|
||||
if ($installationPath -and (Test-Path "$installationPath\Common7\Tools\vsdevcmd.bat")) {
|
||||
& "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x64 -no_logo && set" | ForEach-Object {
|
||||
$name, $value = $_ -split '=', 2
|
||||
"$name=$value" >> $env:GITHUB_ENV
|
||||
}
|
||||
|
21
.github/scripts/install_deps.sh
vendored
21
.github/scripts/install_deps.sh
vendored
@@ -9,9 +9,8 @@ while (($# > 0)); do
|
||||
esac
|
||||
done
|
||||
|
||||
OS=$(uname -s)
|
||||
ARCH=$(uname -m)
|
||||
if [[ $OS == Linux ]]; then
|
||||
os=$(uname -s)
|
||||
if [[ $os == Linux ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential cmake curl gettext ninja-build
|
||||
|
||||
@@ -19,7 +18,7 @@ if [[ $OS == Linux ]]; then
|
||||
DEFAULT_CLANG_VERSION=$(echo | clang -dM -E - | grep __clang_major | awk '{print $3}')
|
||||
CLANG_VERSION=19
|
||||
if ((DEFAULT_CLANG_VERSION >= CLANG_VERSION)); then
|
||||
echo "Default clang version is $DEFAULT_CLANG_VERSION, which is equal or larger than wanted version $CLANG_VERSION. Aborting!"
|
||||
echo "Default clang version is $DEFAULT_CLANG_VERSION, which equal or larger than wanted version $CLANG_VERSION. Aborting!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -31,27 +30,17 @@ if [[ $OS == Linux ]]; then
|
||||
fi
|
||||
|
||||
if [[ -n $TEST ]]; then
|
||||
sudo apt-get install -y locales-all cpanminus attr libattr1-dev gdb inotify-tools xdg-utils
|
||||
sudo apt-get install -y locales-all cpanminus attr libattr1-dev gdb fswatch
|
||||
|
||||
# Use default CC to avoid compilation problems when installing Python modules
|
||||
CC=cc python3 -m pip -q install --user --upgrade --break-system-packages pynvim
|
||||
|
||||
# Skip installing npm on aarch64 as it tends to cause intermittent segmentation faults.
|
||||
# See https://github.com/neovim/neovim/issues/32339.
|
||||
if [[ $ARCH != aarch64 ]]; then
|
||||
npm install -g neovim
|
||||
npm link neovim
|
||||
fi
|
||||
fi
|
||||
elif [[ $OS == Darwin ]]; then
|
||||
elif [[ $os == Darwin ]]; then
|
||||
brew update --quiet
|
||||
brew install ninja
|
||||
if [[ -n $TEST ]]; then
|
||||
brew install cpanminus fswatch
|
||||
|
||||
npm install -g neovim
|
||||
npm link neovim
|
||||
|
||||
# Use default CC to avoid compilation problems when installing Python modules
|
||||
CC=cc python3 -m pip -q install --user --upgrade --break-system-packages pynvim
|
||||
fi
|
||||
|
1
.github/scripts/reviewers_add.js
vendored
1
.github/scripts/reviewers_add.js
vendored
@@ -57,6 +57,7 @@ module.exports = async ({ github, context }) => {
|
||||
|
||||
if (labels.includes("lsp")) {
|
||||
reviewers.add("MariaSolOs");
|
||||
reviewers.add("mfussenegger");
|
||||
}
|
||||
|
||||
if (labels.includes("netrw")) {
|
||||
|
23
.github/workflows/build.yml
vendored
23
.github/workflows/build.yml
vendored
@@ -21,28 +21,13 @@ env:
|
||||
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
|
||||
|
||||
jobs:
|
||||
wasmtime:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
test: [ubuntu-latest, macos-latest, windows-latest]
|
||||
runs-on: ${{ matrix.test }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.github/actions/setup
|
||||
- run: |
|
||||
cmake -S cmake.deps --preset ci -D ENABLE_WASMTIME=ON
|
||||
cmake --build .deps
|
||||
cmake --preset ci -D ENABLE_WASMTIME=ON
|
||||
cmake --build build
|
||||
|
||||
old-cmake:
|
||||
name: Test oldest supported cmake
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
env:
|
||||
CMAKE_URL: 'https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.sh'
|
||||
CMAKE_VERSION: '3.16.0'
|
||||
CMAKE_URL: 'https://cmake.org/files/v3.13/cmake-3.13.0-Linux-x86_64.sh'
|
||||
CMAKE_VERSION: '3.13.0'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.github/actions/setup
|
||||
@@ -89,9 +74,7 @@ jobs:
|
||||
for d in *; do (cd "$d"; rm -rf ./autom4te.cache; make clean || true; make distclean || true); done
|
||||
|
||||
- name: Re-build bundled dependencies with no network access
|
||||
run: |
|
||||
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
|
||||
unshare --map-root-user --net make deps DEPS_CMAKE_FLAGS=-DUSE_EXISTING_SRC_DIR=ON
|
||||
run: unshare --map-root-user --net make deps DEPS_CMAKE_FLAGS=-DUSE_EXISTING_SRC_DIR=ON
|
||||
|
||||
- name: Build
|
||||
run: make CMAKE_FLAGS="-D CI_BUILD=ON"
|
||||
|
14
.github/workflows/news.yml
vendored
14
.github/workflows/news.yml
vendored
@@ -19,15 +19,15 @@ jobs:
|
||||
message=$(git log -n1 --pretty=format:%s $commit)
|
||||
type="$(echo "$message" | sed -E 's|([[:alpha:]]+)(\(.*\))?!?:.*|\1|')"
|
||||
breaking="$(echo "$message" | sed -E 's|[[:alpha:]]+(\(.*\))?!:.*|breaking-change|')"
|
||||
if [[ "$type" == "feat" ]] || [[ "$type" == "perf" ]] || [[ "$breaking" == "breaking-change" ]]; then
|
||||
! git diff HEAD~${{ github.event.pull_request.commits }}..HEAD --quiet runtime/doc/news.txt runtime/doc/deprecated.txt ||
|
||||
if [[ "$type" == "feat" ]] || [[ "$breaking" == "breaking-change" ]]; then
|
||||
! git diff HEAD~${{ github.event.pull_request.commits }}..HEAD --quiet runtime/doc/news.txt ||
|
||||
{
|
||||
echo "
|
||||
Pull request includes a new feature, performance improvement
|
||||
or a breaking change, but news.txt hasn't been updated yet.
|
||||
This is just a reminder that news.txt may need to be updated.
|
||||
You can ignore this CI failure if you think the change won't
|
||||
be of interest to users."
|
||||
Pull request includes a new feature or a breaking change, but
|
||||
news.txt hasn't been updated yet. This is just a reminder
|
||||
that news.txt may need to be updated. You can ignore this CI
|
||||
failure if you think the change won't be of interest to
|
||||
users."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
64
.github/workflows/notes.md
vendored
64
.github/workflows/notes.md
vendored
@@ -2,28 +2,21 @@
|
||||
${NVIM_VERSION}
|
||||
```
|
||||
|
||||
## Release notes
|
||||
|
||||
- [Changelog](https://github.com/neovim/neovim/commit/${NVIM_COMMIT}) (fixes + features)
|
||||
- [News](./runtime/doc/news.txt) (`:help news` in Nvim)
|
||||
|
||||
## Install
|
||||
|
||||
### Windows
|
||||
|
||||
#### Zip
|
||||
|
||||
1. Download **nvim-win64.zip** (or **nvim-win-arm64.zip** for ARM)
|
||||
1. Download **nvim-win64.zip**
|
||||
2. Extract the zip
|
||||
3. Run `nvim.exe` in your terminal
|
||||
3. Run `nvim.exe` on your CLI of choice
|
||||
|
||||
#### MSI
|
||||
|
||||
1. Download **nvim-win64.msi** (or **nvim-win-arm64.msi** for ARM)
|
||||
1. Download **nvim-win64.msi**
|
||||
2. Run the MSI
|
||||
3. Run `nvim.exe` in your terminal
|
||||
|
||||
Note: On Windows "Server" you may need to [install vcruntime140.dll](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170).
|
||||
3. Run `nvim.exe` on your CLI of choice
|
||||
|
||||
### macOS (x86_64)
|
||||
|
||||
@@ -39,44 +32,39 @@ Note: On Windows "Server" you may need to [install vcruntime140.dll](https://lea
|
||||
3. Extract: `tar xzvf nvim-macos-arm64.tar.gz`
|
||||
4. Run `./nvim-macos-arm64/bin/nvim`
|
||||
|
||||
### Linux (x86_64)
|
||||
### Linux (x64)
|
||||
|
||||
If your system does not have the [required glibc version](https://neovim.io/doc/user/support.html#supported-platforms), try the (unsupported) [builds for older glibc](https://github.com/neovim/neovim-releases).
|
||||
Minimum glibc version to run these releases is 2.31. People requiring releases
|
||||
that work on older glibc versions can find them at
|
||||
https://github.com/neovim/neovim-releases.
|
||||
|
||||
#### AppImage
|
||||
|
||||
1. Download **nvim-linux-x86_64.appimage**
|
||||
2. Run `chmod u+x nvim-linux-x86_64.appimage && ./nvim-linux-x86_64.appimage`
|
||||
1. Download **nvim.appimage**
|
||||
2. Run `chmod u+x nvim.appimage && ./nvim.appimage`
|
||||
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
|
||||
```
|
||||
./nvim-linux-x86_64.appimage --appimage-extract
|
||||
./nvim.appimage --appimage-extract
|
||||
./squashfs-root/usr/bin/nvim
|
||||
```
|
||||
|
||||
#### Tarball
|
||||
|
||||
1. Download **nvim-linux-x86_64.tar.gz**
|
||||
2. Extract: `tar xzvf nvim-linux-x86_64.tar.gz`
|
||||
3. Run `./nvim-linux-x86_64/bin/nvim`
|
||||
|
||||
### Linux (arm64) - Untested
|
||||
|
||||
#### AppImage
|
||||
|
||||
1. Download **nvim-linux-arm64.appimage**
|
||||
2. Run `chmod u+x nvim-linux-arm64.appimage && ./nvim-linux-arm64.appimage`
|
||||
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
|
||||
```
|
||||
./nvim-linux-arm64.appimage --appimage-extract
|
||||
./squashfs-root/usr/bin/nvim
|
||||
```
|
||||
|
||||
#### Tarball
|
||||
|
||||
1. Download **nvim-linux-arm64.tar.gz**
|
||||
2. Extract: `tar xzvf nvim-linux-arm64.tar.gz`
|
||||
3. Run `./nvim-linux-arm64/bin/nvim`
|
||||
1. Download **nvim-linux64.tar.gz**
|
||||
2. Extract: `tar xzvf nvim-linux64.tar.gz`
|
||||
3. Run `./nvim-linux64/bin/nvim`
|
||||
|
||||
### Other
|
||||
|
||||
- Install by [package manager](https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-package)
|
||||
|
||||
## SHA256 Checksums
|
||||
|
||||
```
|
||||
${SHA_LINUX_64_TAR}
|
||||
${SHA_APP_IMAGE}
|
||||
${SHA_APP_IMAGE_ZSYNC}
|
||||
${SHA_MACOS_X86_64}
|
||||
${SHA_MACOS_ARM64}
|
||||
${SHA_WIN_64_ZIP}
|
||||
${SHA_WIN_64_MSI}
|
||||
```
|
||||
|
100
.github/workflows/release.yml
vendored
100
.github/workflows/release.yml
vendored
@@ -13,6 +13,7 @@ on:
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
|
||||
# Build on the oldest supported images, so we have broader compatibility
|
||||
# Build with gcc-10 to prevent triggering #14150 (default is still gcc-9 on 20.04)
|
||||
jobs:
|
||||
setup:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -38,20 +39,10 @@ jobs:
|
||||
printf "appimage_tag=${APPIMAGE_TAG}\n" >> $GITHUB_OUTPUT
|
||||
|
||||
linux:
|
||||
runs-on: ubuntu-20.04
|
||||
needs: setup
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
runner: [ ubuntu-22.04, ubuntu-22.04-arm ]
|
||||
include:
|
||||
- runner: ubuntu-22.04
|
||||
arch: x86_64
|
||||
- runner: ubuntu-22.04-arm
|
||||
arch: arm64
|
||||
runs-on: ${{ matrix.runner }}
|
||||
env:
|
||||
CC: ${{ matrix.cc }}
|
||||
LDAI_NO_APPSTREAM: 1 # skip checking (broken) AppStream metadata for issues
|
||||
CC: gcc-10
|
||||
outputs:
|
||||
version: ${{ steps.build.outputs.version }}
|
||||
steps:
|
||||
@@ -60,25 +51,23 @@ jobs:
|
||||
# Perform a full checkout #13471
|
||||
fetch-depth: 0
|
||||
- run: ./.github/scripts/install_deps.sh
|
||||
- run: sudo apt-get install -y libfuse2
|
||||
- run: echo "CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}" >> $GITHUB_ENV
|
||||
- name: appimage
|
||||
run: |
|
||||
./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }}
|
||||
run: ./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }}
|
||||
- name: tar.gz
|
||||
run: cpack --config build/CPackConfig.cmake -G TGZ
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: nvim-appimage-${{ matrix.arch }}
|
||||
name: appimage
|
||||
path: |
|
||||
build/bin/nvim-linux-${{ matrix.arch }}.appimage
|
||||
build/bin/nvim-linux-${{ matrix.arch }}.appimage.zsync
|
||||
build/bin/nvim.appimage
|
||||
build/bin/nvim.appimage.zsync
|
||||
retention-days: 1
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: nvim-linux-${{ matrix.arch }}
|
||||
name: nvim-linux64
|
||||
path: |
|
||||
build/nvim-linux-${{ matrix.arch }}.tar.gz
|
||||
build/nvim-linux64.tar.gz
|
||||
retention-days: 1
|
||||
- name: Export version
|
||||
id: build
|
||||
@@ -86,6 +75,7 @@ jobs:
|
||||
printf 'version<<END\n' >> $GITHUB_OUTPUT
|
||||
./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT
|
||||
printf 'END\n' >> $GITHUB_OUTPUT
|
||||
|
||||
macos:
|
||||
needs: setup
|
||||
strategy:
|
||||
@@ -114,6 +104,7 @@ jobs:
|
||||
-D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \
|
||||
-D CMAKE_FIND_FRAMEWORK=NEVER
|
||||
cmake --build .deps
|
||||
|
||||
- name: Build neovim
|
||||
run: |
|
||||
cmake -B build -G Ninja \
|
||||
@@ -121,6 +112,7 @@ jobs:
|
||||
-D ENABLE_LIBINTL=OFF \
|
||||
-D CMAKE_FIND_FRAMEWORK=NEVER
|
||||
cmake --build build
|
||||
|
||||
- name: Package
|
||||
run: cpack --config build/CPackConfig.cmake
|
||||
|
||||
@@ -132,44 +124,27 @@ jobs:
|
||||
|
||||
windows:
|
||||
needs: setup
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- runner: windows-2022
|
||||
arch: x86_64
|
||||
archive_name: nvim-win64
|
||||
- runner: windows-11-arm
|
||||
arch: arm64
|
||||
archive_name: nvim-win-arm64
|
||||
runs-on: ${{ matrix.runner }}
|
||||
runs-on: windows-2019
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
# Perform a full checkout #13471
|
||||
fetch-depth: 0
|
||||
- run: .github/scripts/env.ps1
|
||||
env:
|
||||
BUILD_ARCH: ${{ matrix.arch }}
|
||||
- name: Install Wix
|
||||
run: |
|
||||
Invoke-WebRequest -Uri "https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip" -OutFile "wix314-binaries.zip"
|
||||
Expand-Archive -Path "wix314-binaries.zip" -DestinationPath "C:/wix"
|
||||
echo "C:\wix" >> $env:GITHUB_PATH
|
||||
- name: Build deps
|
||||
run: |
|
||||
cmake -S cmake.deps -B .deps -G Ninja -DCMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}
|
||||
cmake --build .deps
|
||||
- name: Build package
|
||||
- name: build package
|
||||
run: |
|
||||
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}
|
||||
cmake --build build --target package
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: nvim-win-${{ matrix.arch }}
|
||||
name: nvim-win64
|
||||
path: |
|
||||
build/${{ matrix.archive_name }}.zip
|
||||
build/${{ matrix.archive_name }}.msi
|
||||
build/nvim-win64.msi
|
||||
build/nvim-win64.zip
|
||||
retention-days: 1
|
||||
|
||||
publish:
|
||||
@@ -210,14 +185,47 @@ jobs:
|
||||
echo 'PRERELEASE=') >> $GITHUB_ENV
|
||||
gh release delete stable --yes || true
|
||||
git push origin :stable || true
|
||||
# `sha256sum` outputs <sha> <path>, so we cd into each dir to drop the
|
||||
# containing folder from the output.
|
||||
- name: Generate Linux64 SHA256 checksums
|
||||
run: |
|
||||
cd ./nvim-linux64
|
||||
sha256sum nvim-linux64.tar.gz > nvim-linux64.tar.gz.sha256sum
|
||||
echo "SHA_LINUX_64_TAR=$(cat nvim-linux64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
||||
- name: Generate App Image SHA256 checksums
|
||||
run: |
|
||||
cd ./appimage
|
||||
sha256sum nvim.appimage > nvim.appimage.sha256sum
|
||||
echo "SHA_APP_IMAGE=$(cat nvim.appimage.sha256sum)" >> $GITHUB_ENV
|
||||
- name: Generate App Image Zsync SHA256 checksums
|
||||
run: |
|
||||
cd ./appimage
|
||||
sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum
|
||||
echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV
|
||||
- name: Generate macos x86_64 SHA256 checksums
|
||||
run: |
|
||||
cd ./nvim-macos-x86_64
|
||||
sha256sum nvim-macos-x86_64.tar.gz > nvim-macos-x86_64.tar.gz.sha256sum
|
||||
echo "SHA_MACOS_X86_64=$(cat nvim-macos-x86_64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
||||
- name: Generate macos arm64 SHA256 checksums
|
||||
run: |
|
||||
cd ./nvim-macos-arm64
|
||||
sha256sum nvim-macos-arm64.tar.gz > nvim-macos-arm64.tar.gz.sha256sum
|
||||
echo "SHA_MACOS_ARM64=$(cat nvim-macos-arm64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
||||
- name: Generate Win64 SHA256 checksums
|
||||
run: |
|
||||
cd ./nvim-win64
|
||||
sha256sum nvim-win64.zip > nvim-win64.zip.sha256sum
|
||||
echo "SHA_WIN_64_ZIP=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
|
||||
sha256sum nvim-win64.msi > nvim-win64.msi.sha256sum
|
||||
echo "SHA_WIN_64_MSI=$(cat nvim-win64.msi.sha256sum)" >> $GITHUB_ENV
|
||||
- name: Publish release
|
||||
env:
|
||||
NVIM_VERSION: ${{ needs.linux.outputs.version }}
|
||||
NVIM_COMMIT: ${{ github.sha }}
|
||||
DEBUG: api
|
||||
run: |
|
||||
envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md"
|
||||
if [ "$TAG_NAME" != "nightly" ]; then
|
||||
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-arm64/* nvim-appimage-x86_64/* nvim-appimage-arm64/* nvim-win-x86_64/* nvim-win-arm64/*
|
||||
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/*
|
||||
fi
|
||||
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-arm64/* nvim-appimage-x86_64/* nvim-appimage-arm64/* nvim-win-x86_64/* nvim-win-arm64/*
|
||||
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/*
|
||||
|
45
.github/workflows/test.yml
vendored
45
.github/workflows/test.yml
vendored
@@ -57,10 +57,6 @@ jobs:
|
||||
name: stylua
|
||||
run: cmake --build build --target lintlua-stylua
|
||||
|
||||
- if: success() || failure() && steps.abort_job.outputs.status == 'success'
|
||||
name: luals
|
||||
run: cmake --build build --target luals
|
||||
|
||||
- if: success() || failure() && steps.abort_job.outputs.status == 'success'
|
||||
name: luacheck
|
||||
run: cmake --build build --target lintlua-luacheck
|
||||
@@ -110,8 +106,7 @@ jobs:
|
||||
[
|
||||
{ runner: ubuntu-24.04, os: ubuntu, flavor: asan, cc: clang, flags: -D ENABLE_ASAN_UBSAN=ON },
|
||||
{ runner: ubuntu-24.04, os: ubuntu, flavor: tsan, cc: clang, flags: -D ENABLE_TSAN=ON },
|
||||
{ runner: ubuntu-24.04, os: ubuntu, flavor: release, cc: gcc, flags: -D CMAKE_BUILD_TYPE=Release -D ENABLE_TRANSLATIONS=ON },
|
||||
# { runner: ubuntu-24.04-arm, os: ubuntu, flavor: arm, cc: gcc, flags: -D CMAKE_BUILD_TYPE=RelWithDebInfo },
|
||||
{ runner: ubuntu-24.04, os: ubuntu, flavor: release, cc: gcc, flags: -D CMAKE_BUILD_TYPE=Release },
|
||||
{ runner: macos-13, os: macos, flavor: intel, cc: clang, flags: -D CMAKE_FIND_FRAMEWORK=NEVER, deps_flags: -D CMAKE_FIND_FRAMEWORK=NEVER },
|
||||
{ runner: macos-15, os: macos, flavor: arm, cc: clang, flags: -D CMAKE_FIND_FRAMEWORK=NEVER, deps_flags: -D CMAKE_FIND_FRAMEWORK=NEVER },
|
||||
{ runner: ubuntu-24.04, os: ubuntu, flavor: puc-lua, cc: gcc, deps_flags: -D USE_BUNDLED_LUAJIT=OFF -D USE_BUNDLED_LUA=ON, flags: -D PREFER_LUA=ON },
|
||||
@@ -143,6 +138,10 @@ jobs:
|
||||
echo "Install neovim RubyGem."
|
||||
gem install --no-document --bindir "$BIN_DIR" --user-install --pre neovim
|
||||
|
||||
echo "Install neovim npm package"
|
||||
npm install -g neovim
|
||||
npm link neovim
|
||||
|
||||
sudo cpanm -n Neovim::Ext || cat "$HOME/.cpanm/build.log"
|
||||
perl -W -e 'use Neovim::Ext; print $Neovim::Ext::VERSION'
|
||||
|
||||
@@ -204,6 +203,37 @@ jobs:
|
||||
windows:
|
||||
uses: ./.github/workflows/test_windows.yml
|
||||
|
||||
# This job tests the following things:
|
||||
# - Check if MinSizeRel and RelWithDebInfo compiles correctly.
|
||||
# - Test the above build types with the GCC compiler specifically.
|
||||
# Empirically the difference in warning levels between GCC and other
|
||||
# compilers is particularly big.
|
||||
# - Test if the build works with multi-config generators. We mostly use
|
||||
# single-config generators so it's nice to have a small sanity check for
|
||||
# multi-config.
|
||||
build-types:
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 10
|
||||
env:
|
||||
CC: gcc
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.github/actions/setup
|
||||
|
||||
- name: Build third-party deps
|
||||
run: |
|
||||
cmake -S cmake.deps -B .deps -G "Ninja Multi-Config"
|
||||
cmake --build .deps
|
||||
|
||||
- name: Configure
|
||||
run: cmake --preset ci -G "Ninja Multi-Config"
|
||||
|
||||
- name: RelWithDebInfo
|
||||
run: cmake --build build --config RelWithDebInfo
|
||||
|
||||
- name: MinSizeRel
|
||||
run: cmake --build build --config MinSizeRel
|
||||
|
||||
with-external-deps:
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 10
|
||||
@@ -218,6 +248,8 @@ jobs:
|
||||
sudo add-apt-repository ppa:neovim-ppa/stable
|
||||
sudo apt-get install -y \
|
||||
libluajit-5.1-dev \
|
||||
libmsgpack-dev \
|
||||
libtermkey-dev \
|
||||
libunibilium-dev \
|
||||
libuv1-dev \
|
||||
lua-filesystem \
|
||||
@@ -225,6 +257,7 @@ jobs:
|
||||
luajit \
|
||||
lua-luv-dev
|
||||
# libtree-sitter-dev \
|
||||
# libvterm-dev
|
||||
|
||||
# Remove comments from packages once we start using these external
|
||||
# dependencies.
|
||||
|
8
.github/workflows/test_windows.yml
vendored
8
.github/workflows/test_windows.yml
vendored
@@ -31,6 +31,13 @@ jobs:
|
||||
cmake --preset ci -D CMAKE_BUILD_TYPE='RelWithDebInfo' ${{ inputs.build_flags }}
|
||||
cmake --build build
|
||||
|
||||
# FIXME(dundargoc): this workaround is needed as the python3 provider
|
||||
# tests suddenly started to become extremely flaky, and this removes the
|
||||
# flakiness for some reason.
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.13'
|
||||
|
||||
- name: Install test deps
|
||||
run: |
|
||||
$PSNativeCommandArgumentPassing = 'Legacy'
|
||||
@@ -60,7 +67,6 @@ jobs:
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
update: true
|
||||
install: unzip
|
||||
pacboy: >-
|
||||
make:p gcc:p diffutils:p
|
||||
release: false
|
||||
|
8
.github/workflows/vim_patches.yml
vendored
8
.github/workflows/vim_patches.yml
vendored
@@ -28,10 +28,10 @@ jobs:
|
||||
- run: sudo apt-get install libfuse2
|
||||
|
||||
- run: |
|
||||
gh release download -R neovim/neovim -p nvim-linux-x86_64.appimage
|
||||
chmod a+x nvim-linux-x86_64.appimage
|
||||
gh release download -R neovim/neovim -p nvim.appimage
|
||||
chmod a+x nvim.appimage
|
||||
mkdir -p $HOME/.local/bin
|
||||
mv nvim-linux-x86_64.appimage $HOME/.local/bin/nvim
|
||||
mv nvim.appimage $HOME/.local/bin/nvim
|
||||
printf '%s\n' "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Set up git config
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
id: update-version
|
||||
run: |
|
||||
git checkout -b ${VERSION_BRANCH}
|
||||
nvim -l scripts/vimpatch.lua
|
||||
nvim -V1 -es -i NONE +'luafile scripts/vimpatch.lua' +q
|
||||
printf 'NEW_PATCHES=%s\n' $([ -z "$(git diff)" ]; echo $?) >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Automatic PR
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -44,7 +44,6 @@ compile_commands.json
|
||||
/test/old/testdir/messages
|
||||
/test/old/testdir/starttime
|
||||
/test/old/testdir/viminfo
|
||||
/test/old/testdir/opt_test.vim
|
||||
/test/old/testdir/test.ok
|
||||
/test/old/testdir/*.failed
|
||||
/test/old/testdir/X*
|
||||
|
@@ -38,12 +38,10 @@ globals = {
|
||||
"vim.bo",
|
||||
"vim.wo",
|
||||
"vim.go",
|
||||
"vim.env",
|
||||
"_",
|
||||
"vim.env"
|
||||
}
|
||||
|
||||
exclude_files = {
|
||||
'test/_meta.lua',
|
||||
'test/functional/fixtures/lua/syntax_error.lua',
|
||||
'runtime/lua/vim/treesitter/_meta.lua',
|
||||
'runtime/lua/vim/_meta/vimfn.lua',
|
||||
|
@@ -10,8 +10,7 @@
|
||||
"${3rd}/luv/library"
|
||||
],
|
||||
"ignoreDir": [
|
||||
"test",
|
||||
"_vim9script.lua"
|
||||
"test"
|
||||
],
|
||||
"checkThirdParty": "Disable"
|
||||
},
|
||||
|
1
.mailmap
1
.mailmap
@@ -18,7 +18,6 @@ Eisuke Kawashima <e-kwsm@users.noreply.github.com> E Kawashima
|
||||
ElPiloto <luis.r.piloto@gmail.com> Luis Piloto
|
||||
Eliseo Martínez <eliseomarmol@gmail.com> Eliseo Martínez
|
||||
Fabian Viöl <f.vioel@googlemail.com> Fabian
|
||||
Famiu Haque <famiuhaque@proton.me> <famiuhaque@protonmail.com>
|
||||
Florian Walch <florian@fwalch.com> <fwalch@users.noreply.github.com>
|
||||
Gabriel Cruz <gabs.oficial98@gmail.com> <LTKills@users.noreply.github.com>
|
||||
Gaelan Steele <gbs@canishe.com> Gaelan
|
||||
|
73
BUILD.md
73
BUILD.md
@@ -5,15 +5,14 @@
|
||||
|
||||
1. Install [build prerequisites](#build-prerequisites) on your system
|
||||
2. `git clone https://github.com/neovim/neovim`
|
||||
3. `cd neovim`
|
||||
3. `cd neovim && make CMAKE_BUILD_TYPE=RelWithDebInfo`
|
||||
- If you want the **stable release**, also run `git checkout stable`.
|
||||
4. `make CMAKE_BUILD_TYPE=RelWithDebInfo`
|
||||
- If you want to install to a custom location, set `CMAKE_INSTALL_PREFIX`. See also [INSTALL.md](./INSTALL.md#install-from-source).
|
||||
- On BSD, use `gmake` instead of `make`.
|
||||
- To build on Windows, see the [Building on Windows](#building-on-windows) section. _MSVC (Visual Studio) is recommended._
|
||||
5. `sudo make install`
|
||||
4. `sudo make install`
|
||||
- Default install location is `/usr/local`
|
||||
- On Debian/Ubuntu, instead of `sudo make install`, you can try `cd build && cpack -G DEB && sudo dpkg -i nvim-linux-<arch>.deb` (with `<arch>` either `x86_64` or `arm64`) to build DEB-package and install it. This helps ensure clean removal of installed files. Note: This is an unsupported, "best-effort" feature of the Nvim build.
|
||||
- On Debian/Ubuntu, instead of installing files directly with `sudo make install`, you can run `cd build && cpack -G DEB && sudo dpkg -i nvim-linux64.deb` to build DEB-package and install it. This should help ensuring the clean removal of installed files.
|
||||
|
||||
**Notes**:
|
||||
- From the repository's root directory, running `make` will download and build all the needed dependencies and put the `nvim` executable in `build/bin`.
|
||||
@@ -85,7 +84,7 @@ make deps
|
||||
- Right-click _CMakeLists.txt → Delete Cache_.
|
||||
- Right-click _CMakeLists.txt → Generate Cache_.
|
||||
- If you see an "access violation" from `ntdll`, you can ignore it and continue.
|
||||
4. If you see an error like `uv.dll not found`, try the `nvim.exe (Install)` target. Then switch back to `nvim.exe (bin\nvim.exe)`.
|
||||
4. If you set an error like `msgpackc.dll not found`, try the `nvim.exe (Install)` target. Then switch back to `nvim.exe (bin\nvim.exe)`.
|
||||
|
||||
### Windows / MSVC PowerShell
|
||||
|
||||
@@ -132,13 +131,12 @@ https://github.com/cascent/neovim-cygwin was built on Cygwin 2.9.0. Newer `libuv
|
||||
1. From the MSYS2 shell, install these packages:
|
||||
```
|
||||
pacman -S \
|
||||
mingw-w64-ucrt-x86_64-gcc \
|
||||
mingw-w64-x86_64-{cmake,make,ninja,diffutils}
|
||||
mingw-w64-x86_64-{gcc,cmake,make,ninja,diffutils}
|
||||
```
|
||||
2. From the Windows Command Prompt (`cmd.exe`), set up the `PATH` and build.
|
||||
|
||||
```cmd
|
||||
set PATH=c:\msys64\ucrt64\bin;c:\msys64\usr\bin;%PATH%
|
||||
set PATH=c:\msys64\mingw64\bin;c:\msys64\usr\bin;%PATH%
|
||||
```
|
||||
3. You have two options:
|
||||
- Build using `cmake` and `Ninja` generator:
|
||||
@@ -242,7 +240,7 @@ cmake --build build
|
||||
### How to build without "bundled" dependencies
|
||||
|
||||
1. Manually install the dependencies:
|
||||
- libuv libluv libutf8proc luajit lua-lpeg tree-sitter tree-sitter-c tree-sitter-lua tree-sitter-markdown tree-sitter-query tree-sitter-vim tree-sitter-vimdoc unibilium
|
||||
- libuv libluv libvterm luajit lua-lpeg lua-mpack msgpack-c tree-sitter tree-sitter-c tree-sitter-lua tree-sitter-markdown tree-sitter-query tree-sitter-vim tree-sitter-vimdoc unibilium
|
||||
2. Run CMake:
|
||||
```sh
|
||||
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
@@ -250,7 +248,7 @@ cmake --build build
|
||||
```
|
||||
If all the dependencies are not available in the package, you can use only some of the bundled dependencies as follows (example of using `ninja`):
|
||||
```sh
|
||||
cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_BUNDLED=OFF -DUSE_BUNDLED_TS=ON
|
||||
cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_BUNDLED=OFF -DUSE_BUNDLED_LIBVTERM=ON -DUSE_BUNDLED_TS=ON
|
||||
cmake --build .deps
|
||||
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
cmake --build build
|
||||
@@ -259,34 +257,11 @@ cmake --build build
|
||||
- Using `ninja` is strongly recommended.
|
||||
4. If treesitter parsers are not bundled, they need to be available in a `parser/` runtime directory (e.g. `/usr/share/nvim/runtime/parser/`).
|
||||
|
||||
### How to build static binary (on Linux)
|
||||
|
||||
1. Use a linux distribution which uses musl C. We will use Alpine Linux but any distro with musl should work. (glibc does not support static linking)
|
||||
2. Run make passing the `STATIC_BUILD` variable: `make CMAKE_EXTRA_FLAGS="-DSTATIC_BUILD=1"`
|
||||
|
||||
In case you are not using Alpine Linux you can use a container to do the build the binary:
|
||||
|
||||
```bash
|
||||
podman run \
|
||||
--rm \
|
||||
-it \
|
||||
-v "$PWD:/workdir" \
|
||||
-w /workdir \
|
||||
alpine:latest \
|
||||
bash -c 'apk add build-base cmake coreutils curl gettext-tiny-dev && make CMAKE_EXTRA_FLAGS="-DSTATIC_BUILD=1"'
|
||||
```
|
||||
|
||||
The resulting binary in `build/bin/nvim` will have all the dependencies statically linked:
|
||||
|
||||
```
|
||||
build/bin/nvim: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, BuildID[sha1]=b93fa8e678d508ac0a76a2e3da20b119105f1b2d, with debug_info, not stripped
|
||||
```
|
||||
|
||||
#### Debian 10 (Buster) example:
|
||||
|
||||
```sh
|
||||
sudo apt install luajit libluajit-5.1-dev lua-lpeg libunibilium-dev
|
||||
cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_BUNDLED=OFF -DUSE_BUNDLED_LIBUV=ON -DUSE_BUNDLED_LUV=ON -DUSE_BUNDLED_TS=ON -DUSE_BUNDLED_UTF8PROC=ON
|
||||
sudo apt install luajit libluajit-5.1-dev lua-mpack lua-lpeg libunibilium-dev libmsgpack-dev
|
||||
cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_BUNDLED=OFF -DUSE_BUNDLED_LIBUV=ON -DUSE_BUNDLED_LUV=ON -DUSE_BUNDLED_LIBVTERM=ON -DUSE_BUNDLED_TS=ON
|
||||
cmake --build .deps
|
||||
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
cmake --build build
|
||||
@@ -300,7 +275,7 @@ cmake --build build
|
||||
```
|
||||
- Example of using a package with some dependencies:
|
||||
```
|
||||
make BUNDLED_CMAKE_FLAG="-DUSE_BUNDLED=OFF -DUSE_BUNDLED_LUV=ON -DUSE_BUNDLED_TS=ON -DUSE_BUNDLED_LIBUV=ON"
|
||||
make BUNDLED_CMAKE_FLAG="-DUSE_BUNDLED=OFF -DUSE_BUNDLED_LUV=ON -DUSE_BUNDLED_TS=ON -DUSE_BUNDLED_LIBVTERM=ON -DUSE_BUNDLED_LIBUV=ON"
|
||||
```
|
||||
|
||||
## Build prerequisites
|
||||
@@ -308,22 +283,21 @@ cmake --build build
|
||||
General requirements (see [#1469](https://github.com/neovim/neovim/issues/1469#issuecomment-63058312)):
|
||||
|
||||
- Clang or GCC version 4.9+
|
||||
- CMake version 3.16+, built with TLS/SSL support
|
||||
- Optional: Get the latest CMake from https://cmake.org/download/
|
||||
- Provides a shell script which works on most Linux systems. After running it, ensure the resulting `cmake` binary is in your $PATH so the the Nvim build will find it.
|
||||
- CMake version 3.13+, built with TLS/SSL support
|
||||
- Optional: Get the latest CMake from an [installer](https://github.com/Kitware/CMake/releases) or the [Python package](https://pypi.org/project/cmake/) (`pip install cmake`)
|
||||
|
||||
Platform-specific requirements are listed below.
|
||||
|
||||
### Ubuntu / Debian
|
||||
|
||||
```sh
|
||||
sudo apt-get install ninja-build gettext cmake curl build-essential
|
||||
sudo apt-get install ninja-build gettext cmake unzip curl build-essential
|
||||
```
|
||||
|
||||
### RHEL / Fedora
|
||||
|
||||
```
|
||||
sudo dnf -y install ninja-build cmake gcc make gettext curl glibc-gconv-extra
|
||||
sudo dnf -y install ninja-build cmake gcc make unzip gettext curl glibc-gconv-extra
|
||||
```
|
||||
|
||||
### openSUSE
|
||||
@@ -335,13 +309,13 @@ sudo zypper install ninja cmake gcc-c++ gettext-tools curl
|
||||
### Arch Linux
|
||||
|
||||
```
|
||||
sudo pacman -S base-devel cmake ninja curl
|
||||
sudo pacman -S base-devel cmake unzip ninja curl
|
||||
```
|
||||
|
||||
### Alpine Linux
|
||||
|
||||
```
|
||||
apk add build-base cmake coreutils curl gettext-tiny-dev
|
||||
apk add build-base cmake coreutils curl unzip gettext-tiny-dev
|
||||
```
|
||||
|
||||
### Void Linux
|
||||
@@ -391,21 +365,18 @@ and replacing `neovim-unwrapped` with `neovim-dev`:
|
||||
nix-shell '<nixpkgs>' -A neovim-dev
|
||||
```
|
||||
|
||||
A flake for Neovim is hosted at [nix-community/neovim-nightly-overlay](https://github.com/nix-community/neovim-nightly-overlay/), with 3 packages:
|
||||
Neovim contains a Nix flake in the `contrib` folder, with 3 packages:
|
||||
- `neovim` to run the nightly
|
||||
- `neovim-debug` to run the package with debug symbols
|
||||
- `neovim-developer` to get all the tools to develop on `neovim`
|
||||
|
||||
Thus you can run Neovim nightly with `nix run github:nix-community/neovim-nightly-overlay`.
|
||||
Similarly to develop on Neovim: `nix run github:nix-community/neovim-nightly-overlay#neovim-developer`.
|
||||
|
||||
To use a specific version of Neovim, you can pass `--override-input neovim-src .` to use your current directory,
|
||||
or a specific SHA1 like `--override-input neovim-src github:neovim/neovim/89dc8f8f4e754e70cbe1624f030fb61bded41bc2`.
|
||||
Thus you can run Neovim nightly with `nix run github:neovim/neovim?dir=contrib`.
|
||||
Similarly to develop on Neovim: `nix develop github:neovim/neovim?dir=contrib#neovim-developer`.
|
||||
|
||||
### FreeBSD
|
||||
|
||||
```
|
||||
sudo pkg install cmake gmake sha wget gettext curl
|
||||
sudo pkg install cmake gmake sha unzip wget gettext curl
|
||||
```
|
||||
|
||||
If you get an error regarding a `sha256sum` mismatch, where the actual SHA-256 hash is `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`, then this is your issue (that's the `sha256sum` of an empty file).
|
||||
@@ -413,7 +384,7 @@ If you get an error regarding a `sha256sum` mismatch, where the actual SHA-256 h
|
||||
### OpenBSD
|
||||
|
||||
```sh
|
||||
doas pkg_add gmake cmake curl gettext-tools
|
||||
doas pkg_add gmake cmake unzip curl gettext-tools
|
||||
```
|
||||
|
||||
Build can sometimes fail when using the top level `Makefile`, apparently due to some third-party component (see [#2445-comment](https://github.com/neovim/neovim/issues/2445#issuecomment-108124236)). The following instructions use CMake:
|
||||
|
@@ -4,10 +4,14 @@
|
||||
# - pitfalls: https://izzys.casa/2019/02/everything-you-never-wanted-to-know-about-cmake/
|
||||
# - troubleshooting:
|
||||
# - variable_watch https://cmake.org/cmake/help/latest/command/variable_watch.html
|
||||
# - verbose output: cmake --build build --verbose
|
||||
|
||||
# Version should match the tested CMAKE_URL in .github/workflows/build.yml.
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
# Can be removed once minimum version is at least 3.15
|
||||
if(POLICY CMP0092)
|
||||
cmake_policy(SET CMP0092 NEW)
|
||||
endif()
|
||||
|
||||
project(nvim C)
|
||||
|
||||
@@ -46,7 +50,6 @@ set(DEPS_IGNORE_SHA FALSE)
|
||||
#-------------------------------------------------------------------------------
|
||||
set(FUNCS_DATA ${PROJECT_BINARY_DIR}/funcs_data.mpack)
|
||||
set(TOUCHES_DIR ${PROJECT_BINARY_DIR}/touches)
|
||||
set(VTERM_TEST_FILE ${PROJECT_BINARY_DIR}/test/vterm_test_output)
|
||||
|
||||
file(GLOB DOCFILES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/runtime/doc/*.txt)
|
||||
|
||||
@@ -112,8 +115,10 @@ if(APPLE)
|
||||
endif()
|
||||
|
||||
if(WIN32 OR APPLE)
|
||||
# Handle case-insensitive filenames for Windows and Mac.
|
||||
# Ignore case when comparing filenames on Windows and Mac.
|
||||
set(CASE_INSENSITIVE_FILENAME TRUE)
|
||||
# Enable fixing case-insensitive filenames for Windows and Mac.
|
||||
set(USE_FNAME_CASE TRUE)
|
||||
endif()
|
||||
|
||||
if (MINGW)
|
||||
@@ -125,30 +130,34 @@ else()
|
||||
option(ENABLE_LTO "enable link time optimization" ON)
|
||||
endif()
|
||||
option(ENABLE_LIBINTL "enable libintl" ON)
|
||||
option(ENABLE_WASMTIME "enable wasmtime" OFF)
|
||||
|
||||
message(STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
set_default_buildtype(Debug)
|
||||
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if(NOT isMultiConfig)
|
||||
# Unlike build dependencies in cmake.deps, we want dev dependencies such as
|
||||
# Uncrustify to always be built with Release.
|
||||
# Unlike build dependencies in cmake.deps, we assume we want dev dependencies
|
||||
# such as Uncrustify to always be built with Release.
|
||||
list(APPEND DEPS_CMAKE_ARGS -D CMAKE_BUILD_TYPE=Release)
|
||||
endif()
|
||||
|
||||
# If not in a git repo (e.g., a tarball) these tokens define the complete
|
||||
# version string, else they are combined with the result of `git describe`.
|
||||
set(NVIM_VERSION_MAJOR 0)
|
||||
set(NVIM_VERSION_MINOR 11)
|
||||
set(NVIM_VERSION_PATCH 5)
|
||||
set(NVIM_VERSION_PRERELEASE "-dev") # for package maintainers
|
||||
set(NVIM_VERSION_MINOR 10)
|
||||
set(NVIM_VERSION_PATCH 3)
|
||||
set(NVIM_VERSION_PRERELEASE "") # for package maintainers
|
||||
|
||||
# API level
|
||||
set(NVIM_API_LEVEL 13) # Bump this after any API/stdlib change.
|
||||
set(NVIM_API_LEVEL 12) # Bump this after any API change.
|
||||
set(NVIM_API_LEVEL_COMPAT 0) # Adjust this after a _breaking_ API change.
|
||||
set(NVIM_API_PRERELEASE false)
|
||||
|
||||
# Build-type: RelWithDebInfo
|
||||
# /Og means something different in MSVC
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -Og -g")
|
||||
endif()
|
||||
# We _want_ assertions in RelWithDebInfo build-type.
|
||||
if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DNDEBUG)
|
||||
string(REPLACE "-DNDEBUG" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||
@@ -182,7 +191,6 @@ if(NOT PREFER_LUA)
|
||||
find_program(LUA_PRG NAMES luajit)
|
||||
endif()
|
||||
find_program(LUA_PRG NAMES lua5.1 lua5.2 lua)
|
||||
mark_as_advanced(LUA_PRG)
|
||||
if(NOT LUA_PRG)
|
||||
message(FATAL_ERROR "Failed to find a Lua 5.1-compatible interpreter")
|
||||
endif()
|
||||
@@ -196,7 +204,6 @@ message(STATUS "Using Lua interpreter: ${LUA_PRG}")
|
||||
if(NOT LUA_GEN_PRG)
|
||||
set(LUA_GEN_PRG "${LUA_PRG}" CACHE FILEPATH "Path to the lua used for code generation.")
|
||||
endif()
|
||||
mark_as_advanced(LUA_GEN_PRG)
|
||||
message(STATUS "Using Lua interpreter for code generation: ${LUA_GEN_PRG}")
|
||||
|
||||
option(COMPILE_LUA "Pre-compile Lua sources into bytecode (for sources that are included in the binary)" ON)
|
||||
@@ -216,7 +223,6 @@ if(COMPILE_LUA AND NOT WIN32)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
mark_as_advanced(LUAC_PRG)
|
||||
if(LUAC_PRG)
|
||||
message(STATUS "Using Lua compiler: ${LUAC_PRG}")
|
||||
endif()
|
||||
@@ -227,9 +233,7 @@ if(CI_LINT)
|
||||
set(LINT_REQUIRED "REQUIRED")
|
||||
endif()
|
||||
find_program(SHELLCHECK_PRG shellcheck ${LINT_REQUIRED})
|
||||
mark_as_advanced(SHELLCHECK_PRG)
|
||||
find_program(STYLUA_PRG stylua ${LINT_REQUIRED})
|
||||
mark_as_advanced(STYLUA_PRG)
|
||||
|
||||
set(STYLUA_DIRS runtime scripts src test contrib)
|
||||
|
||||
@@ -266,7 +270,7 @@ add_custom_target(lintcommit
|
||||
add_dependencies(lintcommit nvim_bin)
|
||||
|
||||
add_custom_target(lint)
|
||||
add_dependencies(lint lintc lintlua lintsh)
|
||||
add_dependencies(lint lintc lintlua lintsh lintcommit)
|
||||
|
||||
# Format
|
||||
add_glob_target(
|
||||
@@ -303,8 +307,6 @@ get_externalproject_options(uncrustify ${DEPS_IGNORE_SHA})
|
||||
ExternalProject_Add(uncrustify
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/uncrustify
|
||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||
-D CMAKE_RUNTIME_OUTPUT_DIRECTORY=${DEPS_BIN_DIR}
|
||||
-D CMAKE_SKIP_RPATH=true
|
||||
EXCLUDE_FROM_ALL TRUE
|
||||
${EXTERNALPROJECT_OPTIONS})
|
||||
|
||||
@@ -322,36 +324,3 @@ if(USE_BUNDLED_BUSTED)
|
||||
else()
|
||||
add_custom_target(lua_dev_deps)
|
||||
endif()
|
||||
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES arm64)
|
||||
set(LUALS_ARCH arm64)
|
||||
else()
|
||||
set(LUALS_ARCH x64)
|
||||
endif()
|
||||
|
||||
set(LUALS_VERSION 3.13.9)
|
||||
set(LUALS "lua-language-server-${LUALS_VERSION}-${CMAKE_SYSTEM_NAME}-${LUALS_ARCH}")
|
||||
set(LUALS_TARBALL ${LUALS}.tar.gz)
|
||||
set(LUALS_URL https://github.com/LuaLS/lua-language-server/releases/download/${LUALS_VERSION}/${LUALS_TARBALL})
|
||||
|
||||
ExternalProject_Add(download_luals
|
||||
URL ${LUALS_URL}
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luals
|
||||
SOURCE_DIR ${DEPS_BIN_DIR}/luals
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
EXCLUDE_FROM_ALL TRUE
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
|
||||
|
||||
file(GLOB_RECURSE LUAFILES runtime/*.lua)
|
||||
add_target(luals
|
||||
COMMAND ${DEPS_BIN_DIR}/luals/bin/lua-language-server
|
||||
--configpath=${PROJECT_SOURCE_DIR}/.luarc.json
|
||||
--check=${PROJECT_SOURCE_DIR}/runtime
|
||||
--checklevel=Hint
|
||||
DEPENDS ${LUAFILES}
|
||||
CUSTOM_COMMAND_ARGS USES_TERMINAL)
|
||||
|
||||
add_dependencies(luals download_luals)
|
||||
|
@@ -10,7 +10,7 @@
|
||||
{
|
||||
"name": "default",
|
||||
"displayName": "RelWithDebInfo",
|
||||
"description": "Enables optimizations with debug information",
|
||||
"description": "Enables optimizations (-Og or -O2) with debug information",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
||||
},
|
||||
@@ -19,7 +19,7 @@
|
||||
{
|
||||
"name": "debug",
|
||||
"displayName": "Debug",
|
||||
"description": "No optimizations, enables debug information",
|
||||
"description": "Disables optimizations (-O0), enables debug information",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug"
|
||||
},
|
||||
@@ -28,7 +28,7 @@
|
||||
{
|
||||
"name": "release",
|
||||
"displayName": "Release",
|
||||
"description": "Optimized for performance, disables debug information",
|
||||
"description": "Same as RelWithDebInfo, but disables debug information",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Release"
|
||||
},
|
||||
|
@@ -42,10 +42,10 @@ Developer guidelines
|
||||
make distclean
|
||||
make # Nvim build system uses ninja automatically, if available.
|
||||
```
|
||||
- Install `ccache` or `sccache` for faster rebuilds of Nvim. Nvim will use one
|
||||
of these automatically if it's found. To disable caching use:
|
||||
- Install `ccache` for faster rebuilds of Nvim. Nvim will use it automatically
|
||||
if it's found. To disable caching use:
|
||||
```bash
|
||||
cmake -B build -D CACHE_PRG=OFF
|
||||
CCACHE_DISABLE=true make
|
||||
```
|
||||
|
||||
Pull requests (PRs)
|
||||
@@ -83,7 +83,7 @@ a comment.
|
||||
### Commit messages
|
||||
|
||||
Follow the [conventional commits guidelines][conventional_commits] to *make reviews easier* and to make
|
||||
the VCS/git logs more valuable (try `make lintcommit`). The structure of a commit message is:
|
||||
the VCS/git logs more valuable. The structure of a commit message is:
|
||||
|
||||
type(scope): subject
|
||||
|
||||
@@ -129,7 +129,7 @@ Each pull request must pass the automated builds on [Cirrus CI] and [GitHub Acti
|
||||
passes various linter checks.
|
||||
- CI for FreeBSD runs on [Cirrus CI].
|
||||
- To see CI results faster in your PR, you can temporarily set `TEST_FILE` in
|
||||
[test.yml](https://github.com/neovim/neovim/blob/ad8e0cfc1dfd937c2577dc032e524c799a772693/.github/workflows/test.yml#L26).
|
||||
[test.yml](https://github.com/neovim/neovim/blob/e35b9020b16985eee26e942f9a3f6b045bc3809b/.github/workflows/test.yml#L29).
|
||||
|
||||
### Coverity
|
||||
|
||||
@@ -256,24 +256,24 @@ make lintdoc
|
||||
```
|
||||
|
||||
If you need to modify or debug the documentation flow, these are the main files:
|
||||
- `./src/gen/gen_vimdoc.lua`:
|
||||
- `./scripts/gen_vimdoc.lua`:
|
||||
Main doc generator. Parses C and Lua files to render vimdoc files.
|
||||
- `./src/gen/luacats_parser.lua`:
|
||||
- `./scripts/luacats_parser.lua`:
|
||||
Documentation parser for Lua files.
|
||||
- `./src/gen/cdoc_parser.lua`:
|
||||
- `./scripts/cdoc_parser.lua`:
|
||||
Documentation parser for C files.
|
||||
- `./src/gen/luacats_grammar.lua`:
|
||||
- `./scripts/luacats_grammar.lua`:
|
||||
Lpeg grammar for LuaCATS
|
||||
- `./src/gen/cdoc_grammar.lua`:
|
||||
- `./scripts/cdoc_grammar.lua`:
|
||||
Lpeg grammar for C doc comments
|
||||
- `./src/gen/gen_eval_files.lua`:
|
||||
- `./scripts/gen_eval_files.lua`:
|
||||
Generates documentation and Lua type files from metadata files:
|
||||
```
|
||||
runtime/lua/vim/* => runtime/doc/lua.txt
|
||||
runtime/lua/vim/* => runtime/doc/lua.txt
|
||||
runtime/lua/vim/lsp/ => runtime/doc/lsp.txt
|
||||
src/nvim/api/* => runtime/doc/api.txt
|
||||
src/nvim/eval.lua => runtime/doc/vimfn.txt
|
||||
src/nvim/eval.lua => runtime/doc/builtin.txt
|
||||
src/nvim/options.lua => runtime/doc/options.txt
|
||||
```
|
||||
|
||||
|
45
INSTALL.md
45
INSTALL.md
@@ -15,10 +15,9 @@ Install from download
|
||||
Downloads are available on the [Releases](https://github.com/neovim/neovim/releases) page.
|
||||
|
||||
* Latest [stable release](https://github.com/neovim/neovim/releases/latest)
|
||||
* [macOS x86_64](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-x86_64.tar.gz)
|
||||
* [macOS arm64](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-arm64.tar.gz)
|
||||
* [Linux x86_64](https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz)
|
||||
* [Linux arm64](https://github.com/neovim/neovim/releases/latest/download/nvim-linux-arm64.tar.gz)
|
||||
* [macOS x86](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-x86_64.tar.gz)
|
||||
* [macOS arm](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-arm64.tar.gz)
|
||||
* [Linux](https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz)
|
||||
* [Windows](https://github.com/neovim/neovim/releases/latest/download/nvim-win64.msi)
|
||||
* Latest [development prerelease](https://github.com/neovim/neovim/releases/nightly)
|
||||
|
||||
@@ -66,13 +65,11 @@ Several Neovim GUIs are available from scoop (extras): [scoop.sh/#/apps?q=neovim
|
||||
You can then copy your spell files over (for English, located
|
||||
[here](https://github.com/vim/vim/blob/master/runtime/spell/en.utf-8.spl) and
|
||||
[here](https://github.com/vim/vim/blob/master/runtime/spell/en.utf-8.sug));
|
||||
- For Python plugins you need the `pynvim` module. Installation via uv
|
||||
(https://docs.astral.sh/uv/) is recommended; the `--upgrade` switch ensures
|
||||
installation of the latest version:
|
||||
- For Python plugins you need the `pynvim` module. "Virtual envs" are recommended. After activating the virtual env do `pip install pynvim` (in *both*). Edit your `init.vim` so that it contains the path to the env's Python executable:
|
||||
```vim
|
||||
let g:python3_host_prog='C:/Users/foo/Envs/neovim3/Scripts/python.exe'
|
||||
```
|
||||
uv tool install --upgrade pynvim
|
||||
```
|
||||
- Run `:checkhealth` and read `:help provider-python` for more details.
|
||||
- Run `:checkhealth` and read `:help provider-python`.
|
||||
- **init.vim ("vimrc"):** If you already have Vim installed you can copy `%userprofile%\_vimrc` to `%userprofile%\AppData\Local\nvim\init.vim` to use your Vim config with Neovim.
|
||||
|
||||
|
||||
@@ -110,35 +107,35 @@ For arm64:
|
||||
The [Releases](https://github.com/neovim/neovim/releases) page provides pre-built binaries for Linux systems.
|
||||
|
||||
```sh
|
||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
|
||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
|
||||
sudo rm -rf /opt/nvim
|
||||
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
|
||||
sudo tar -C /opt -xzf nvim-linux64.tar.gz
|
||||
```
|
||||
|
||||
Then add this to your shell config (`~/.bashrc`, `~/.zshrc`, ...):
|
||||
After this step add this to `~/.bashrc`:
|
||||
|
||||
export PATH="$PATH:/opt/nvim-linux-x86_64/bin"
|
||||
export PATH="$PATH:/opt/nvim-linux64/bin"
|
||||
|
||||
### AppImage ("universal" Linux package)
|
||||
|
||||
The [Releases](https://github.com/neovim/neovim/releases) page provides an [AppImage](https://appimage.org) that runs on most Linux systems. No installation is needed, just download `nvim-linux-x86_64.appimage` and run it. (It might not work if your Linux distribution is more than 4 years old.) The following instructions assume an `x86_64` architecture; on ARM Linux replace with `arm64`.
|
||||
The [Releases](https://github.com/neovim/neovim/releases) page provides an [AppImage](https://appimage.org) that runs on most Linux systems. No installation is needed, just download `nvim.appimage` and run it. (It might not work if your Linux distribution is more than 4 years old.)
|
||||
|
||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage
|
||||
chmod u+x nvim-linux-x86_64.appimage
|
||||
./nvim-linux-x86_64.appimage
|
||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
|
||||
chmod u+x nvim.appimage
|
||||
./nvim.appimage
|
||||
|
||||
To expose nvim globally:
|
||||
|
||||
mkdir -p /opt/nvim
|
||||
mv nvim-linux-x86_64.appimage /opt/nvim/nvim
|
||||
mv nvim.appimage /opt/nvim/nvim
|
||||
|
||||
And the following line to your shell config (`~/.bashrc`, `~/.zshrc`, ...):
|
||||
And the following line to `~/.bashrc`:
|
||||
|
||||
export PATH="$PATH:/opt/nvim/"
|
||||
|
||||
If the `./nvim-linux-x86_64.appimage` command fails, try:
|
||||
If the `./nvim.appimage` command fails, try:
|
||||
```sh
|
||||
./nvim-linux-x86_64.appimage --appimage-extract
|
||||
./nvim.appimage --appimage-extract
|
||||
./squashfs-root/AppRun --version
|
||||
|
||||
# Optional: exposing nvim globally.
|
||||
@@ -207,7 +204,7 @@ You can also get nightly builds of git master from the [Copr automated build sys
|
||||
dnf copr enable agriffis/neovim-nightly
|
||||
dnf install -y neovim python3-neovim
|
||||
|
||||
See the [blog post](https://arongriffis.com/2019-03-02-neovim-nightly-builds) for information on how these are built.
|
||||
See the [blog post](https://arongriffis.com/2019/03/02/neovim-nightly-builds) for information on how these are built.
|
||||
|
||||
### Flatpak
|
||||
|
||||
@@ -305,7 +302,7 @@ Neovim nightly and stable are available on the [snap store](https://snapcraft.io
|
||||
**Stable Builds**
|
||||
|
||||
```sh
|
||||
sudo snap install nvim --classic
|
||||
sudo snap install --beta nvim --classic
|
||||
```
|
||||
|
||||
**Nightly Builds**
|
||||
|
20
MAINTAIN.md
20
MAINTAIN.md
@@ -79,8 +79,6 @@ When a (non-experimental) feature is slated to be removed it should:
|
||||
`v0.10.0-dev-1957+gd676746c33` then use `0.12`.
|
||||
- For Vimscript features, use `v:lua.vim.deprecate()`. Use the same version
|
||||
as described for Lua features.
|
||||
- `vim.deprecate(…, 'x.y.z')` where major version `x` is greater than the
|
||||
current Nvim major version, is always treated as _soft_ deprecation.
|
||||
2. Be _hard_ deprecated in a following a release in which it was soft deprecated.
|
||||
- Use of the deprecated feature will still work but should issue a warning.
|
||||
- Features implemented in C will need bespoke implementations to communicate
|
||||
@@ -131,6 +129,8 @@ Some can be auto-bumped by `scripts/bump_deps.lua`.
|
||||
* [gettext](https://ftp.gnu.org/pub/gnu/gettext/)
|
||||
* [libiconv](https://ftp.gnu.org/pub/gnu/libiconv)
|
||||
* [libuv](https://github.com/libuv/libuv)
|
||||
* [libvterm](https://www.leonerd.org.uk/code/libvterm/)
|
||||
* Downloading from the original source is unreliable, so we use our [mirror](https://github.com/neovim/libvterm) instead.
|
||||
* [lua-compat](https://github.com/keplerproject/lua-compat-5.3)
|
||||
* [tree-sitter](https://github.com/tree-sitter/tree-sitter)
|
||||
* [unibilium](https://github.com/neovim/unibilium)
|
||||
@@ -143,8 +143,6 @@ These dependencies are "vendored" (inlined), we must update the sources manually
|
||||
|
||||
* `src/mpack/`: [libmpack](https://github.com/libmpack/libmpack)
|
||||
* send improvements upstream!
|
||||
* `src/mpack/lmpack.c`: [libmpack-lua](https://github.com/libmpack/libmpack-lua)
|
||||
* send improvements upstream!
|
||||
* `src/xdiff/`: [xdiff](https://github.com/git/git/tree/master/xdiff)
|
||||
* `src/cjson/`: [lua-cjson](https://github.com/openresty/lua-cjson)
|
||||
* `src/klib/`: [Klib](https://github.com/attractivechaos/klib)
|
||||
@@ -162,6 +160,7 @@ These dependencies are "vendored" (inlined), we must update the sources manually
|
||||
* Needs to be updated when LPeg is updated.
|
||||
* `src/bit.c`: only for PUC lua: port of `require'bit'` from luajit https://bitop.luajit.org/
|
||||
* `runtime/lua/coxpcall.lua`: coxpcall (only needed for PUC lua, builtin to luajit)
|
||||
* `src/termkey`: [libtermkey](https://github.com/neovim/libtermkey)
|
||||
|
||||
Other dependencies
|
||||
--------------------------
|
||||
@@ -171,9 +170,6 @@ Other dependencies
|
||||
* https://github.com/nvim-winget
|
||||
* Org secrets/tokens:
|
||||
* `CODECOV_TOKEN`
|
||||
* `BACKPORT_KEY`
|
||||
* Org/repo variables:
|
||||
* `BACKPORT_APP`
|
||||
* Domain names (held in https://namecheap.com):
|
||||
* neovim.org
|
||||
* neovim.io
|
||||
@@ -189,10 +185,10 @@ Refactoring
|
||||
|
||||
Refactoring Vim structurally and aesthetically is an important goal of Neovim.
|
||||
But there are some modules that should not be changed significantly, because
|
||||
they are maintained by Vim, at present. Until someone takes "ownership" of
|
||||
these modules, the cost of any significant changes (including style or
|
||||
structural changes that re-arrange the code) to these modules outweighs the
|
||||
benefit. The modules are:
|
||||
they are maintained Vim, at present. Until someone takes "ownership" of these
|
||||
modules, the cost of any significant changes (including style or structural
|
||||
changes that re-arrange the code) to these modules outweighs the benefit. The
|
||||
modules are:
|
||||
|
||||
- `regexp.c`
|
||||
- `indent_c.c`
|
||||
@@ -241,4 +237,4 @@ See also
|
||||
--------
|
||||
|
||||
* https://github.com/neovim/neovim/issues/862
|
||||
* https://github.com/git/git/blob/master/Documentation/howto/maintain-git.adoc
|
||||
* https://github.com/git/git/blob/master/Documentation/howto/maintain-git.txt
|
||||
|
15
Makefile
15
Makefile
@@ -1,14 +1,4 @@
|
||||
ifeq ($(OS),Windows_NT)
|
||||
ifeq '$(findstring ;,$(PATH))' ';'
|
||||
UNIX_LIKE := FALSE
|
||||
else
|
||||
UNIX_LIKE := TRUE
|
||||
endif
|
||||
else
|
||||
UNIX_LIKE := TRUE
|
||||
endif
|
||||
|
||||
ifeq ($(UNIX_LIKE),FALSE)
|
||||
SHELL := powershell.exe
|
||||
.SHELLFLAGS := -NoProfile -NoLogo
|
||||
MKDIR := @$$null = new-item -itemtype directory -force
|
||||
@@ -136,16 +126,13 @@ functionaltest-lua: | nvim
|
||||
$(CMAKE) --build build --target functionaltest
|
||||
|
||||
FORMAT=formatc formatlua format
|
||||
LINT=lintlua lintsh lintc clang-analyzer lintcommit lintdoc lint luals
|
||||
LINT=lintlua lintsh lintc clang-analyzer lintcommit lintdoc lint
|
||||
TEST=functionaltest unittest
|
||||
generated-sources benchmark $(FORMAT) $(LINT) $(TEST) doc: | build/.ran-cmake
|
||||
$(CMAKE) --build build --target $@
|
||||
|
||||
test: $(TEST)
|
||||
|
||||
# iwyu-fix-includes can be downloaded from
|
||||
# https://github.com/include-what-you-use/include-what-you-use/blob/master/fix_includes.py.
|
||||
# Create a iwyu-fix-includes shell script in your $PATH that invokes the python script.
|
||||
iwyu: build/.ran-cmake
|
||||
$(CMAKE) --preset iwyu
|
||||
$(CMAKE) --build build > build/iwyu.log
|
||||
|
@@ -27,7 +27,7 @@ Features
|
||||
- [API access](https://github.com/neovim/neovim/wiki/Related-projects#api-clients)
|
||||
from any language including C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java/Kotlin,
|
||||
JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
|
||||
- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/terminal.html)
|
||||
- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.html)
|
||||
- Asynchronous [job control](https://github.com/neovim/neovim/pull/2247)
|
||||
- [Shared data (shada)](https://github.com/neovim/neovim/pull/2506) among multiple editor instances
|
||||
- [XDG base directories](https://github.com/neovim/neovim/pull/3470) support
|
||||
|
@@ -173,7 +173,9 @@ function(append_target_expression)
|
||||
${ARGN})
|
||||
|
||||
set(TARGET_EXPRESSION "$<TARGET_PROPERTY:nvim_bin,${ARG_PROPERTY}>")
|
||||
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.15)
|
||||
set(TARGET_EXPRESSION "$<REMOVE_DUPLICATES:${TARGET_EXPRESSION}>")
|
||||
endif()
|
||||
set(TARGET_EXPRESSION "${ARG_PREFIX}$<JOIN:${TARGET_EXPRESSION}, ${ARG_PREFIX}>")
|
||||
|
||||
set(VERSION_STRING "${VERSION_STRING} ${TARGET_EXPRESSION} " PARENT_SCOPE)
|
||||
|
@@ -34,6 +34,7 @@
|
||||
#cmakedefine HAVE_WORKING_LIBINTL
|
||||
#cmakedefine UNIX
|
||||
#cmakedefine CASE_INSENSITIVE_FILENAME
|
||||
#cmakedefine USE_FNAME_CASE
|
||||
#cmakedefine HAVE_SYS_UIO_H
|
||||
#ifdef HAVE_SYS_UIO_H
|
||||
#cmakedefine HAVE_READV
|
||||
@@ -52,5 +53,3 @@
|
||||
#cmakedefine HAVE_BUILTIN_ADD_OVERFLOW
|
||||
#cmakedefine HAVE_WIMPLICIT_FALLTHROUGH_FLAG
|
||||
#cmakedefine HAVE_BITSCANFORWARD64
|
||||
|
||||
#define VTERM_TEST_FILE "@VTERM_TEST_FILE@"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
# This is not meant to be included by the top-level.
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required (VERSION 3.13)
|
||||
project(NVIM_DEPS C)
|
||||
|
||||
if(POLICY CMP0135)
|
||||
@@ -27,16 +27,16 @@ set(DEPS_IGNORE_SHA FALSE)
|
||||
option(USE_BUNDLED "Use bundled dependencies." ON)
|
||||
|
||||
option(USE_BUNDLED_LIBUV "Use the bundled libuv." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_LIBVTERM "Use the bundled libvterm." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_LPEG "Use the bundled lpeg." ${USE_BUNDLED})
|
||||
# PUC Lua is only used for tests, unless explicitly requested.
|
||||
option(USE_BUNDLED_LUA "Use the bundled version of lua." OFF)
|
||||
option(USE_BUNDLED_LUAJIT "Use the bundled version of luajit." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_LUV "Use the bundled version of luv." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_MSGPACK "Use the bundled msgpack." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_TS "Use the bundled treesitter runtime." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_TS_PARSERS "Use the bundled treesitter parsers." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_UNIBILIUM "Use the bundled unibilium." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_UTF8PROC "Use the bundled utf8proc library." ${USE_BUNDLED})
|
||||
|
||||
if(USE_BUNDLED AND MSVC)
|
||||
option(USE_BUNDLED_GETTEXT "Use the bundled version of gettext." ON)
|
||||
option(USE_BUNDLED_LIBICONV "Use the bundled version of libiconv." ON)
|
||||
@@ -45,19 +45,6 @@ else()
|
||||
option(USE_BUNDLED_LIBICONV "Use the bundled version of libiconv." OFF)
|
||||
endif()
|
||||
|
||||
option(ENABLE_WASMTIME "Use treesitter with wasmtime support." OFF)
|
||||
if(ENABLE_WASMTIME)
|
||||
if(USE_BUNDLED)
|
||||
option(USE_BUNDLED_WASMTIME "Use the bundled wasmtime." ON)
|
||||
else()
|
||||
option(USE_BUNDLED_WASMTIME "Use the bundled wasmtime." OFF)
|
||||
endif()
|
||||
endif()
|
||||
if(NOT ENABLE_WASMTIME AND USE_BUNDLED_WASMTIME)
|
||||
message(FATAL_ERROR "ENABLE_WASMTIME is set to OFF while USE_BUNDLED_WASMTIME is set to ON.\
|
||||
You need set ENABLE_WASMTIME to ON if you want to use wasmtime.")
|
||||
endif()
|
||||
|
||||
option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF)
|
||||
|
||||
set_default_buildtype(Release)
|
||||
@@ -73,7 +60,7 @@ if(HAS_OG_FLAG)
|
||||
set(DEFAULT_MAKE_CFLAGS CFLAGS+=-Og ${DEFAULT_MAKE_CFLAGS})
|
||||
endif()
|
||||
|
||||
set(DEPS_INCLUDE_FLAGS "-I\"${DEPS_INSTALL_DIR}/include\" -I\"${DEPS_INSTALL_DIR}/include/luajit-2.1\"")
|
||||
set(DEPS_INCLUDE_FLAGS "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1")
|
||||
|
||||
# If the macOS deployment target is not set manually (via $MACOSX_DEPLOYMENT_TARGET),
|
||||
# fall back to local system version. Needs to be done here and in top-level CMakeLists.txt.
|
||||
@@ -96,10 +83,10 @@ else()
|
||||
find_package(Lua 5.1 EXACT)
|
||||
if(LUAJIT_FOUND)
|
||||
set(LUA_ENGINE LuaJit)
|
||||
string(APPEND DEPS_INCLUDE_FLAGS " -I\"${LUAJIT_INCLUDE_DIR}\"")
|
||||
string(APPEND DEPS_INCLUDE_FLAGS " -I${LUAJIT_INCLUDE_DIR}")
|
||||
elseif(LUA_FOUND)
|
||||
set(LUA_ENGINE Lua)
|
||||
string(APPEND DEPS_INCLUDE_FLAGS " -I\"${LUA_INCLUDE_DIR}\"")
|
||||
string(APPEND DEPS_INCLUDE_FLAGS " -I${LUA_INCLUDE_DIR}")
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find system lua or luajit")
|
||||
endif()
|
||||
@@ -109,10 +96,18 @@ if(USE_BUNDLED_UNIBILIUM)
|
||||
include(BuildUnibilium)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_LIBVTERM)
|
||||
include(BuildLibvterm)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_LIBUV)
|
||||
include(BuildLibuv)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_MSGPACK)
|
||||
include(BuildMsgpack)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_LUAJIT)
|
||||
include(BuildLuajit)
|
||||
endif()
|
||||
@@ -141,21 +136,15 @@ if(USE_BUNDLED_TS_PARSERS)
|
||||
include(BuildTreesitterParsers)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_WASMTIME)
|
||||
include(BuildWasmtime)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_TS)
|
||||
include(BuildTreesitter)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_UTF8PROC)
|
||||
include(BuildUTF8proc)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
include(GetBinaryDeps)
|
||||
|
||||
GetExecutable(TARGET cat)
|
||||
GetExecutable(TARGET tee)
|
||||
GetExecutable(TARGET xxd)
|
||||
|
||||
GetBinaryDep(TARGET win32yank_X86_64
|
||||
|
@@ -16,9 +16,8 @@
|
||||
"description": "Build neovim with external deps on ubuntu",
|
||||
"cacheVariables": {
|
||||
"USE_BUNDLED":"OFF",
|
||||
"USE_BUNDLED_TS":"ON",
|
||||
"USE_BUNDLED_UTF8PROC":"ON",
|
||||
"ENABLE_WASMTIME":"OFF"
|
||||
"USE_BUNDLED_LIBVTERM":"ON",
|
||||
"USE_BUNDLED_TS":"ON"
|
||||
},
|
||||
"inherits": ["base"]
|
||||
}
|
||||
|
8
cmake.deps/cmake/BuildLibvterm.cmake
Normal file
8
cmake.deps/cmake/BuildLibvterm.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
get_externalproject_options(libvterm ${DEPS_IGNORE_SHA})
|
||||
ExternalProject_Add(libvterm
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libvterm
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibvtermCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/libvterm/CMakeLists.txt
|
||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||
${EXTERNALPROJECT_OPTIONS})
|
7
cmake.deps/cmake/BuildMsgpack.cmake
Normal file
7
cmake.deps/cmake/BuildMsgpack.cmake
Normal file
@@ -0,0 +1,7 @@
|
||||
get_externalproject_options(msgpack ${DEPS_IGNORE_SHA})
|
||||
ExternalProject_Add(msgpack
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack
|
||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||
-D MSGPACK_BUILD_TESTS=OFF
|
||||
-D MSGPACK_BUILD_EXAMPLES=OFF
|
||||
${EXTERNALPROJECT_OPTIONS})
|
@@ -1,14 +1,8 @@
|
||||
if(ENABLE_WASMTIME)
|
||||
set(TREESITTER_ARGS -D TREE_SITTER_FEATURE_WASM=ON)
|
||||
endif()
|
||||
|
||||
get_externalproject_options(treesitter ${DEPS_IGNORE_SHA})
|
||||
ExternalProject_Add(treesitter
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/treesitter
|
||||
SOURCE_SUBDIR lib
|
||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${TREESITTER_ARGS}
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/treesitter/CMakeLists.txt
|
||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||
${EXTERNALPROJECT_OPTIONS})
|
||||
|
||||
if(USE_BUNDLED_WASMTIME)
|
||||
add_dependencies(treesitter wasmtime)
|
||||
endif()
|
||||
|
@@ -1,5 +0,0 @@
|
||||
get_externalproject_options(utf8proc ${DEPS_IGNORE_SHA})
|
||||
ExternalProject_Add(utf8proc
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/utf8proc
|
||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||
${EXTERNALPROJECT_OPTIONS})
|
@@ -1,12 +0,0 @@
|
||||
# wasmtime is a chungus -- optimize _extra hard_ to keep nvim svelte
|
||||
get_externalproject_options(wasmtime ${DEPS_IGNORE_SHA})
|
||||
ExternalProject_Add(wasmtime
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/wasmtime
|
||||
SOURCE_SUBDIR crates/c-api
|
||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||
-D WASMTIME_FASTEST_RUNTIME=ON # build with full LTO
|
||||
-D WASMTIME_DISABLE_ALL_FEATURES=ON # don't need all that crap...
|
||||
-D WASMTIME_FEATURE_CRANELIFT=ON # ...except this one (compiles wasm to platform code)
|
||||
-D WASMTIME_FEATURE_GC_DRC=ON # ...and this one (needed by ts to create engines)
|
||||
USES_TERMINAL_BUILD TRUE
|
||||
${EXTERNALPROJECT_OPTIONS})
|
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(gettext C)
|
||||
|
||||
add_compile_options(-w)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(libiconv C)
|
||||
|
||||
add_compile_options(-w)
|
||||
|
28
cmake.deps/cmake/LibvtermCMakeLists.txt
Normal file
28
cmake.deps/cmake/LibvtermCMakeLists.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(libvterm C)
|
||||
|
||||
add_compile_options(-w)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include)
|
||||
include_directories(${CMAKE_BINARY_DIR})
|
||||
|
||||
file(GLOB VTERM_SOURCES ${CMAKE_SOURCE_DIR}/src/*.c)
|
||||
add_library(vterm ${VTERM_SOURCES})
|
||||
install(TARGETS vterm ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
install(FILES include/vterm.h include/vterm_keycodes.h
|
||||
DESTINATION include)
|
||||
|
||||
if(NOT WIN32)
|
||||
file(GLOB BIN_SOURCES ${CMAKE_SOURCE_DIR}/bin/*.c)
|
||||
foreach(EXE_C ${BIN_SOURCES})
|
||||
get_filename_component(target_name ${EXE_C} NAME_WE)
|
||||
add_executable(${target_name} ${EXE_C})
|
||||
target_link_libraries(${target_name} vterm)
|
||||
install(TARGETS ${target_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# vim: set ft=cmake:
|
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project (lpeg C)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(${PARSERLANG} C)
|
||||
|
||||
add_compile_options(-w)
|
||||
|
17
cmake.deps/cmake/TreesitterCMakeLists.txt
Normal file
17
cmake.deps/cmake/TreesitterCMakeLists.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(treesitter C)
|
||||
|
||||
add_compile_options(-w)
|
||||
|
||||
add_library(tree-sitter lib/src/lib.c)
|
||||
target_include_directories(tree-sitter
|
||||
PRIVATE lib/src lib/include)
|
||||
|
||||
install(FILES
|
||||
lib/include/tree_sitter/api.h
|
||||
DESTINATION include/tree_sitter)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS tree-sitter DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
# vim: set ft=cmake:
|
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(parser C)
|
||||
|
||||
add_compile_options(-w)
|
||||
|
@@ -1,17 +1,23 @@
|
||||
LIBUV_URL https://github.com/libuv/libuv/archive/v1.50.0.tar.gz
|
||||
LIBUV_SHA256 b1ec56444ee3f1e10c8bd3eed16ba47016ed0b94fe42137435aaf2e0bd574579
|
||||
LIBUV_URL https://github.com/libuv/libuv/archive/v1.48.0.tar.gz
|
||||
LIBUV_SHA256 8c253adb0f800926a6cbd1c6576abae0bc8eb86a4f891049b72f9e5b7dc58f33
|
||||
|
||||
LUAJIT_URL https://github.com/luajit/luajit/archive/538a82133ad6fddfd0ca64de167c4aca3bc1a2da.tar.gz
|
||||
LUAJIT_SHA256 7acbc36be8f21072422eb9a5e5fc468d0eaa55bec1b70260d651e845684621e2
|
||||
MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/c-6.0.1.tar.gz
|
||||
MSGPACK_SHA256 58d5fe49d0ee2b374d60a61aabf8028b2c92004e6f11bff04e74b639fc8ad541
|
||||
|
||||
LUAJIT_URL https://github.com/LuaJIT/LuaJIT/archive/75e92777988017fe47c5eb290998021bbf972d1f.tar.gz
|
||||
LUAJIT_SHA256 0f69288190024d732c67645e40ed5b137d67aa950fedf0f44a9ad0f3dba6d5d2
|
||||
|
||||
LUA_URL https://www.lua.org/ftp/lua-5.1.5.tar.gz
|
||||
LUA_SHA256 2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333
|
||||
|
||||
UNIBILIUM_URL https://github.com/neovim/unibilium/archive/v2.1.2.tar.gz
|
||||
UNIBILIUM_SHA256 370ecb07fbbc20d91d1b350c55f1c806b06bf86797e164081ccc977fc9b3af7a
|
||||
UNIBILIUM_URL https://github.com/neovim/unibilium/archive/d72c3598e7ac5d1ebf86ee268b8b4ed95c0fa628.tar.gz
|
||||
UNIBILIUM_SHA256 9c4747c862ab5e3076dcf8fa8f0ea7a6b50f20ec5905618b9536655596797487
|
||||
|
||||
LUV_URL https://github.com/luvit/luv/archive/1.50.0-1.tar.gz
|
||||
LUV_SHA256 bb4f0570571e40c1d2a7644f6f9c1309a6ccdb19bf4d397e8d7bfd0c6b88e613
|
||||
LIBVTERM_URL https://github.com/neovim/libvterm/archive/0a15c6e983b0db7ef8276e0792414a805d01bdaf.tar.gz
|
||||
LIBVTERM_SHA256 c4683e7a2d71c04781fd0ab7719a94202800e97a9e091514c16983bb732b0fa7
|
||||
|
||||
LUV_URL https://github.com/luvit/luv/releases/download/1.48.0-2/luv-1.48.0-2.tar.gz
|
||||
LUV_SHA256 2c3a1ddfebb4f6550293a40ee789f7122e97647eede51511f57203de48c03b7a
|
||||
|
||||
LPEG_URL https://github.com/neovim/deps/raw/d495ee6f79e7962a53ad79670cb92488abe0b9b4/opt/lpeg-1.1.0.tar.gz
|
||||
LPEG_SHA256 4b155d67d2246c1ffa7ad7bc466c1ea899bbc40fef0257cc9c03cecbaed4352a
|
||||
@@ -19,6 +25,10 @@ LPEG_SHA256 4b155d67d2246c1ffa7ad7bc466c1ea899bbc40fef0257cc9c03cecbaed4352a
|
||||
LUA_COMPAT53_URL https://github.com/lunarmodules/lua-compat-5.3/archive/v0.13.tar.gz
|
||||
LUA_COMPAT53_SHA256 f5dc30e7b1fda856ee4d392be457642c1f0c259264a9b9bfbcb680302ce88fc2
|
||||
|
||||
CAT_URL https://github.com/neovim/deps/raw/21c5e8bdda33521a6ed497b315e03265a2785cbc/opt/cat.exe
|
||||
CAT_SHA256 93b8d307bb15af3968920bdea3beb869a49d166f9164853c58a4e6ffdcae61c6
|
||||
TEE_URL https://github.com/neovim/deps/raw/21c5e8bdda33521a6ed497b315e03265a2785cbc/opt/tee.exe
|
||||
TEE_SHA256 950eea4e17fa3a7e89fa2c55374037b5797b3f1a54fea1304634884ab42ec14d
|
||||
XXD_URL https://github.com/neovim/deps/raw/21c5e8bdda33521a6ed497b315e03265a2785cbc/opt/xxd.exe
|
||||
XXD_SHA256 7a581e3882d28161cc52850f9a11d634b3eaf2c029276f093c1ed4c90e45a10c
|
||||
|
||||
@@ -31,28 +41,22 @@ GETTEXT_SHA256 66415634c6e8c3fa8b71362879ec7575e27da43da562c798a8a2f223e6e47f5c
|
||||
LIBICONV_URL https://github.com/neovim/deps/raw/b9bf36eb31f27e8136d907da38fa23518927737e/opt/libiconv-1.17.tar.gz
|
||||
LIBICONV_SHA256 8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313
|
||||
|
||||
UTF8PROC_URL https://github.com/JuliaStrings/utf8proc/archive/v2.10.0.tar.gz
|
||||
UTF8PROC_SHA256 6f4f1b639daa6dca9f80bc5db1233e9cbaa31a67790887106160b33ef743f136
|
||||
TREESITTER_C_URL https://github.com/tree-sitter/tree-sitter-c/archive/v0.21.3.tar.gz
|
||||
TREESITTER_C_SHA256 75a3780df6114cd37496761c4a7c9fd900c78bee3a2707f590d78c0ca3a24368
|
||||
TREESITTER_LUA_URL https://github.com/tree-sitter-grammars/tree-sitter-lua/archive/v0.1.0.tar.gz
|
||||
TREESITTER_LUA_SHA256 230cfcbfa74ed1f7b8149e9a1f34c2efc4c589a71fe0f5dc8560622f8020d722
|
||||
TREESITTER_VIM_URL https://github.com/neovim/tree-sitter-vim/archive/v0.4.0.tar.gz
|
||||
TREESITTER_VIM_SHA256 9f856f8b4a10ab43348550fa2d3cb2846ae3d8e60f45887200549c051c66f9d5
|
||||
TREESITTER_VIMDOC_URL https://github.com/neovim/tree-sitter-vimdoc/archive/v3.0.0.tar.gz
|
||||
TREESITTER_VIMDOC_SHA256 a639bf92bf57bfa1cdc90ca16af27bfaf26a9779064776dd4be34c1ef1453f6c
|
||||
TREESITTER_QUERY_URL https://github.com/tree-sitter-grammars/tree-sitter-query/archive/v0.4.0.tar.gz
|
||||
TREESITTER_QUERY_SHA256 d3a423ab66dc62b2969625e280116678a8a22582b5ff087795222108db2f6a6e
|
||||
TREESITTER_MARKDOWN_URL https://github.com/MDeiml/tree-sitter-markdown/archive/v0.2.3.tar.gz
|
||||
TREESITTER_MARKDOWN_SHA256 4909d6023643f1afc3ab219585d4035b7403f3a17849782ab803c5f73c8a31d5
|
||||
TREESITTER_URL https://github.com/tree-sitter/tree-sitter/archive/v0.22.6.tar.gz
|
||||
TREESITTER_SHA256 e2b687f74358ab6404730b7fb1a1ced7ddb3780202d37595ecd7b20a8f41861f
|
||||
|
||||
TREESITTER_C_URL https://github.com/tree-sitter/tree-sitter-c/archive/v0.24.1.tar.gz
|
||||
TREESITTER_C_SHA256 25dd4bb3dec770769a407e0fc803f424ce02c494a56ce95fedc525316dcf9b48
|
||||
TREESITTER_LUA_URL https://github.com/tree-sitter-grammars/tree-sitter-lua/archive/v0.4.0.tar.gz
|
||||
TREESITTER_LUA_SHA256 b0977aced4a63bb75f26725787e047b8f5f4a092712c840ea7070765d4049559
|
||||
TREESITTER_VIM_URL https://github.com/tree-sitter-grammars/tree-sitter-vim/archive/v0.7.0.tar.gz
|
||||
TREESITTER_VIM_SHA256 44eabc31127c4feacda19f2a05a5788272128ff561ce01093a8b7a53aadcc7b2
|
||||
TREESITTER_VIMDOC_URL https://github.com/neovim/tree-sitter-vimdoc/archive/v4.0.0.tar.gz
|
||||
TREESITTER_VIMDOC_SHA256 8096794c0f090b2d74b7bff94548ac1be3285b929ec74f839bd9b3ff4f4c6a0b
|
||||
TREESITTER_QUERY_URL https://github.com/tree-sitter-grammars/tree-sitter-query/archive/v0.6.2.tar.gz
|
||||
TREESITTER_QUERY_SHA256 90682e128d048fbf2a2a17edca947db71e326fa0b3dba4136e041e096538b4eb
|
||||
TREESITTER_MARKDOWN_URL https://github.com/tree-sitter-grammars/tree-sitter-markdown/archive/v0.5.0.tar.gz
|
||||
TREESITTER_MARKDOWN_SHA256 14c2c948ccf0e9b606eec39b09286c59dddf28307849f71b7ce2b1d1ef06937e
|
||||
TREESITTER_URL https://github.com/tree-sitter/tree-sitter/archive/v0.25.6.tar.gz
|
||||
TREESITTER_SHA256 ac6ed919c6d849e8553e246d5cd3fa22661f6c7b6497299264af433f3629957c
|
||||
|
||||
WASMTIME_URL https://github.com/bytecodealliance/wasmtime/archive/v29.0.1.tar.gz
|
||||
WASMTIME_SHA256 b94b6c6fd6aebaf05d4c69c1b12b5dc217b0d42c1a95f435b33af63dddfa5304
|
||||
|
||||
UNCRUSTIFY_URL https://github.com/uncrustify/uncrustify/archive/uncrustify-0.80.1.tar.gz
|
||||
UNCRUSTIFY_SHA256 0e2616ec2f78e12816388c513f7060072ff7942b42f1175eb28b24cb75aaec48
|
||||
LUA_DEV_DEPS_URL https://github.com/neovim/deps/raw/06ef2b58b0876f8de1a3f5a710473dcd7afff251/opt/lua-dev-deps.tar.gz
|
||||
LUA_DEV_DEPS_SHA256 49f8399e453103064a23c65534f266f3067cda716b6502f016bfafeed5799354
|
||||
UNCRUSTIFY_URL https://github.com/uncrustify/uncrustify/archive/uncrustify-0.79.0.tar.gz
|
||||
UNCRUSTIFY_SHA256 e7afaeabf636b7f0ce4e3e9747b95f7bd939613a8db49579755dddf44fedca5f
|
||||
LUA_DEV_DEPS_URL https://github.com/neovim/deps/raw/5a1f71cceb24990a0b15fd9a472a5f549f019248/opt/lua-dev-deps.tar.gz
|
||||
LUA_DEV_DEPS_SHA256 27db2495f5eddc7fc191701ec9b291486853530c6125609d3197d03481e8d5a2
|
||||
|
@@ -1,7 +1,3 @@
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64|ARM64|aarch64)$")
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm64)
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_NAME "Neovim")
|
||||
set(CPACK_PACKAGE_VENDOR "neovim.io")
|
||||
set(CPACK_PACKAGE_FILE_NAME "nvim")
|
||||
@@ -27,13 +23,9 @@ set(CPACK_RESOURCE_FILE_README ${PROJECT_SOURCE_DIR}/README.md)
|
||||
|
||||
|
||||
if(WIN32)
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
set(CPACK_PACKAGE_FILE_NAME "nvim-win-arm64")
|
||||
else()
|
||||
set(CPACK_PACKAGE_FILE_NAME "nvim-win64")
|
||||
endif()
|
||||
|
||||
set(CPACK_GENERATOR ZIP WIX)
|
||||
|
||||
# WIX
|
||||
# CPACK_WIX_UPGRADE_GUID should be set, but should never change.
|
||||
# CPACK_WIX_PRODUCT_GUID should not be set (leave as default to auto-generate).
|
||||
@@ -48,10 +40,6 @@ if(WIN32)
|
||||
set(CPACK_PACKAGE_EXECUTABLES "nvim" "Neovim")
|
||||
set(CPACK_WIX_INSTALL_SCOPE "perMachine")
|
||||
|
||||
set(CPACK_WIX_UI_REF "WixUI_CustomInstallDir")
|
||||
list(APPEND CPACK_WIX_EXTRA_SOURCES ${CMAKE_CURRENT_LIST_DIR}/WixUI_CustomInstallDir.wxs)
|
||||
list(APPEND CPACK_WIX_EXTRA_SOURCES ${CMAKE_CURRENT_LIST_DIR}/CustomInstallDirDlg.wxs)
|
||||
|
||||
# We use a wix patch to add further options to the installer.
|
||||
# See: https://cmake.org/cmake/help/v3.7/module/CPackWIX.html#variable:CPACK_WIX_PATCH_FILE
|
||||
list(APPEND CPACK_WIX_EXTENSIONS WixUtilExtension)
|
||||
@@ -61,7 +49,7 @@ elseif(APPLE)
|
||||
set(CPACK_GENERATOR TGZ)
|
||||
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(CPACK_PACKAGE_FILE_NAME "nvim-linux-${CMAKE_SYSTEM_PROCESSOR}")
|
||||
set(CPACK_PACKAGE_FILE_NAME "nvim-linux64")
|
||||
set(CPACK_GENERATOR TGZ DEB)
|
||||
set(CPACK_DEBIAN_PACKAGE_NAME "Neovim") # required
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Neovim.io") # required
|
||||
|
@@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
|
||||
|
||||
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Fragment>
|
||||
<UI>
|
||||
<Dialog Id="CustomInstallDirDlg" Width="370" Height="270" Title="!(loc.InstallDirDlg_Title)">
|
||||
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
|
||||
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
|
||||
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
|
||||
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
|
||||
</Control>
|
||||
|
||||
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgDescription)" />
|
||||
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgTitle)" />
|
||||
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
|
||||
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
|
||||
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
||||
|
||||
<Control Id="Note" Type="Text" X="20" Y="45" Width="290" Height="45" NoPrefix="yes">
|
||||
<Text>Note: besides its installation folder, [ProductName] stores configuration, data, and logs in standard locations. These can be further configured by the $NVIM_APPNAME environment variable. Also, the "base" (root) directories conform to the XDG Base Directory Specification. For more information see:</Text>
|
||||
</Control>
|
||||
<Control Id="Link1" Type="Hyperlink" X="20" Y="90" Width="290" Height="15">
|
||||
<Text><![CDATA[<a href="https://neovim.io/doc/user/starting.html#standard-path">https://neovim.io/doc/user/starting.html#standard-path</a>]]></Text>
|
||||
</Control>
|
||||
<Control Id="Link2" Type="Hyperlink" X="20" Y="105" Width="290" Height="15">
|
||||
<Text><![CDATA[<a href="https://neovim.io/doc/user/starting.html#base-directories">https://neovim.io/doc/user/starting.html#base-directories</a>]]></Text>
|
||||
</Control>
|
||||
<Control Id="Link3" Type="Hyperlink" X="20" Y="120" Width="290" Height="15">
|
||||
<Text><![CDATA[<a href="https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME">https://neovim.io/doc/user/starting.html#$NVIM_APPNAME</a>]]></Text>
|
||||
</Control>
|
||||
<Control Id="FolderLabel" Type="Hyperlink" X="20" Y="135" Width="290" Height="15">
|
||||
<Text>Install [ProductName] to:</Text>
|
||||
</Control>
|
||||
<Control Id="Folder" Type="PathEdit" X="20" Y="150" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
|
||||
<Control Id="ChangeFolder" Type="PushButton" X="20" Y="180" Width="56" Height="17" Text="!(loc.InstallDirDlgChange)" />
|
||||
</Dialog>
|
||||
</UI>
|
||||
</Fragment>
|
||||
</Wix>
|
@@ -1,81 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
First-time install dialog sequence:
|
||||
- WixUI_WelcomeDlg
|
||||
- WixUI_LicenseAgreementDlg
|
||||
- WixUI_InstallDirDlg
|
||||
- WixUI_VerifyReadyDlg
|
||||
- WixUI_DiskCostDlg
|
||||
|
||||
Maintenance dialog sequence:
|
||||
- WixUI_MaintenanceWelcomeDlg
|
||||
- WixUI_MaintenanceTypeDlg
|
||||
- WixUI_InstallDirDlg
|
||||
- WixUI_VerifyReadyDlg
|
||||
|
||||
Patch dialog sequence:
|
||||
- WixUI_WelcomeDlg
|
||||
- WixUI_VerifyReadyDlg
|
||||
|
||||
-->
|
||||
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Fragment>
|
||||
<UI Id="WixUI_CustomInstallDir">
|
||||
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
|
||||
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
|
||||
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
|
||||
|
||||
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
|
||||
<Property Id="WixUI_Mode" Value="InstallDir" />
|
||||
|
||||
<DialogRef Id="BrowseDlg" />
|
||||
<DialogRef Id="DiskCostDlg" />
|
||||
<DialogRef Id="ErrorDlg" />
|
||||
<DialogRef Id="FatalError" />
|
||||
<DialogRef Id="FilesInUse" />
|
||||
<DialogRef Id="MsiRMFilesInUse" />
|
||||
<DialogRef Id="PrepareDlg" />
|
||||
<DialogRef Id="ProgressDlg" />
|
||||
<DialogRef Id="ResumeDlg" />
|
||||
<DialogRef Id="UserExit" />
|
||||
|
||||
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
|
||||
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
|
||||
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
|
||||
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
|
||||
|
||||
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
|
||||
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="CustomInstallDirDlg">LicenseAccepted = "1"</Publish>
|
||||
|
||||
<Publish Dialog="CustomInstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
|
||||
<Publish Dialog="CustomInstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
|
||||
<Publish Dialog="CustomInstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
|
||||
<Publish Dialog="CustomInstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
|
||||
<Publish Dialog="CustomInstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
|
||||
<Publish Dialog="CustomInstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
|
||||
<Publish Dialog="CustomInstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
|
||||
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomInstallDirDlg" Order="1">NOT Installed</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
|
||||
|
||||
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
|
||||
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
|
||||
|
||||
<Property Id="ARPNOMODIFY" Value="1" />
|
||||
</UI>
|
||||
|
||||
<UIRef Id="WixUI_Common" />
|
||||
</Fragment>
|
||||
</Wix>
|
@@ -18,8 +18,12 @@ if(APPLE)
|
||||
list(APPEND DEPS_CMAKE_ARGS -D CMAKE_FIND_FRAMEWORK=${CMAKE_FIND_FRAMEWORK})
|
||||
endif()
|
||||
|
||||
# Can be removed once minimum version is at least 3.15
|
||||
if(POLICY CMP0092)
|
||||
list(APPEND DEPS_CMAKE_ARGS -D CMAKE_POLICY_DEFAULT_CMP0092=NEW)
|
||||
endif()
|
||||
|
||||
find_program(CACHE_PRG NAMES ccache sccache)
|
||||
mark_as_advanced(CACHE_PRG)
|
||||
if(CACHE_PRG)
|
||||
set(CMAKE_C_COMPILER_LAUNCHER ${CMAKE_COMMAND} -E env CCACHE_SLOPPINESS=pch_defines,time_macros ${CACHE_PRG})
|
||||
list(APPEND DEPS_CMAKE_CACHE_ARGS -DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER})
|
||||
@@ -28,7 +32,6 @@ endif()
|
||||
# MAKE_PRG
|
||||
if(UNIX)
|
||||
find_program(MAKE_PRG NAMES gmake make)
|
||||
mark_as_advanced(MAKE_PRG)
|
||||
if(NOT MAKE_PRG)
|
||||
message(FATAL_ERROR "GNU Make is required to build the dependencies.")
|
||||
else()
|
||||
|
31
cmake/FindLibvterm.cmake
Normal file
31
cmake/FindLibvterm.cmake
Normal file
@@ -0,0 +1,31 @@
|
||||
find_path2(LIBVTERM_INCLUDE_DIR vterm.h)
|
||||
find_library2(LIBVTERM_LIBRARY vterm)
|
||||
|
||||
if(LIBVTERM_INCLUDE_DIR AND EXISTS "${LIBVTERM_INCLUDE_DIR}/vterm.h")
|
||||
file(STRINGS ${LIBVTERM_INCLUDE_DIR}/vterm.h VTERM_VERSION_MAJOR REGEX "#define VTERM_VERSION_MAJOR")
|
||||
string(REGEX MATCH "[0-9]+" VTERM_VERSION_MAJOR ${VTERM_VERSION_MAJOR})
|
||||
|
||||
file(STRINGS ${LIBVTERM_INCLUDE_DIR}/vterm.h VTERM_VERSION_MINOR REGEX "#define VTERM_VERSION_MINOR")
|
||||
string(REGEX MATCH "[0-9]+" VTERM_VERSION_MINOR ${VTERM_VERSION_MINOR})
|
||||
|
||||
file(STRINGS ${LIBVTERM_INCLUDE_DIR}/vterm.h VTERM_VERSION_PATCH REGEX "#define VTERM_VERSION_PATCH")
|
||||
|
||||
# The following is needed to give a coherent error for versions 0.3.2 and
|
||||
# smaller.
|
||||
if(VTERM_VERSION_PATCH)
|
||||
string(REGEX MATCH "[0-9]+" VTERM_VERSION_PATCH ${VTERM_VERSION_PATCH})
|
||||
string(PREPEND VTERM_VERSION_PATCH ".")
|
||||
endif()
|
||||
|
||||
set(VTERM_VERSION ${VTERM_VERSION_MAJOR}.${VTERM_VERSION_MINOR}${VTERM_VERSION_PATCH})
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(Libvterm
|
||||
REQUIRED_VARS LIBVTERM_INCLUDE_DIR LIBVTERM_LIBRARY
|
||||
VERSION_VAR VTERM_VERSION)
|
||||
|
||||
add_library(libvterm INTERFACE)
|
||||
target_include_directories(libvterm SYSTEM BEFORE INTERFACE ${LIBVTERM_INCLUDE_DIR})
|
||||
target_link_libraries(libvterm INTERFACE ${LIBVTERM_LIBRARY})
|
||||
|
||||
mark_as_advanced(LIBVTERM_INCLUDE_DIR LIBVTERM_LIBRARY)
|
@@ -1,13 +1,4 @@
|
||||
find_library2(LPEG_LIBRARY NAMES lpeg_a lpeg liblpeg_a lpeg.so lpeg${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND LPEG_LIBRARY MATCHES ".so$")
|
||||
execute_process(
|
||||
COMMAND otool -hv "${LPEG_LIBRARY}"
|
||||
OUTPUT_VARIABLE LPEG_HEADER
|
||||
)
|
||||
if(LPEG_HEADER MATCHES ".* BUNDLE .*")
|
||||
message(FATAL_ERROR "lpeg library found at ${LPEG_LIBRARY} but built as a bundle rather than a dylib, please rebuild with `-dynamiclib` rather than `-bundle`")
|
||||
endif()
|
||||
endif()
|
||||
find_library2(LPEG_LIBRARY NAMES lpeg_a lpeg liblpeg_a lpeg${CMAKE_SHARED_LIBRARY_SUFFIX} PATH_SUFFIXES lua/5.1)
|
||||
|
||||
find_package_handle_standard_args(Lpeg DEFAULT_MSG LPEG_LIBRARY)
|
||||
mark_as_advanced(LPEG_LIBRARY)
|
||||
|
24
cmake/FindMsgpack.cmake
Normal file
24
cmake/FindMsgpack.cmake
Normal file
@@ -0,0 +1,24 @@
|
||||
find_path2(MSGPACK_INCLUDE_DIR msgpack/version_master.h)
|
||||
|
||||
if(MSGPACK_INCLUDE_DIR)
|
||||
file(READ ${MSGPACK_INCLUDE_DIR}/msgpack/version_master.h msgpack_version_h)
|
||||
string(REGEX REPLACE ".*MSGPACK_VERSION_MAJOR +([0-9]+).*" "\\1" MSGPACK_VERSION_MAJOR "${msgpack_version_h}")
|
||||
string(REGEX REPLACE ".*MSGPACK_VERSION_MINOR +([0-9]+).*" "\\1" MSGPACK_VERSION_MINOR "${msgpack_version_h}")
|
||||
string(REGEX REPLACE ".*MSGPACK_VERSION_REVISION +([0-9]+).*" "\\1" MSGPACK_VERSION_REVISION "${msgpack_version_h}")
|
||||
set(MSGPACK_VERSION_STRING "${MSGPACK_VERSION_MAJOR}.${MSGPACK_VERSION_MINOR}.${MSGPACK_VERSION_REVISION}")
|
||||
else()
|
||||
set(MSGPACK_VERSION_STRING)
|
||||
endif()
|
||||
|
||||
find_library2(MSGPACK_LIBRARY NAMES msgpackc msgpack msgpackc_import msgpack-c
|
||||
NAMES_PER_DIR)
|
||||
|
||||
mark_as_advanced(MSGPACK_INCLUDE_DIR MSGPACK_LIBRARY)
|
||||
|
||||
find_package_handle_standard_args(Msgpack
|
||||
REQUIRED_VARS MSGPACK_LIBRARY MSGPACK_INCLUDE_DIR
|
||||
VERSION_VAR MSGPACK_VERSION_STRING)
|
||||
|
||||
add_library(msgpack INTERFACE)
|
||||
target_include_directories(msgpack SYSTEM BEFORE INTERFACE ${MSGPACK_INCLUDE_DIR})
|
||||
target_link_libraries(msgpack INTERFACE ${MSGPACK_LIBRARY})
|
@@ -1,12 +0,0 @@
|
||||
find_path2(UTF8PROC_INCLUDE_DIR utf8proc.h)
|
||||
find_library2(UTF8PROC_LIBRARY NAMES utf8proc utf8proc_static)
|
||||
find_package_handle_standard_args(UTF8proc DEFAULT_MSG
|
||||
UTF8PROC_LIBRARY UTF8PROC_INCLUDE_DIR)
|
||||
mark_as_advanced(UTF8PROC_LIBRARY UTF8PROC_INCLUDE_DIR)
|
||||
|
||||
add_library(utf8proc INTERFACE)
|
||||
target_include_directories(utf8proc SYSTEM BEFORE INTERFACE ${UTF8PROC_INCLUDE_DIR})
|
||||
target_link_libraries(utf8proc INTERFACE ${UTF8PROC_LIBRARY})
|
||||
|
||||
#TODO(dundargoc): this is a hack that should ideally be hardcoded into the utf8proc project via configure_command
|
||||
target_compile_definitions(utf8proc INTERFACE "UTF8PROC_STATIC")
|
@@ -1,22 +0,0 @@
|
||||
find_path2(WASMTIME_INCLUDE_DIR wasmtime.h)
|
||||
find_library2(WASMTIME_LIBRARY wasmtime)
|
||||
|
||||
if(WASMTIME_INCLUDE_DIR AND EXISTS "${WASMTIME_INCLUDE_DIR}/wasmtime.h")
|
||||
file(STRINGS ${WASMTIME_INCLUDE_DIR}/wasmtime.h WASMTIME_VERSION REGEX "#define WASMTIME_VERSION")
|
||||
string(REGEX MATCH "[0-9]+\.[0-9]\.[0-9]" WASMTIME_VERSION ${WASMTIME_VERSION})
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(Wasmtime
|
||||
REQUIRED_VARS WASMTIME_INCLUDE_DIR WASMTIME_LIBRARY
|
||||
VERSION_VAR WASMTIME_VERSION)
|
||||
|
||||
add_library(wasmtime INTERFACE)
|
||||
target_include_directories(wasmtime SYSTEM BEFORE INTERFACE ${WASMTIME_INCLUDE_DIR})
|
||||
target_link_libraries(wasmtime INTERFACE ${WASMTIME_LIBRARY})
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(wasmtime INTERFACE -DWASM_API_EXTERN= -DWASI_API_EXTERN=)
|
||||
target_link_libraries(wasmtime INTERFACE ws2_32 advapi32 userenv ntdll shell32 ole32 bcrypt)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(WASMTIME_INCLUDE_DIR WASMTIME_LIBRARY)
|
@@ -71,7 +71,6 @@ execute_process(
|
||||
COMMAND ${NVIM_PRG} -ll ${WORKING_DIR}/test/lua_runner.lua ${DEPS_INSTALL_DIR} busted -v -o test.busted.outputHandlers.nvim
|
||||
--lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
|
||||
--lpath=${BUILD_DIR}/?.lua
|
||||
--lpath=${WORKING_DIR}/src/?.lua
|
||||
--lpath=${WORKING_DIR}/runtime/lua/?.lua
|
||||
--lpath=?.lua
|
||||
${BUSTED_ARGS}
|
||||
|
@@ -61,7 +61,6 @@ function(add_glob_target)
|
||||
if(NOT ARG_COMMAND)
|
||||
add_custom_target(${ARG_TARGET})
|
||||
add_custom_command(TARGET ${ARG_TARGET}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "${ARG_TARGET} SKIP: ${ARG_COMMAND} not found")
|
||||
return()
|
||||
endif()
|
||||
@@ -176,7 +175,8 @@ function(add_target)
|
||||
add_custom_target(${target} DEPENDS ${touch_file})
|
||||
endfunction()
|
||||
|
||||
# Set default build type to BUILD_TYPE.
|
||||
# Set default build type to BUILD_TYPE. Also limit the list of allowable build
|
||||
# types to the ones defined in variable allowableBuildTypes.
|
||||
#
|
||||
# The correct way to specify build type (for example Release) for
|
||||
# single-configuration generators (Make and Ninja) is to run
|
||||
@@ -193,24 +193,28 @@ endfunction()
|
||||
# Passing CMAKE_BUILD_TYPE for multi-config generators will not only not be
|
||||
# used, but also generate a warning for the user.
|
||||
function(set_default_buildtype BUILD_TYPE)
|
||||
set(defaultBuildTypes Debug Release MinSizeRel RelWithDebInfo)
|
||||
set(allowableBuildTypes Debug Release MinSizeRel RelWithDebInfo)
|
||||
if(NOT BUILD_TYPE IN_LIST allowableBuildTypes)
|
||||
message(FATAL_ERROR "Invalid build type: ${BUILD_TYPE}")
|
||||
endif()
|
||||
|
||||
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if(isMultiConfig)
|
||||
# Multi-config generators use the first element in
|
||||
# CMAKE_CONFIGURATION_TYPES as the default build type
|
||||
list(INSERT defaultBuildTypes 0 ${BUILD_TYPE})
|
||||
list(REMOVE_DUPLICATES defaultBuildTypes)
|
||||
set(CMAKE_CONFIGURATION_TYPES ${defaultBuildTypes} PARENT_SCOPE)
|
||||
# Multi-config generators use the first element in CMAKE_CONFIGURATION_TYPES as the default build type
|
||||
list(INSERT allowableBuildTypes 0 ${BUILD_TYPE})
|
||||
list(REMOVE_DUPLICATES allowableBuildTypes)
|
||||
set(CMAKE_CONFIGURATION_TYPES ${allowableBuildTypes} PARENT_SCOPE)
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
message(WARNING "CMAKE_BUILD_TYPE specified which is ignored on \
|
||||
multi-configuration generators. Defaulting to ${BUILD_TYPE} build type.")
|
||||
endif()
|
||||
else()
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${defaultBuildTypes}")
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${allowableBuildTypes}")
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
message(STATUS "CMAKE_BUILD_TYPE not specified, default is '${BUILD_TYPE}'")
|
||||
set(CMAKE_BUILD_TYPE ${BUILD_TYPE} CACHE STRING "Choose the type of build" FORCE)
|
||||
elseif(NOT CMAKE_BUILD_TYPE IN_LIST allowableBuildTypes)
|
||||
message(FATAL_ERROR "Invalid build type: ${CMAKE_BUILD_TYPE}")
|
||||
else()
|
||||
message(STATUS "CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
|
@@ -167,15 +167,13 @@ function! s:Spawn(server_cmd, client_cmd, server_addr, reconnect)
|
||||
if type(a:server_cmd) == type('')
|
||||
" spawn gdbserver in a vertical split
|
||||
let server = s:GdbServer.new(gdb)
|
||||
server.term = v:true
|
||||
vsp | enew | let gdb._server_id = jobstart(a:server_cmd, server)
|
||||
vsp | enew | let gdb._server_id = termopen(a:server_cmd, server)
|
||||
let gdb._jump_window = 2
|
||||
let gdb._server_buf = bufnr('%')
|
||||
endif
|
||||
" go to the bottom window and spawn gdb client
|
||||
wincmd j
|
||||
gdb.term = v:true
|
||||
enew | let gdb._client_id = jobstart(a:client_cmd, gdb)
|
||||
enew | let gdb._client_id = termopen(a:client_cmd, gdb)
|
||||
let gdb._client_buf = bufnr('%')
|
||||
tnoremap <silent> <f8> <c-\><c-n>:GdbContinue<cr>i
|
||||
tnoremap <silent> <f10> <c-\><c-n>:GdbNext<cr>i
|
||||
|
@@ -14,7 +14,7 @@
|
||||
#
|
||||
# - Debug: Disables optimizations (-O0), enables debug information.
|
||||
#
|
||||
# - RelWithDebInfo: Enables optimizations (-O2) with debug information.
|
||||
# - RelWithDebInfo: Enables optimizations (-Og or -O2) with debug information.
|
||||
#
|
||||
# - MinSizeRel: Enables all -O2 optimization that do not typically
|
||||
# increase code size, and performs further optimizations
|
||||
@@ -45,12 +45,13 @@
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_GETTEXT=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LIBICONV=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LIBUV=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LIBVTERM=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LUAJIT=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_LUV=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_MSGPACK=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_TS=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_TS_PARSERS=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_UNIBILIUM=OFF
|
||||
# DEPS_CMAKE_FLAGS += -DUSE_BUNDLED_UTF8PROC=OFF
|
||||
#
|
||||
# Or disable all bundled dependencies at once.
|
||||
#
|
||||
|
@@ -2,8 +2,7 @@
|
||||
|
||||
for name, url in pairs {
|
||||
-- ADD PLUGINS _NECESSARY_ TO REPRODUCE THE ISSUE, e.g:
|
||||
-- 'https://github.com/author1/plugin1',
|
||||
-- 'https://github.com/author2/plugin2',
|
||||
-- some_plugin = 'https://github.com/author/plugin.nvim'
|
||||
} do
|
||||
local install_path = vim.fn.fnamemodify('nvim_issue/' .. name, ':p')
|
||||
if vim.fn.isdirectory(install_path) == 0 then
|
||||
|
@@ -1,36 +0,0 @@
|
||||
#compdef nvim
|
||||
|
||||
# zsh completions for 'nvim'
|
||||
# automatically generated with http://github.com/RobSis/zsh-completion-generator
|
||||
local arguments
|
||||
|
||||
arguments=(
|
||||
'*--cmd[execute <cmd> before any config]:command'
|
||||
'*-c[Execute <cmd> after config and first file]:command'
|
||||
'-l[Execute Lua <script> (with optional args)]:script:_files -g "*.lua"' # TODO: remaining args are passed to <script> and not opened by nvim for edit
|
||||
'-S[source <session> after loading the first file]::session:_files'
|
||||
'-s[read Normal mode commands from <scriptin>]:file:_files'
|
||||
'-u[use this config file]:config'
|
||||
'-d[diff mode]'
|
||||
{-es,-Es}'[silent (batch) mode]'
|
||||
'(- *)'{-h,--help}'[print this help message]'
|
||||
'-i[use this shada file]:shada:_files -g "*.shada"'
|
||||
'-n[no swap file, use memory only]'
|
||||
'-o-[open N windows (default: one per file)]::N'
|
||||
'-O-[open N vertical windows (default: one per file)]::N'
|
||||
'-p-[open N tab pages (default: one per file)]::N'
|
||||
'-R[read-only (view) mode]'
|
||||
'(- *)'{-v,--version}'[print version information]'
|
||||
'-V[verbose \[level\]\[file\]]'
|
||||
'(- *)--api-info[write msgpack-encoded API metadata to stdout]'
|
||||
'--clean["Factory defaults" (skip user config and plugins, shada)]'
|
||||
'--embed[use stdin/stdout as a msgpack-rpc channel]'
|
||||
'--headless[dont start a user interface]'
|
||||
'--listen[serve RPC API from this address]:address'
|
||||
'--remote[\[-subcommand\] Execute commands remotely on a server]'
|
||||
'--server[connect to this Nvim server]:address'
|
||||
'--startuptime[write startup timing messages to <file>]:file:_files'
|
||||
'*:filename:_files'
|
||||
)
|
||||
|
||||
_arguments -s $arguments
|
@@ -3,7 +3,7 @@ set(GENERATED_RUNTIME_DIR ${PROJECT_BINARY_DIR}/runtime)
|
||||
set(GENERATED_HELP_TAGS ${GENERATED_RUNTIME_DIR}/doc/tags)
|
||||
set(GENERATED_PACKAGE_DIR ${GENERATED_RUNTIME_DIR}/pack/dist/opt)
|
||||
set(GENERATED_SYN_VIM ${GENERATED_RUNTIME_DIR}/syntax/vim/generated.vim)
|
||||
set(SYN_VIM_GENERATOR ${PROJECT_SOURCE_DIR}/src/gen/gen_vimvim.lua)
|
||||
set(SYN_VIM_GENERATOR ${PROJECT_SOURCE_DIR}/src/nvim/generators/gen_vimvim.lua)
|
||||
|
||||
file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}/syntax/vim)
|
||||
|
||||
@@ -118,4 +118,4 @@ foreach(D ${RUNTIME_DIRS})
|
||||
endforeach()
|
||||
|
||||
# only foo.sh script in runtime/
|
||||
install_helper(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/less.sh DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/scripts/)
|
||||
install_helper(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/macros/less.sh DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/macros/)
|
||||
|
@@ -7,7 +7,7 @@ gzip.vim for editing compressed files
|
||||
netrw*.vim browsing (remote) directories and editing remote files
|
||||
tar.vim browsing tar files
|
||||
zip.vim browsing zip files
|
||||
paste.vim common code for mswin.vim and menu.vim
|
||||
paste.vim common code for mswin.vim, menu.vim and macmap.vim
|
||||
spellfile.vim downloading of a missing spell file
|
||||
|
||||
Omni completion files:
|
||||
|
@@ -5,8 +5,7 @@
|
||||
|
||||
-- Ignore "value assigned to a local variable is unused" because
|
||||
-- we can't guarantee that local variables will be used by plugins
|
||||
-- luacheck: ignore
|
||||
--- @diagnostic disable
|
||||
-- luacheck: ignore 311
|
||||
|
||||
local vim9 = require('_vim9script')
|
||||
local M = {}
|
||||
|
3
runtime/autoload/dist/vim.vim
vendored
3
runtime/autoload/dist/vim.vim
vendored
@@ -18,9 +18,6 @@ endif
|
||||
if !has('vim9script')
|
||||
function dist#vim#IsSafeExecutable(filetype, executable)
|
||||
let cwd = getcwd()
|
||||
if empty(exepath(a:executable))
|
||||
return v:false
|
||||
endif
|
||||
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 &&
|
||||
|
@@ -1,6 +1,6 @@
|
||||
" Vim autoload file for editing compressed files.
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2024 Nov 25
|
||||
" Last Change: 2023 Aug 10
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" These functions are used by the gzip plugin.
|
||||
@@ -148,9 +148,6 @@ fun gzip#read(cmd)
|
||||
else
|
||||
let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
|
||||
endif
|
||||
if filereadable(undofile(expand("%")))
|
||||
exe "sil rundo " . fnameescape(undofile(expand("%")))
|
||||
endif
|
||||
if &verbose >= 8
|
||||
execute "doau BufReadPost " . fname
|
||||
else
|
||||
|
@@ -1,26 +0,0 @@
|
||||
" Vim autoload file.
|
||||
" Language: Hare
|
||||
" Maintainer: Amelia Clarke <selene@perilune.dev>
|
||||
" Last Updated: 2024-05-10
|
||||
" Upstream: https://git.sr.ht/~sircmpwn/hare.vim
|
||||
|
||||
" Attempt to find the directory for a given Hare module.
|
||||
function hare#FindModule(str)
|
||||
let path = substitute(trim(a:str, ':', 2), '::', '/', 'g')
|
||||
let dir = finddir(path)
|
||||
while !empty(path) && empty(dir)
|
||||
let path = substitute(path, '/\?\h\w*$', '', '')
|
||||
let dir = finddir(path)
|
||||
endwhile
|
||||
return dir
|
||||
endfunction
|
||||
|
||||
" Return the value of HAREPATH if it exists. Otherwise use a reasonable default.
|
||||
function hare#GetPath()
|
||||
if empty($HAREPATH)
|
||||
return '/usr/src/hare/stdlib,/usr/src/hare/third-party'
|
||||
endif
|
||||
return substitute($HAREPATH, ':', ',', 'g')
|
||||
endfunction
|
||||
|
||||
" vim: et sts=2 sw=2 ts=8
|
@@ -1,40 +0,0 @@
|
||||
" Language: HCL
|
||||
" Maintainer: Gregory Anders
|
||||
" Last Change: 2024-09-03
|
||||
" Based on: https://github.com/hashivim/vim-terraform
|
||||
|
||||
function! hcl#indentexpr(lnum)
|
||||
" Beginning of the file should have no indent
|
||||
if a:lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Usual case is to continue at the same indent as the previous non-blank line.
|
||||
let prevlnum = prevnonblank(a:lnum-1)
|
||||
let thisindent = indent(prevlnum)
|
||||
|
||||
" If that previous line is a non-comment ending in [ { (, increase the
|
||||
" indent level.
|
||||
let prevline = getline(prevlnum)
|
||||
if prevline !~# '^\s*\(#\|//\)' && prevline =~# '[\[{\(]\s*$'
|
||||
let thisindent += &shiftwidth
|
||||
endif
|
||||
|
||||
" If the current line ends a block, decrease the indent level.
|
||||
let thisline = getline(a:lnum)
|
||||
if thisline =~# '^\s*[\)}\]]'
|
||||
let thisindent -= &shiftwidth
|
||||
endif
|
||||
|
||||
" If the previous line starts a block comment /*, increase by one
|
||||
if prevline =~# '/\*'
|
||||
let thisindent += 1
|
||||
endif
|
||||
|
||||
" If the previous line ends a block comment */, decrease by one
|
||||
if prevline =~# '\*/'
|
||||
let thisindent -= 1
|
||||
endif
|
||||
|
||||
return thisindent
|
||||
endfunction
|
40
runtime/autoload/health.vim
Normal file
40
runtime/autoload/health.vim
Normal file
@@ -0,0 +1,40 @@
|
||||
function! s:deprecate(type) abort
|
||||
let deprecate = v:lua.vim.deprecate('health#report_' . a:type, 'vim.health.' . a:type, '0.11')
|
||||
redraw | echo 'Running healthchecks...'
|
||||
if deprecate isnot v:null
|
||||
call v:lua.vim.health.warn(deprecate)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! health#report_start(name) abort
|
||||
call v:lua.vim.health.start(a:name)
|
||||
call s:deprecate('start')
|
||||
endfunction
|
||||
|
||||
function! health#report_info(msg) abort
|
||||
call v:lua.vim.health.info(a:msg)
|
||||
call s:deprecate('info')
|
||||
endfunction
|
||||
|
||||
function! health#report_ok(msg) abort
|
||||
call v:lua.vim.health.ok(a:msg)
|
||||
call s:deprecate('ok')
|
||||
endfunction
|
||||
|
||||
function! health#report_warn(msg, ...) abort
|
||||
if a:0 > 0
|
||||
call v:lua.vim.health.warn(a:msg, a:1)
|
||||
else
|
||||
call v:lua.vim.health.warn(a:msg)
|
||||
endif
|
||||
call s:deprecate('warn')
|
||||
endfunction
|
||||
|
||||
function! health#report_error(msg, ...) abort
|
||||
if a:0 > 0
|
||||
call v:lua.vim.health.error(a:msg, a:1)
|
||||
else
|
||||
call v:lua.vim.health.error(a:msg)
|
||||
endif
|
||||
call s:deprecate('error')
|
||||
endfunction
|
@@ -1,92 +0,0 @@
|
||||
" Vim formatting plugin file
|
||||
" Language: Java
|
||||
" Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com>
|
||||
" Repository: https://github.com/zzzyxwvut/java-vim.git
|
||||
" Last Change: 2024 Sep 26
|
||||
|
||||
" Documented in ":help ft-java-plugin".
|
||||
if &cp || exists("g:loaded_javaformat") || exists("g:java_ignore_javadoc") || exists("g:java_ignore_markdown")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_javaformat = 1
|
||||
|
||||
"""" STRIVE TO REMAIN COMPATIBLE FOR AT LEAST VIM 7.0.
|
||||
|
||||
function! javaformat#RemoveCommonMarkdownWhitespace() abort
|
||||
if mode() != 'n'
|
||||
return 0
|
||||
endif
|
||||
|
||||
let pattern = '\(^\s*///\)\(\s*\)\(.*\)'
|
||||
|
||||
" E121 for v:numbermax before v8.2.2388.
|
||||
" E15 for expr-<< before v8.2.5003.
|
||||
let common = 0x7fffffff
|
||||
let comments = []
|
||||
|
||||
for n in range(v:lnum, (v:lnum + v:count - 1))
|
||||
let parts = matchlist(getline(n), pattern)
|
||||
let whitespace = get(parts, 2, '')
|
||||
let nonwhitespace = get(parts, 3, '')
|
||||
|
||||
if !empty(whitespace)
|
||||
let common = min([common, strlen(whitespace)])
|
||||
elseif !empty(nonwhitespace) || empty(parts)
|
||||
" No whitespace prefix or not a Markdown comment.
|
||||
return 0
|
||||
endif
|
||||
|
||||
call add(comments, [whitespace, parts[1], nonwhitespace])
|
||||
endfor
|
||||
|
||||
let cursor = v:lnum
|
||||
|
||||
for line in comments
|
||||
call setline(cursor, join(line[1 :], strpart(line[0], common)))
|
||||
let cursor += 1
|
||||
endfor
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" See ":help vim9-mix".
|
||||
if !has("vim9script")
|
||||
finish
|
||||
endif
|
||||
|
||||
def! g:javaformat#RemoveCommonMarkdownWhitespace(): number
|
||||
if mode() != 'n'
|
||||
return 0
|
||||
endif
|
||||
|
||||
const pattern: string = '\(^\s*///\)\(\s*\)\(.*\)'
|
||||
var common: number = v:numbermax
|
||||
var comments: list<list<string>> = []
|
||||
|
||||
for n in range(v:lnum, (v:lnum + v:count - 1))
|
||||
const parts: list<string> = matchlist(getline(n), pattern)
|
||||
const whitespace: string = get(parts, 2, '')
|
||||
const nonwhitespace: string = get(parts, 3, '')
|
||||
|
||||
if !empty(whitespace)
|
||||
common = min([common, strlen(whitespace)])
|
||||
elseif !empty(nonwhitespace) || empty(parts)
|
||||
# No whitespace prefix or not a Markdown comment.
|
||||
return 0
|
||||
endif
|
||||
|
||||
add(comments, [whitespace, parts[1], nonwhitespace])
|
||||
endfor
|
||||
|
||||
var cursor: number = v:lnum
|
||||
|
||||
for line in comments
|
||||
setline(cursor, join(line[1 :], strpart(line[0], common)))
|
||||
cursor += 1
|
||||
endfor
|
||||
|
||||
return 0
|
||||
enddef
|
||||
|
||||
" vim: fdm=syntax sw=4 ts=8 noet sta
|
@@ -361,7 +361,7 @@ endfunction
|
||||
let s:MSGPACK_STANDARD_TYPES = {
|
||||
\type(0): 'integer',
|
||||
\type(0.0): 'float',
|
||||
\type(''): 'string',
|
||||
\type(''): 'binary',
|
||||
\type([]): 'array',
|
||||
\type({}): 'map',
|
||||
\type(v:true): 'boolean',
|
||||
@@ -412,15 +412,9 @@ endfunction
|
||||
""
|
||||
" Dump |msgpack-special-dict| that represents a string. If any additional
|
||||
" parameter is given then it dumps binary string.
|
||||
function s:msgpack_dump_string(v) abort
|
||||
if type(a:v) == type({})
|
||||
let val = a:v
|
||||
else
|
||||
let val = {'_VAL': split(a:v, "\n", 1)}
|
||||
end
|
||||
|
||||
let ret = ['"']
|
||||
for v in val._VAL
|
||||
function s:msgpack_dump_string(v, ...) abort
|
||||
let ret = [a:0 ? '"' : '="']
|
||||
for v in a:v._VAL
|
||||
call add(
|
||||
\ret,
|
||||
\substitute(
|
||||
@@ -432,6 +426,16 @@ function s:msgpack_dump_string(v) abort
|
||||
return join(ret, '')
|
||||
endfunction
|
||||
|
||||
""
|
||||
" Dump binary string.
|
||||
function s:msgpack_dump_binary(v) abort
|
||||
if type(a:v) == type({})
|
||||
return s:msgpack_dump_string(a:v, 1)
|
||||
else
|
||||
return s:msgpack_dump_string({'_VAL': split(a:v, "\n", 1)}, 1)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
""
|
||||
" Dump array value.
|
||||
function s:msgpack_dump_array(v) abort
|
||||
@@ -445,7 +449,7 @@ function s:msgpack_dump_map(v) abort
|
||||
let ret = ['{']
|
||||
if msgpack#special_type(a:v) is 0
|
||||
for [k, v] in items(a:v)
|
||||
let ret += [s:msgpack_dump_string({'_VAL': split(k, "\n")}),
|
||||
let ret += [s:msgpack_dump_string({'_VAL': split(k, "\n", 1)}),
|
||||
\': ',
|
||||
\msgpack#string(v),
|
||||
\', ']
|
||||
@@ -475,7 +479,7 @@ endfunction
|
||||
" Dump extension value.
|
||||
function s:msgpack_dump_ext(v) abort
|
||||
return printf('+(%i)%s', a:v._VAL[0],
|
||||
\s:msgpack_dump_string({'_VAL': a:v._VAL[1]}))
|
||||
\s:msgpack_dump_string({'_VAL': a:v._VAL[1]}, 1))
|
||||
endfunction
|
||||
|
||||
""
|
||||
@@ -615,7 +619,9 @@ function msgpack#eval(s, special_objs) abort
|
||||
throw '"-invalid:Invalid string: ' . s
|
||||
endif
|
||||
call add(expr, '{''_TYPE'': v:msgpack_types.')
|
||||
if empty(match[1]) || match[1] is# '='
|
||||
if empty(match[1])
|
||||
call add(expr, 'binary')
|
||||
elseif match[1] is# '='
|
||||
call add(expr, 'string')
|
||||
else
|
||||
call add(expr, 'ext')
|
||||
@@ -766,7 +772,7 @@ function msgpack#equal(a, b)
|
||||
let a = aspecial is 0 ? a:a : a:a._VAL
|
||||
let b = bspecial is 0 ? a:b : a:b._VAL
|
||||
return msgpack#equal(a, b)
|
||||
elseif atype is# 'string'
|
||||
elseif atype is# 'binary'
|
||||
let a = (aspecial is 0 ? split(a:a, "\n", 1) : a:a._VAL)
|
||||
let b = (bspecial is 0 ? split(a:b, "\n", 1) : a:b._VAL)
|
||||
return a ==# b
|
||||
@@ -781,7 +787,6 @@ function msgpack#equal(a, b)
|
||||
" Non-special mapping cannot have non-string keys
|
||||
return 0
|
||||
endif
|
||||
if type(k) == type({})
|
||||
if (empty(k._VAL)
|
||||
\|| k._VAL ==# [""]
|
||||
\|| !empty(filter(copy(k._VAL), 'stridx(v:val, "\n") != -1')))
|
||||
@@ -789,9 +794,6 @@ function msgpack#equal(a, b)
|
||||
return 0
|
||||
endif
|
||||
let kstr = join(k._VAL, "\n")
|
||||
else
|
||||
let kstr = k
|
||||
endif
|
||||
if !has_key(akeys, kstr)
|
||||
" Protects from both missing and duplicate keys
|
||||
return 0
|
||||
|
12734
runtime/autoload/netrw.vim
Normal file
12734
runtime/autoload/netrw.vim
Normal file
File diff suppressed because it is too large
Load Diff
363
runtime/autoload/netrwFileHandlers.vim
Normal file
363
runtime/autoload/netrwFileHandlers.vim
Normal file
@@ -0,0 +1,363 @@
|
||||
" netrwFileHandlers: contains various extension-based file handlers for
|
||||
" netrw's browsers' x command ("eXecute launcher")
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Original Author: Charles E. Campbell
|
||||
" Date: Sep 18, 2020
|
||||
" Version: 11
|
||||
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
" netrwFileHandlers.vim is provided *as is* and comes with no
|
||||
" warranty of any kind, either expressed or implied. In no
|
||||
" event will the copyright holder be liable for any damages
|
||||
" resulting from the use of this software.
|
||||
"
|
||||
" Rom 6:23 (WEB) For the wages of sin is death, but the free gift of God {{{1
|
||||
" is eternal life in Christ Jesus our Lord.
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if exists("g:loaded_netrwFileHandlers") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwFileHandlers= "v11"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" netrwFileHandlers#Invoke: {{{1
|
||||
fun! netrwFileHandlers#Invoke(exten,fname)
|
||||
" call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
|
||||
let exten= a:exten
|
||||
" list of supported special characters. Consider rcs,v --- that can be
|
||||
" supported with a NFH_rcsCOMMAv() handler
|
||||
if exten =~ '[@:,$!=\-+%?;~]'
|
||||
let specials= {
|
||||
\ '@' : 'AT',
|
||||
\ ':' : 'COLON',
|
||||
\ ',' : 'COMMA',
|
||||
\ '$' : 'DOLLAR',
|
||||
\ '!' : 'EXCLAMATION',
|
||||
\ '=' : 'EQUAL',
|
||||
\ '-' : 'MINUS',
|
||||
\ '+' : 'PLUS',
|
||||
\ '%' : 'PERCENT',
|
||||
\ '?' : 'QUESTION',
|
||||
\ ';' : 'SEMICOLON',
|
||||
\ '~' : 'TILDE'}
|
||||
let exten= substitute(a:exten,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
|
||||
" call Decho('fname<'.fname.'> done with dictionary')
|
||||
endif
|
||||
|
||||
if a:exten != "" && exists("*NFH_".exten)
|
||||
" support user NFH_*() functions
|
||||
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
|
||||
exe "let ret= NFH_".exten.'("'.a:fname.'")'
|
||||
elseif a:exten != "" && exists("*s:NFH_".exten)
|
||||
" use builtin-NFH_*() functions
|
||||
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
|
||||
exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")'
|
||||
endif
|
||||
|
||||
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
|
||||
return 0
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_html: handles html when the user hits "x" when the {{{1
|
||||
" cursor is atop a *.html file
|
||||
fun! s:NFH_html(pagefile)
|
||||
" call Dfunc("s:NFH_html(".a:pagefile.")")
|
||||
|
||||
let page= substitute(a:pagefile,'^','file://','')
|
||||
|
||||
if executable("mozilla")
|
||||
" call Decho("executing !mozilla ".page)
|
||||
exe "!mozilla ".shellescape(page,1)
|
||||
elseif executable("netscape")
|
||||
" call Decho("executing !netscape ".page)
|
||||
exe "!netscape ".shellescape(page,1)
|
||||
else
|
||||
" call Dret("s:NFH_html 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_html 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_htm: handles html when the user hits "x" when the {{{1
|
||||
" cursor is atop a *.htm file
|
||||
fun! s:NFH_htm(pagefile)
|
||||
" call Dfunc("s:NFH_htm(".a:pagefile.")")
|
||||
|
||||
let page= substitute(a:pagefile,'^','file://','')
|
||||
|
||||
if executable("mozilla")
|
||||
" call Decho("executing !mozilla ".page)
|
||||
exe "!mozilla ".shellescape(page,1)
|
||||
elseif executable("netscape")
|
||||
" call Decho("executing !netscape ".page)
|
||||
exe "!netscape ".shellescape(page,1)
|
||||
else
|
||||
" call Dret("s:NFH_htm 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_htm 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_jpg: {{{1
|
||||
fun! s:NFH_jpg(jpgfile)
|
||||
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
|
||||
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
|
||||
else
|
||||
" call Dret("s:NFH_jpg 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_jpg 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_gif: {{{1
|
||||
fun! s:NFH_gif(giffile)
|
||||
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:giffile,1)
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
|
||||
else
|
||||
" call Dret("s:NFH_gif 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_gif 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_png: {{{1
|
||||
fun! s:NFH_png(pngfile)
|
||||
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:pngfile,1)
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
|
||||
else
|
||||
" call Dret("s:NFH_png 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_png 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_pnm: {{{1
|
||||
fun! s:NFH_pnm(pnmfile)
|
||||
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
|
||||
else
|
||||
" call Dret("s:NFH_pnm 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_pnm 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_bmp: visualize bmp files {{{1
|
||||
fun! s:NFH_bmp(bmpfile)
|
||||
" call Dfunc("s:NFH_bmp(bmpfile<".a:bmpfile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".a:bmpfile
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
|
||||
else
|
||||
" call Dret("s:NFH_bmp 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_bmp 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_pdf: visualize pdf files {{{1
|
||||
fun! s:NFH_pdf(pdf)
|
||||
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
|
||||
if executable("gs")
|
||||
exe 'silent! !gs '.shellescape(a:pdf,1)
|
||||
elseif executable("pdftotext")
|
||||
exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
|
||||
else
|
||||
" call Dret("s:NFH_pdf 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_pdf 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_doc: visualize doc files {{{1
|
||||
fun! s:NFH_doc(doc)
|
||||
" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
|
||||
|
||||
if executable("oowriter")
|
||||
exe 'silent! !oowriter '.shellescape(a:doc,1)
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_doc 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_doc 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_sxw: visualize sxw files {{{1
|
||||
fun! s:NFH_sxw(sxw)
|
||||
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
|
||||
|
||||
if executable("oowriter")
|
||||
exe 'silent! !oowriter '.shellescape(a:sxw,1)
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_sxw 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_sxw 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_xls: visualize xls files {{{1
|
||||
fun! s:NFH_xls(xls)
|
||||
" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
|
||||
|
||||
if executable("oocalc")
|
||||
exe 'silent! !oocalc '.shellescape(a:xls,1)
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_xls 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_xls 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_ps: handles PostScript files {{{1
|
||||
fun! s:NFH_ps(ps)
|
||||
" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
|
||||
if executable("gs")
|
||||
" call Decho("exe silent! !gs ".a:ps)
|
||||
exe "silent! !gs ".shellescape(a:ps,1)
|
||||
redraw!
|
||||
elseif executable("ghostscript")
|
||||
" call Decho("exe silent! !ghostscript ".a:ps)
|
||||
exe "silent! !ghostscript ".shellescape(a:ps,1)
|
||||
redraw!
|
||||
elseif executable("gswin32")
|
||||
" call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
|
||||
exe "silent! !gswin32 ".shellescape(a:ps,1)
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_ps 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_ps 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_eps: handles encapsulated PostScript files {{{1
|
||||
fun! s:NFH_eps(eps)
|
||||
" call Dfunc("s:NFH_eps()")
|
||||
if executable("gs")
|
||||
exe "silent! !gs ".shellescape(a:eps,1)
|
||||
redraw!
|
||||
elseif executable("ghostscript")
|
||||
exe "silent! !ghostscript ".shellescape(a:eps,1)
|
||||
redraw!
|
||||
elseif executable("ghostscript")
|
||||
exe "silent! !ghostscript ".shellescape(a:eps,1)
|
||||
redraw!
|
||||
elseif executable("gswin32")
|
||||
exe "silent! !gswin32 ".shellescape(a:eps,1)
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_eps 0")
|
||||
return 0
|
||||
endif
|
||||
" call Dret("s:NFH_eps 0")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_fig: handles xfig files {{{1
|
||||
fun! s:NFH_fig(fig)
|
||||
" call Dfunc("s:NFH_fig()")
|
||||
if executable("xfig")
|
||||
exe "silent! !xfig ".a:fig
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_fig 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_fig 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NFH_obj: handles tgif's obj files {{{1
|
||||
fun! s:NFH_obj(obj)
|
||||
" call Dfunc("s:NFH_obj()")
|
||||
if has("unix") && executable("tgif")
|
||||
exe "silent! !tgif ".a:obj
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_obj 0")
|
||||
return 0
|
||||
endif
|
||||
|
||||
" call Dret("s:NFH_obj 1")
|
||||
return 1
|
||||
endfun
|
||||
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" ---------------------------------------------------------------------
|
||||
" Modelines: {{{1
|
||||
" vim: fdm=marker
|
249
runtime/autoload/netrwSettings.vim
Normal file
249
runtime/autoload/netrwSettings.vim
Normal file
@@ -0,0 +1,249 @@
|
||||
" netrwSettings.vim: makes netrw settings simpler
|
||||
" Date: Nov 15, 2021
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Former Maintainer: Charles E Campbell
|
||||
" Version: 18
|
||||
" Last Change:
|
||||
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
|
||||
" 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
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
" netrwSettings.vim is provided *as is* and comes with no
|
||||
" warranty of any kind, either expressed or implied. By using
|
||||
" this plugin, you agree that in no event will the copyright
|
||||
" holder be liable for any damages resulting from the use
|
||||
" of this software.
|
||||
"
|
||||
" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
|
||||
" synagogues, preaching the gospel of the kingdom, and healing
|
||||
" every disease and every sickness among the people.
|
||||
" Load Once: {{{1
|
||||
if exists("g:loaded_netrwSettings") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwSettings = "v18"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" NetrwSettings: {{{1
|
||||
fun! netrwSettings#NetrwSettings()
|
||||
" this call is here largely just to insure that netrw has been loaded
|
||||
call netrw#WinPath("")
|
||||
if !exists("g:loaded_netrw")
|
||||
echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
above wincmd s
|
||||
enew
|
||||
setlocal noswapfile bh=wipe
|
||||
set ft=vim
|
||||
file Netrw\ Settings
|
||||
|
||||
" these variables have the following default effects when they don't
|
||||
" exist (ie. have not been set by the user in his/her .vimrc)
|
||||
if !exists("g:netrw_liststyle")
|
||||
let g:netrw_liststyle= 0
|
||||
let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
|
||||
endif
|
||||
if !exists("g:netrw_silent")
|
||||
let g:netrw_silent= 0
|
||||
endif
|
||||
if !exists("g:netrw_use_nt_rcp")
|
||||
let g:netrw_use_nt_rcp= 0
|
||||
endif
|
||||
if !exists("g:netrw_ftp")
|
||||
let g:netrw_ftp= 0
|
||||
endif
|
||||
if !exists("g:netrw_ignorenetrc")
|
||||
let g:netrw_ignorenetrc= 0
|
||||
endif
|
||||
|
||||
put ='+ ---------------------------------------------'
|
||||
put ='+ NetrwSettings: by Charles E. Campbell'
|
||||
put ='+ Press <F1> with cursor atop any line for help'
|
||||
put ='+ ---------------------------------------------'
|
||||
let s:netrw_settings_stop= line(".")
|
||||
|
||||
put =''
|
||||
put ='+ Netrw Protocol Commands'
|
||||
put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
|
||||
put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
|
||||
put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
|
||||
put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
|
||||
put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
|
||||
put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
|
||||
put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
|
||||
put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
|
||||
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
|
||||
let s:netrw_protocol_stop= line(".")
|
||||
put = ''
|
||||
|
||||
put ='+Netrw Transfer Control'
|
||||
put = 'let g:netrw_cygwin = '.g:netrw_cygwin
|
||||
put = 'let g:netrw_ftp = '.g:netrw_ftp
|
||||
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
|
||||
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
|
||||
put = 'let g:netrw_sshport = '.g:netrw_sshport
|
||||
put = 'let g:netrw_silent = '.g:netrw_silent
|
||||
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
|
||||
let s:netrw_xfer_stop= line(".")
|
||||
put =''
|
||||
put ='+ Netrw Messages'
|
||||
put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
|
||||
|
||||
put = ''
|
||||
put ='+ Netrw Browser Control'
|
||||
if exists("g:netrw_altfile")
|
||||
put = 'let g:netrw_altfile = '.g:netrw_altfile
|
||||
else
|
||||
put = 'let g:netrw_altfile = 0'
|
||||
endif
|
||||
put = 'let g:netrw_alto = '.g:netrw_alto
|
||||
put = 'let g:netrw_altv = '.g:netrw_altv
|
||||
put = 'let g:netrw_banner = '.g:netrw_banner
|
||||
if exists("g:netrw_bannerbackslash")
|
||||
put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
|
||||
else
|
||||
put = '\" let g:netrw_bannerbackslash = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_browse_split = '.g:netrw_browse_split
|
||||
if exists("g:netrw_browsex_viewer")
|
||||
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
|
||||
else
|
||||
put = '\" let g:netrw_browsex_viewer = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_compress = '.g:netrw_compress
|
||||
if exists("g:Netrw_corehandler")
|
||||
put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
|
||||
else
|
||||
put = '\" let g:Netrw_corehandler = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_ctags = '.g:netrw_ctags
|
||||
put = 'let g:netrw_cursor = '.g:netrw_cursor
|
||||
let decompressline= line("$")
|
||||
put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
|
||||
if exists("g:netrw_dynamic_maxfilenamelen")
|
||||
put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
|
||||
else
|
||||
put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
|
||||
put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
|
||||
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
|
||||
let fnameescline= line("$")
|
||||
put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
|
||||
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
|
||||
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
|
||||
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
|
||||
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
|
||||
let globescline= line("$")
|
||||
put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
|
||||
put = 'let g:netrw_hide = '.g:netrw_hide
|
||||
if exists("g:netrw_home")
|
||||
put = 'let g:netrw_home = '.g:netrw_home
|
||||
else
|
||||
put = '\" let g:netrw_home = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
|
||||
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
|
||||
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
|
||||
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
|
||||
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
|
||||
put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
|
||||
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
|
||||
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_maxfilenamelen = '.g:netrw_maxfilenamelen
|
||||
put = 'let g:netrw_menu = '.g:netrw_menu
|
||||
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
|
||||
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
|
||||
if exists("g:netrw_nobeval")
|
||||
put = 'let g:netrw_nobeval = '.g:netrw_nobeval
|
||||
else
|
||||
put = '\" let g:netrw_nobeval = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
|
||||
put = 'let g:netrw_preview = '.g:netrw_preview
|
||||
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
|
||||
put = 'let g:netrw_retmap = '.g:netrw_retmap
|
||||
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
|
||||
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
|
||||
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
|
||||
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
|
||||
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
|
||||
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
|
||||
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
|
||||
put = 'let g:netrw_servername = '.g:netrw_servername
|
||||
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
|
||||
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
|
||||
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
|
||||
put = 'let g:netrw_scpport = '.g:netrw_scpport
|
||||
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
|
||||
put = 'let g:netrw_sshport = '.g:netrw_sshport
|
||||
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
|
||||
let tmpfileescline= line("$")
|
||||
put ='let g:netrw_tmpfile_escape...'
|
||||
put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
|
||||
put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
|
||||
put = 'let g:netrw_winsize = '.g:netrw_winsize
|
||||
|
||||
put =''
|
||||
put ='+ For help, place cursor on line and press <F1>'
|
||||
|
||||
1d
|
||||
silent %s/^+/"/e
|
||||
res 99
|
||||
silent %s/= \([^0-9].*\)$/= '\1'/e
|
||||
silent %s/= $/= ''/e
|
||||
1
|
||||
|
||||
call setline(decompressline,"let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
|
||||
call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
|
||||
call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
|
||||
call setline(tmpfileescline,"let g:netrw_tmpfile_escape = '".escape(g:netrw_tmpfile_escape,"'")."'")
|
||||
|
||||
set nomod
|
||||
|
||||
nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
|
||||
nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
|
||||
let tmpfile= tempname()
|
||||
exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" NetrwSettingHelp: {{{2
|
||||
fun! NetrwSettingHelp()
|
||||
" call Dfunc("NetrwSettingHelp()")
|
||||
let curline = getline(".")
|
||||
if curline =~ '='
|
||||
let varhelp = substitute(curline,'^\s*let ','','e')
|
||||
let varhelp = substitute(varhelp,'\s*=.*$','','e')
|
||||
" call Decho("trying help ".varhelp)
|
||||
try
|
||||
exe "he ".varhelp
|
||||
catch /^Vim\%((\a\+)\)\=:E149/
|
||||
echo "***sorry*** no help available for <".varhelp.">"
|
||||
endtry
|
||||
elseif line(".") < s:netrw_settings_stop
|
||||
he netrw-settings
|
||||
elseif line(".") < s:netrw_protocol_stop
|
||||
he netrw-externapp
|
||||
elseif line(".") < s:netrw_xfer_stop
|
||||
he netrw-variables
|
||||
else
|
||||
he netrw-browse-var
|
||||
endif
|
||||
" call Dret("NetrwSettingHelp")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Modelines: {{{1
|
||||
" vim:ts=8 fdm=marker
|
@@ -1,7 +1,3 @@
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Former Maintainer: Bruno Sutic
|
||||
" Upstream: <https://github.com/saccarosium/netrw.vim>
|
||||
|
||||
" netrw_gitignore#Hide: gitignore-based hiding
|
||||
" Function returns a string of comma separated patterns convenient for
|
||||
" assignment to `g:netrw_list_hide` option.
|
||||
@@ -12,7 +8,7 @@
|
||||
" let g:netrw_list_hide = netrw_gitignore#Hide()
|
||||
" let g:netrw_list_hide = netrw_gitignore#Hide() . 'more,hide,patterns'
|
||||
"
|
||||
" Copyright: Copyright (C) 2013 Bruno Sutic {{{
|
||||
" Copyright: Copyright (C) 2013 Bruno Sutic {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
@@ -20,10 +16,7 @@
|
||||
" warranty of any kind, either expressed or implied. By using
|
||||
" this plugin, you agree that in no event will the copyright
|
||||
" holder be liable for any damages resulting from the use
|
||||
" of this software. }}}
|
||||
|
||||
" of this software.
|
||||
function! netrw_gitignore#Hide(...)
|
||||
return substitute(substitute(system('git ls-files --other --ignored --exclude-standard --directory'), '\n', ',', 'g'), ',$', '', '')
|
||||
endfunction
|
||||
|
||||
" vim:ts=8 sts=4 sw=4 et fdm=marker
|
@@ -4,7 +4,7 @@
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Define the string to use for items that are present both in Edit, Popup and
|
||||
" Toolbar menu. Also used in mswin.vim.
|
||||
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
||||
|
||||
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
|
||||
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
|
||||
|
@@ -5,11 +5,11 @@
|
||||
if exists('g:loaded_clipboard_provider')
|
||||
finish
|
||||
endif
|
||||
" Default to 0. provider#clipboard#Executable() may set 2.
|
||||
" Default to 1. provider#clipboard#Executable() may set 2.
|
||||
" To force a reload:
|
||||
" :unlet g:loaded_clipboard_provider
|
||||
" :runtime autoload/provider/clipboard.vim
|
||||
let g:loaded_clipboard_provider = 0
|
||||
let g:loaded_clipboard_provider = 1
|
||||
|
||||
let s:copy = {}
|
||||
let s:paste = {}
|
||||
@@ -59,121 +59,6 @@ function! s:split_cmd(cmd) abort
|
||||
return (type(a:cmd) == v:t_string) ? split(a:cmd, " ") : a:cmd
|
||||
endfunction
|
||||
|
||||
function! s:set_osc52() abort
|
||||
let s:copy['+'] = v:lua.require'vim.ui.clipboard.osc52'.copy('+')
|
||||
let s:copy['*'] = v:lua.require'vim.ui.clipboard.osc52'.copy('*')
|
||||
let s:paste['+'] = v:lua.require'vim.ui.clipboard.osc52'.paste('+')
|
||||
let s:paste['*'] = v:lua.require'vim.ui.clipboard.osc52'.paste('*')
|
||||
return 'OSC 52'
|
||||
endfunction
|
||||
|
||||
function! s:set_pbcopy() abort
|
||||
let s:copy['+'] = ['pbcopy']
|
||||
let s:paste['+'] = ['pbpaste']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
let s:cache_enabled = 0
|
||||
return 'pbcopy'
|
||||
endfunction
|
||||
|
||||
function! s:set_wayland() abort
|
||||
let s:copy['+'] = ['wl-copy', '--type', 'text/plain']
|
||||
let s:paste['+'] = ['wl-paste', '--no-newline']
|
||||
let s:copy['*'] = ['wl-copy', '--primary', '--type', 'text/plain']
|
||||
let s:paste['*'] = ['wl-paste', '--no-newline', '--primary']
|
||||
return 'wl-copy'
|
||||
endfunction
|
||||
|
||||
function! s:set_wayclip() abort
|
||||
let s:copy['+'] = ['waycopy', '-t', 'text/plain']
|
||||
let s:paste['+'] = ['waypaste', '-t', 'text/plain']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'wayclip'
|
||||
endfunction
|
||||
|
||||
function! s:set_xsel() abort
|
||||
let s:copy['+'] = ['xsel', '--nodetach', '-i', '-b']
|
||||
let s:paste['+'] = ['xsel', '-o', '-b']
|
||||
let s:copy['*'] = ['xsel', '--nodetach', '-i', '-p']
|
||||
let s:paste['*'] = ['xsel', '-o', '-p']
|
||||
return 'xsel'
|
||||
endfunction
|
||||
|
||||
function! s:set_xclip() abort
|
||||
let s:copy['+'] = ['xclip', '-quiet', '-i', '-selection', 'clipboard']
|
||||
let s:paste['+'] = ['xclip', '-o', '-selection', 'clipboard']
|
||||
let s:copy['*'] = ['xclip', '-quiet', '-i', '-selection', 'primary']
|
||||
let s:paste['*'] = ['xclip', '-o', '-selection', 'primary']
|
||||
return 'xclip'
|
||||
endfunction
|
||||
|
||||
function! s:set_lemonade() abort
|
||||
let s:copy['+'] = ['lemonade', 'copy']
|
||||
let s:paste['+'] = ['lemonade', 'paste']
|
||||
let s:copy['*'] = ['lemonade', 'copy']
|
||||
let s:paste['*'] = ['lemonade', 'paste']
|
||||
return 'lemonade'
|
||||
endfunction
|
||||
|
||||
function! s:set_doitclient() abort
|
||||
let s:copy['+'] = ['doitclient', 'wclip']
|
||||
let s:paste['+'] = ['doitclient', 'wclip', '-r']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'doitclient'
|
||||
endfunction
|
||||
|
||||
function! s:set_win32yank() abort
|
||||
if has('wsl') && getftype(exepath('win32yank.exe')) == 'link'
|
||||
let win32yank = resolve(exepath('win32yank.exe'))
|
||||
else
|
||||
let win32yank = 'win32yank.exe'
|
||||
endif
|
||||
let s:copy['+'] = [win32yank, '-i', '--crlf']
|
||||
let s:paste['+'] = [win32yank, '-o', '--lf']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'win32yank'
|
||||
endfunction
|
||||
|
||||
function! s:set_putclip() abort
|
||||
let s:copy['+'] = ['putclip']
|
||||
let s:paste['+'] = ['getclip']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'putclip'
|
||||
endfunction
|
||||
|
||||
function! s:set_clip() abort
|
||||
let s:copy['+'] = ['clip']
|
||||
let s:paste['+'] = ['powershell', '-NoProfile', '-NoLogo', '-Command', 'Get-Clipboard']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'clip'
|
||||
endfunction
|
||||
|
||||
function! s:set_termux() abort
|
||||
let s:copy['+'] = ['termux-clipboard-set']
|
||||
let s:paste['+'] = ['termux-clipboard-get']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'termux-clipboard'
|
||||
endfunction
|
||||
|
||||
function! s:set_tmux() abort
|
||||
let tmux_v = v:lua.vim.version.parse(system(['tmux', '-V']))
|
||||
if !empty(tmux_v) && !v:lua.vim.version.lt(tmux_v, [3,2,0])
|
||||
let s:copy['+'] = ['tmux', 'load-buffer', '-w', '-']
|
||||
else
|
||||
let s:copy['+'] = ['tmux', 'load-buffer', '-']
|
||||
endif
|
||||
let s:paste['+'] = ['tmux', 'save-buffer', '-']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'tmux'
|
||||
endfunction
|
||||
|
||||
let s:cache_enabled = 1
|
||||
let s:err = ''
|
||||
|
||||
@@ -184,38 +69,6 @@ endfunction
|
||||
function! provider#clipboard#Executable() abort
|
||||
" Setting g:clipboard to v:false explicitly opts-in to using the "builtin" clipboard providers below
|
||||
if exists('g:clipboard') && g:clipboard isnot# v:false
|
||||
if v:t_string ==# type(g:clipboard)
|
||||
" Handle string form of g:clipboard for all builtin providers
|
||||
if 'osc52' == g:clipboard
|
||||
" User opted-in to OSC 52 by manually setting g:clipboard.
|
||||
return s:set_osc52()
|
||||
elseif 'pbcopy' == g:clipboard
|
||||
return s:set_pbcopy()
|
||||
elseif 'wl-copy' == g:clipboard
|
||||
return s:set_wayland()
|
||||
elseif 'wayclip' == g:clipboard
|
||||
return s:set_wayclip()
|
||||
elseif 'xsel' == g:clipboard
|
||||
return s:set_xsel()
|
||||
elseif 'xclip' == g:clipboard
|
||||
return s:set_xclip()
|
||||
elseif 'lemonade' == g:clipboard
|
||||
return s:set_lemonade()
|
||||
elseif 'doitclient' == g:clipboard
|
||||
return s:set_doitclient()
|
||||
elseif 'win32yank' == g:clipboard
|
||||
return s:set_win32yank()
|
||||
elseif 'putclip' == g:clipboard
|
||||
return s:set_putclip()
|
||||
elseif 'clip' == g:clipboard
|
||||
return s:set_clip()
|
||||
elseif 'termux' == g:clipboard
|
||||
return s:set_termux()
|
||||
elseif 'tmux' == g:clipboard
|
||||
return s:set_tmux()
|
||||
endif
|
||||
endif
|
||||
|
||||
if type({}) isnot# type(g:clipboard)
|
||||
\ || type({}) isnot# type(get(g:clipboard, 'copy', v:null))
|
||||
\ || type({}) isnot# type(get(g:clipboard, 'paste', v:null))
|
||||
@@ -234,33 +87,76 @@ function! provider#clipboard#Executable() abort
|
||||
let s:cache_enabled = get(g:clipboard, 'cache_enabled', 0)
|
||||
return get(g:clipboard, 'name', 'g:clipboard')
|
||||
elseif has('mac')
|
||||
return s:set_pbcopy()
|
||||
let s:copy['+'] = ['pbcopy']
|
||||
let s:paste['+'] = ['pbpaste']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
let s:cache_enabled = 0
|
||||
return 'pbcopy'
|
||||
elseif !empty($WAYLAND_DISPLAY) && executable('wl-copy') && executable('wl-paste')
|
||||
return s:set_wayland()
|
||||
let s:copy['+'] = ['wl-copy', '--type', 'text/plain']
|
||||
let s:paste['+'] = ['wl-paste', '--no-newline']
|
||||
let s:copy['*'] = ['wl-copy', '--primary', '--type', 'text/plain']
|
||||
let s:paste['*'] = ['wl-paste', '--no-newline', '--primary']
|
||||
return 'wl-copy'
|
||||
elseif !empty($WAYLAND_DISPLAY) && executable('waycopy') && executable('waypaste')
|
||||
return s:set_wayclip()
|
||||
let s:copy['+'] = ['waycopy', '-t', 'text/plain']
|
||||
let s:paste['+'] = ['waypaste', '-t', 'text/plain']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'wayclip'
|
||||
elseif !empty($DISPLAY) && executable('xsel') && s:cmd_ok('xsel -o -b')
|
||||
return s:set_xsel()
|
||||
let s:copy['+'] = ['xsel', '--nodetach', '-i', '-b']
|
||||
let s:paste['+'] = ['xsel', '-o', '-b']
|
||||
let s:copy['*'] = ['xsel', '--nodetach', '-i', '-p']
|
||||
let s:paste['*'] = ['xsel', '-o', '-p']
|
||||
return 'xsel'
|
||||
elseif !empty($DISPLAY) && executable('xclip')
|
||||
return s:set_xclip()
|
||||
let s:copy['+'] = ['xclip', '-quiet', '-i', '-selection', 'clipboard']
|
||||
let s:paste['+'] = ['xclip', '-o', '-selection', 'clipboard']
|
||||
let s:copy['*'] = ['xclip', '-quiet', '-i', '-selection', 'primary']
|
||||
let s:paste['*'] = ['xclip', '-o', '-selection', 'primary']
|
||||
return 'xclip'
|
||||
elseif executable('lemonade')
|
||||
return s:set_lemonade()
|
||||
let s:copy['+'] = ['lemonade', 'copy']
|
||||
let s:paste['+'] = ['lemonade', 'paste']
|
||||
let s:copy['*'] = ['lemonade', 'copy']
|
||||
let s:paste['*'] = ['lemonade', 'paste']
|
||||
return 'lemonade'
|
||||
elseif executable('doitclient')
|
||||
return s:set_doitclient()
|
||||
let s:copy['+'] = ['doitclient', 'wclip']
|
||||
let s:paste['+'] = ['doitclient', 'wclip', '-r']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'doitclient'
|
||||
elseif executable('win32yank.exe')
|
||||
return s:set_win32yank()
|
||||
elseif executable('putclip') && executable('getclip')
|
||||
return s:set_putclip()
|
||||
elseif executable('clip') && executable('powershell')
|
||||
return s:set_clip()
|
||||
if has('wsl') && getftype(exepath('win32yank.exe')) == 'link'
|
||||
let win32yank = resolve(exepath('win32yank.exe'))
|
||||
else
|
||||
let win32yank = 'win32yank.exe'
|
||||
endif
|
||||
let s:copy['+'] = [win32yank, '-i', '--crlf']
|
||||
let s:paste['+'] = [win32yank, '-o', '--lf']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'win32yank'
|
||||
elseif executable('termux-clipboard-set')
|
||||
return s:set_termux()
|
||||
elseif executable('tmux') && (!empty($TMUX) || 0 == jobwait([jobstart(['tmux', 'list-buffers'])], 2000)[0])
|
||||
return s:set_tmux()
|
||||
elseif get(get(g:, 'termfeatures', {}), 'osc52') && &clipboard ==# ''
|
||||
" Don't use OSC 52 when 'clipboard' is set. It can be slow and cause a lot
|
||||
" of user prompts. Users can opt-in to it by setting g:clipboard manually.
|
||||
return s:set_osc52()
|
||||
let s:copy['+'] = ['termux-clipboard-set']
|
||||
let s:paste['+'] = ['termux-clipboard-get']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'termux-clipboard'
|
||||
elseif !empty($TMUX) && executable('tmux')
|
||||
let tmux_v = v:lua.vim.version.parse(system(['tmux', '-V']))
|
||||
if !empty(tmux_v) && !v:lua.vim.version.lt(tmux_v, [3,2,0])
|
||||
let s:copy['+'] = ['tmux', 'load-buffer', '-w', '-']
|
||||
else
|
||||
let s:copy['+'] = ['tmux', 'load-buffer', '-']
|
||||
endif
|
||||
let s:paste['+'] = ['tmux', 'save-buffer', '-']
|
||||
let s:copy['*'] = s:copy['+']
|
||||
let s:paste['*'] = s:paste['+']
|
||||
return 'tmux'
|
||||
endif
|
||||
|
||||
let s:err = 'clipboard: No clipboard tool. :help clipboard'
|
||||
@@ -268,11 +164,13 @@ function! provider#clipboard#Executable() abort
|
||||
endfunction
|
||||
|
||||
function! s:clipboard.get(reg) abort
|
||||
if s:selections[a:reg].owner > 0
|
||||
if type(s:paste[a:reg]) == v:t_func
|
||||
return s:paste[a:reg]()
|
||||
elseif s:selections[a:reg].owner > 0
|
||||
return s:selections[a:reg].data
|
||||
end
|
||||
|
||||
let clipboard_data = type(s:paste[a:reg]) == v:t_func ? s:paste[a:reg]() : s:try_cmd(s:paste[a:reg])
|
||||
let clipboard_data = s:try_cmd(s:paste[a:reg])
|
||||
if match(&clipboard, '\v(unnamed|unnamedplus)') >= 0
|
||||
\ && type(clipboard_data) == v:t_list
|
||||
\ && get(s:selections[a:reg].data, 0, []) ==# clipboard_data
|
||||
@@ -292,12 +190,13 @@ function! s:clipboard.set(lines, regtype, reg) abort
|
||||
return 0
|
||||
end
|
||||
|
||||
if s:cache_enabled == 0 || type(s:copy[a:reg]) == v:t_func
|
||||
if type(s:copy[a:reg]) == v:t_func
|
||||
call s:copy[a:reg](a:lines, a:regtype)
|
||||
else
|
||||
return 0
|
||||
end
|
||||
|
||||
if s:cache_enabled == 0
|
||||
call s:try_cmd(s:copy[a:reg], a:lines)
|
||||
endif
|
||||
"Cache it anyway we can compare it later to get regtype of the yank
|
||||
let s:selections[a:reg] = copy(s:selection)
|
||||
let s:selections[a:reg].data = [a:lines, a:regtype]
|
||||
@@ -354,4 +253,4 @@ function! provider#clipboard#Call(method, args) abort
|
||||
endfunction
|
||||
|
||||
" eval_has_provider() decides based on this variable.
|
||||
let g:loaded_clipboard_provider = empty(provider#clipboard#Executable()) ? 0 : 2
|
||||
let g:loaded_clipboard_provider = empty(provider#clipboard#Executable()) ? 1 : 2
|
||||
|
@@ -1,7 +1,7 @@
|
||||
if exists('g:loaded_node_provider')
|
||||
finish
|
||||
endif
|
||||
let g:loaded_node_provider = 0
|
||||
let g:loaded_node_provider = 1
|
||||
|
||||
function! s:is_minimum_version(version, min_version) abort
|
||||
if empty(a:version)
|
||||
@@ -152,7 +152,7 @@ endfunction
|
||||
|
||||
let s:err = ''
|
||||
let [s:prog, s:_] = provider#node#Detect()
|
||||
let g:loaded_node_provider = empty(s:prog) ? 0 : 2
|
||||
let g:loaded_node_provider = empty(s:prog) ? 1 : 2
|
||||
|
||||
if g:loaded_node_provider != 2
|
||||
let s:err = 'Cannot find the "neovim" node package. Try :checkhealth'
|
||||
|
@@ -11,5 +11,5 @@ function! provider#perl#Require(host) abort
|
||||
endfunction
|
||||
|
||||
let s:prog = v:lua.vim.provider.perl.detect()
|
||||
let g:loaded_perl_provider = empty(s:prog) ? 0 : 2
|
||||
let g:loaded_perl_provider = empty(s:prog) ? 1 : 2
|
||||
call v:lua.require'vim.provider.perl'.start()
|
||||
|
@@ -11,5 +11,5 @@ function! provider#python3#Require(host) abort
|
||||
endfunction
|
||||
|
||||
let s:prog = v:lua.vim.provider.python.detect_by_module('neovim')
|
||||
let g:loaded_python3_provider = empty(s:prog) ? 0 : 2
|
||||
let g:loaded_python3_provider = empty(s:prog) ? 1 : 2
|
||||
call v:lua.require'vim.provider.python'.start()
|
||||
|
@@ -11,6 +11,6 @@ function! provider#ruby#Call(method, args) abort
|
||||
endfunction
|
||||
|
||||
let s:prog = v:lua.vim.provider.ruby.detect()
|
||||
let g:loaded_ruby_provider = empty(s:prog) ? 0 : 2
|
||||
let g:loaded_ruby_provider = empty(s:prog) ? 1 : 2
|
||||
let s:plugin_path = expand('<sfile>:p:h') . '/script_host.rb'
|
||||
call v:lua.require'vim.provider.ruby'.start(s:plugin_path)
|
||||
|
@@ -230,7 +230,7 @@ function s:shada_check_type(type, val) abort
|
||||
return 0
|
||||
elseif a:type is# 'bin'
|
||||
" Binary string without zero bytes
|
||||
if type isnot# 'string'
|
||||
if type isnot# 'binary'
|
||||
return 'Expected binary string'
|
||||
elseif (type(a:val) == type({})
|
||||
\&& !empty(filter(copy(a:val._VAL), 'stridx(v:val, "\n") != -1')))
|
||||
@@ -247,7 +247,7 @@ function s:shada_check_type(type, val) abort
|
||||
if type isnot# 'array'
|
||||
return 'Expected array value'
|
||||
elseif !empty(filter(copy(type(a:val) == type({}) ? a:val._VAL : a:val),
|
||||
\'msgpack#type(v:val) isnot# "string"'))
|
||||
\'msgpack#type(v:val) isnot# "binary"'))
|
||||
return 'Expected array of binary strings'
|
||||
else
|
||||
for element in (type(a:val) == type({}) ? a:val._VAL : a:val)
|
||||
|
@@ -1,354 +0,0 @@
|
||||
" Default pre- and post-compiler actions and commands for SpotBugs
|
||||
" Maintainers: @konfekt and @zzzyxwvut
|
||||
" Last Change: 2024 Dec 08
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Look for the setting of "g:spotbugs#state" in "ftplugin/java.vim".
|
||||
let s:state = get(g:, 'spotbugs#state', {})
|
||||
let s:commands = get(s:state, 'commands', {})
|
||||
let s:compiler = get(s:state, 'compiler', '')
|
||||
let s:readable = filereadable($VIMRUNTIME . '/compiler/' . s:compiler . '.vim')
|
||||
|
||||
if has_key(s:commands, 'DefaultPreCompilerCommand')
|
||||
let g:SpotBugsPreCompilerCommand = s:commands.DefaultPreCompilerCommand
|
||||
else
|
||||
|
||||
function! s:DefaultPreCompilerCommand(arguments) abort
|
||||
execute 'make ' . a:arguments
|
||||
cc
|
||||
endfunction
|
||||
|
||||
let g:SpotBugsPreCompilerCommand = function('s:DefaultPreCompilerCommand')
|
||||
endif
|
||||
|
||||
if has_key(s:commands, 'DefaultPreCompilerTestCommand')
|
||||
let g:SpotBugsPreCompilerTestCommand = s:commands.DefaultPreCompilerTestCommand
|
||||
else
|
||||
|
||||
function! s:DefaultPreCompilerTestCommand(arguments) abort
|
||||
execute 'make ' . a:arguments
|
||||
cc
|
||||
endfunction
|
||||
|
||||
let g:SpotBugsPreCompilerTestCommand = function('s:DefaultPreCompilerTestCommand')
|
||||
endif
|
||||
|
||||
if has_key(s:commands, 'DefaultPostCompilerCommand')
|
||||
let g:SpotBugsPostCompilerCommand = s:commands.DefaultPostCompilerCommand
|
||||
else
|
||||
|
||||
function! s:DefaultPostCompilerCommand(arguments) abort
|
||||
execute 'make ' . a:arguments
|
||||
endfunction
|
||||
|
||||
let g:SpotBugsPostCompilerCommand = function('s:DefaultPostCompilerCommand')
|
||||
endif
|
||||
|
||||
if v:version > 900 || has('nvim')
|
||||
|
||||
function! spotbugs#DeleteClassFiles() abort
|
||||
if !exists('b:spotbugs_class_files')
|
||||
return
|
||||
endif
|
||||
|
||||
for pathname in b:spotbugs_class_files
|
||||
let classname = pathname =~# "^'.\\+\\.class'$"
|
||||
\ ? eval(pathname)
|
||||
\ : pathname
|
||||
|
||||
if classname =~# '\.class$' && filereadable(classname)
|
||||
" Since v9.0.0795.
|
||||
let octad = readblob(classname, 0, 8)
|
||||
|
||||
" Test the magic number and the major version number (45 for v1.0).
|
||||
" Since v9.0.2027.
|
||||
if len(octad) == 8 && octad[0 : 3] == 0zcafe.babe &&
|
||||
" Nvim: no << operator
|
||||
"\ or((octad[6] << 8), octad[7]) >= 45
|
||||
\ or((octad[6] * 256), octad[7]) >= 45
|
||||
echomsg printf('Deleting %s: %d', classname, delete(classname))
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
let b:spotbugs_class_files = []
|
||||
endfunction
|
||||
|
||||
else
|
||||
|
||||
function! s:DeleteClassFilesWithNewLineCodes(classname) abort
|
||||
" The distribution of "0a"s in class file versions 2560 and 2570:
|
||||
"
|
||||
" 0zca.fe.ba.be.00.00.0a.00 0zca.fe.ba.be.00.00.0a.0a
|
||||
" 0zca.fe.ba.be.00.0a.0a.00 0zca.fe.ba.be.00.0a.0a.0a
|
||||
" 0zca.fe.ba.be.0a.00.0a.00 0zca.fe.ba.be.0a.00.0a.0a
|
||||
" 0zca.fe.ba.be.0a.0a.0a.00 0zca.fe.ba.be.0a.0a.0a.0a
|
||||
let numbers = [0, 0, 0, 0, 0, 0, 0, 0]
|
||||
let offset = 0
|
||||
let lines = readfile(a:classname, 'b', 4)
|
||||
|
||||
" Track NL byte counts to handle files of less than 8 bytes.
|
||||
let nl_cnt = len(lines)
|
||||
" Track non-NL byte counts for "0zca.fe.ba.be.0a.0a.0a.0a".
|
||||
let non_nl_cnt = 0
|
||||
|
||||
for line in lines
|
||||
for idx in range(strlen(line))
|
||||
" Remap NLs to Nuls.
|
||||
let numbers[offset] = (line[idx] == "\n") ? 0 : char2nr(line[idx]) % 256
|
||||
let non_nl_cnt += 1
|
||||
let offset += 1
|
||||
|
||||
if offset > 7
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
|
||||
let nl_cnt -= 1
|
||||
|
||||
if offset > 7 || (nl_cnt < 1 && non_nl_cnt > 4)
|
||||
break
|
||||
endif
|
||||
|
||||
" Reclaim NLs.
|
||||
let numbers[offset] = 10
|
||||
let offset += 1
|
||||
|
||||
if offset > 7
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Test the magic number and the major version number (45 for v1.0).
|
||||
if offset > 7 && numbers[0] == 0xca && numbers[1] == 0xfe &&
|
||||
\ numbers[2] == 0xba && numbers[3] == 0xbe &&
|
||||
\ (numbers[6] * 256 + numbers[7]) >= 45
|
||||
echomsg printf('Deleting %s: %d', a:classname, delete(a:classname))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DeleteClassFiles() abort
|
||||
if !exists('b:spotbugs_class_files')
|
||||
return
|
||||
endif
|
||||
|
||||
let encoding = &encoding
|
||||
|
||||
try
|
||||
set encoding=latin1
|
||||
|
||||
for pathname in b:spotbugs_class_files
|
||||
let classname = pathname =~# "^'.\\+\\.class'$"
|
||||
\ ? eval(pathname)
|
||||
\ : pathname
|
||||
|
||||
if classname =~# '\.class$' && filereadable(classname)
|
||||
let line = get(readfile(classname, 'b', 1), 0, '')
|
||||
let length = strlen(line)
|
||||
|
||||
" Test the magic number and the major version number (45 for v1.0).
|
||||
if length > 3 && line[0 : 3] == "\xca\xfe\xba\xbe"
|
||||
if length > 7 && ((line[6] == "\n" ? 0 : char2nr(line[6]) % 256) * 256 +
|
||||
\ (line[7] == "\n" ? 0 : char2nr(line[7]) % 256)) >= 45
|
||||
echomsg printf('Deleting %s: %d', classname, delete(classname))
|
||||
else
|
||||
call s:DeleteClassFilesWithNewLineCodes(classname)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
finally
|
||||
let &encoding = encoding
|
||||
endtry
|
||||
|
||||
let b:spotbugs_class_files = []
|
||||
endfunction
|
||||
|
||||
endif
|
||||
|
||||
function! spotbugs#DefaultPostCompilerAction() abort
|
||||
" Since v7.4.191.
|
||||
call call(g:SpotBugsPostCompilerCommand, ['%:S'])
|
||||
endfunction
|
||||
|
||||
if s:readable && s:compiler ==# 'maven' && executable('mvn')
|
||||
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler maven
|
||||
call call(g:SpotBugsPreCompilerCommand, ['compile'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultPreCompilerTestAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler maven
|
||||
call call(g:SpotBugsPreCompilerTestCommand, ['test-compile'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultProperties() abort
|
||||
return {
|
||||
\ 'PreCompilerAction':
|
||||
\ function('spotbugs#DefaultPreCompilerAction'),
|
||||
\ 'PreCompilerTestAction':
|
||||
\ function('spotbugs#DefaultPreCompilerTestAction'),
|
||||
\ 'PostCompilerAction':
|
||||
\ function('spotbugs#DefaultPostCompilerAction'),
|
||||
\ 'sourceDirPath': ['src/main/java'],
|
||||
\ 'classDirPath': ['target/classes'],
|
||||
\ 'testSourceDirPath': ['src/test/java'],
|
||||
\ 'testClassDirPath': ['target/test-classes'],
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
unlet s:readable s:compiler
|
||||
elseif s:readable && s:compiler ==# 'ant' && executable('ant')
|
||||
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler ant
|
||||
call call(g:SpotBugsPreCompilerCommand, ['compile'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultPreCompilerTestAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler ant
|
||||
call call(g:SpotBugsPreCompilerTestCommand, ['compile-test'])
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultProperties() abort
|
||||
return {
|
||||
\ 'PreCompilerAction':
|
||||
\ function('spotbugs#DefaultPreCompilerAction'),
|
||||
\ 'PreCompilerTestAction':
|
||||
\ function('spotbugs#DefaultPreCompilerTestAction'),
|
||||
\ 'PostCompilerAction':
|
||||
\ function('spotbugs#DefaultPostCompilerAction'),
|
||||
\ 'sourceDirPath': ['src'],
|
||||
\ 'classDirPath': ['build/classes'],
|
||||
\ 'testSourceDirPath': ['test'],
|
||||
\ 'testClassDirPath': ['build/test/classes'],
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
unlet s:readable s:compiler
|
||||
elseif s:readable && s:compiler ==# 'javac' && executable('javac')
|
||||
let s:filename = tempname()
|
||||
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
call spotbugs#DeleteClassFiles()
|
||||
compiler javac
|
||||
|
||||
if get(b:, 'javac_makeprg_params', get(g:, 'javac_makeprg_params', '')) =~ '\s@\S'
|
||||
" Only read options and filenames from @options [@sources ...] and do
|
||||
" not update these files when filelists change.
|
||||
call call(g:SpotBugsPreCompilerCommand, [''])
|
||||
else
|
||||
" Collect filenames so that Javac can figure out what to compile.
|
||||
let filelist = []
|
||||
|
||||
for arg_num in range(argc(-1))
|
||||
let arg_name = argv(arg_num)
|
||||
|
||||
if arg_name =~# '\.java\=$'
|
||||
call add(filelist, fnamemodify(arg_name, ':p:S'))
|
||||
endif
|
||||
endfor
|
||||
|
||||
for buf_num in range(1, bufnr('$'))
|
||||
if !buflisted(buf_num)
|
||||
continue
|
||||
endif
|
||||
|
||||
let buf_name = bufname(buf_num)
|
||||
|
||||
if buf_name =~# '\.java\=$'
|
||||
let buf_name = fnamemodify(buf_name, ':p:S')
|
||||
|
||||
if index(filelist, buf_name) < 0
|
||||
call add(filelist, buf_name)
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
noautocmd call writefile(filelist, s:filename)
|
||||
call call(g:SpotBugsPreCompilerCommand, [shellescape('@' . s:filename)])
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultPreCompilerTestAction() abort
|
||||
call spotbugs#DefaultPreCompilerAction()
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultProperties() abort
|
||||
return {
|
||||
\ 'PreCompilerAction':
|
||||
\ function('spotbugs#DefaultPreCompilerAction'),
|
||||
\ 'PostCompilerAction':
|
||||
\ function('spotbugs#DefaultPostCompilerAction'),
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
unlet s:readable s:compiler g:SpotBugsPreCompilerTestCommand
|
||||
delfunction! s:DefaultPreCompilerTestCommand
|
||||
else
|
||||
|
||||
function! spotbugs#DefaultPreCompilerAction() abort
|
||||
echomsg printf('Not supported: "%s"', s:compiler)
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultPreCompilerTestAction() abort
|
||||
call spotbugs#DefaultPreCompilerAction()
|
||||
endfunction
|
||||
|
||||
function! spotbugs#DefaultProperties() abort
|
||||
return {}
|
||||
endfunction
|
||||
|
||||
" XXX: Keep "s:compiler" around for "spotbugs#DefaultPreCompilerAction()",
|
||||
" "s:DefaultPostCompilerCommand" -- "spotbugs#DefaultPostCompilerAction()".
|
||||
unlet s:readable g:SpotBugsPreCompilerCommand g:SpotBugsPreCompilerTestCommand
|
||||
delfunction! s:DefaultPreCompilerCommand
|
||||
delfunction! s:DefaultPreCompilerTestCommand
|
||||
endif
|
||||
|
||||
function! s:DefineBufferAutocmd(event, ...) abort
|
||||
if !exists('#java_spotbugs#User')
|
||||
return 1
|
||||
endif
|
||||
|
||||
for l:event in insert(copy(a:000), a:event)
|
||||
if l:event != 'User'
|
||||
execute printf('silent! autocmd! java_spotbugs %s <buffer>', l:event)
|
||||
execute printf('autocmd java_spotbugs %s <buffer> doautocmd User', l:event)
|
||||
endif
|
||||
endfor
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:RemoveBufferAutocmd(event, ...) abort
|
||||
if !exists('#java_spotbugs')
|
||||
return 1
|
||||
endif
|
||||
|
||||
for l:event in insert(copy(a:000), a:event)
|
||||
if l:event != 'User'
|
||||
execute printf('silent! autocmd! java_spotbugs %s <buffer>', l:event)
|
||||
endif
|
||||
endfor
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Documented in ":help compiler-spotbugs".
|
||||
command! -bar -nargs=+ -complete=event SpotBugsDefineBufferAutocmd
|
||||
\ call s:DefineBufferAutocmd(<f-args>)
|
||||
command! -bar -nargs=+ -complete=event SpotBugsRemoveBufferAutocmd
|
||||
\ call s:RemoveBufferAutocmd(<f-args>)
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:commands s:state s:save_cpo
|
||||
|
||||
" vim: set foldmethod=syntax shiftwidth=2 expandtab:
|
@@ -1,17 +1,10 @@
|
||||
" tar.vim: Handles browsing tarfiles - AUTOLOAD PORTION
|
||||
" Date: Mar 01, 2025
|
||||
" tar.vim: Handles browsing tarfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Nov 14, 2023
|
||||
" Version: 32b (with modifications from the Vim Project)
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Former Maintainer: Charles E Campbell
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Last Change:
|
||||
" 2024 Jan 08 by Vim Project: fix a few problems (#138331, #12637, #8109)
|
||||
" 2024 Feb 19 by Vim Project: announce adoption
|
||||
" 2024 Nov 11 by Vim Project: support permissions (#7379)
|
||||
" 2025 Feb 06 by Vim Project: add support for lz4 (#16591)
|
||||
" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755)
|
||||
" 2025 Mar 01 by Vim Project: fix syntax error in tar#Read()
|
||||
" 2025 Mar 02 by Vim Project: escape the filename before using :read
|
||||
"
|
||||
" Contains many ideas from Michael Toren's <tar.vim>
|
||||
"
|
||||
@@ -24,12 +17,13 @@
|
||||
" By using this plugin, you agree that in no event will the
|
||||
" copyright holder be liable for any damages resulting from
|
||||
" the use of this software.
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_tar")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v32b"
|
||||
let g:loaded_tar= "v32a"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of tar needs vim 7.2"
|
||||
@@ -38,6 +32,8 @@ if v:version < 702
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
"call Decho("loading autoload/tar.vim")
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Default Settings: {{{1
|
||||
@@ -45,7 +41,7 @@ if !exists("g:tar_browseoptions")
|
||||
let g:tar_browseoptions= "Ptf"
|
||||
endif
|
||||
if !exists("g:tar_readoptions")
|
||||
let g:tar_readoptions= "pPxf"
|
||||
let g:tar_readoptions= "OPxf"
|
||||
endif
|
||||
if !exists("g:tar_cmd")
|
||||
let g:tar_cmd= "tar"
|
||||
@@ -84,7 +80,7 @@ if !exists("g:tar_copycmd")
|
||||
let g:tar_copycmd= g:netrw_localcopycmd
|
||||
endif
|
||||
if !exists("g:tar_extractcmd")
|
||||
let g:tar_extractcmd= "tar -pxf"
|
||||
let g:tar_extractcmd= "tar -xf"
|
||||
endif
|
||||
|
||||
" set up shell quoting character
|
||||
@@ -100,6 +96,7 @@ if !exists("g:tar_shq")
|
||||
else
|
||||
let g:tar_shq= "'"
|
||||
endif
|
||||
" call Decho("g:tar_shq<".g:tar_shq.">")
|
||||
endif
|
||||
|
||||
" ----------------
|
||||
@@ -109,23 +106,29 @@ endif
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Browse: {{{2
|
||||
fun! tar#Browse(tarfile)
|
||||
" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
|
||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse")
|
||||
return
|
||||
endif
|
||||
if !filereadable(a:tarfile)
|
||||
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
|
||||
if a:tarfile !~# '^\a\+://'
|
||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">")
|
||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||
endif
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
|
||||
return
|
||||
endif
|
||||
if &ma != 1
|
||||
@@ -141,6 +144,7 @@ fun! tar#Browse(tarfile)
|
||||
set ft=tar
|
||||
|
||||
" give header
|
||||
" call Decho("printing header")
|
||||
let lastline= line("$")
|
||||
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
|
||||
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
|
||||
@@ -157,10 +161,10 @@ fun! tar#Browse(tarfile)
|
||||
let curlast= line("$")
|
||||
|
||||
if tarfile =~# '\.\(gz\)$'
|
||||
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
|
||||
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' ||
|
||||
\ tarfile =~# '\.\(tzst\)$' || tarfile =~# '\.\(tlz4\)$'
|
||||
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzst\)$'
|
||||
if has("unix") && executable("file")
|
||||
let filekind= system("file ".shellescape(tarfile,1))
|
||||
else
|
||||
@@ -169,42 +173,40 @@ fun! tar#Browse(tarfile)
|
||||
|
||||
if filekind =~ "bzip2"
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "bzip3"
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "XZ"
|
||||
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "Zstandard"
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif filekind =~ "LZ4"
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
else
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
endif
|
||||
|
||||
elseif tarfile =~# '\.lrp'
|
||||
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
|
||||
" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(bz3\|tb3\)$'
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(lzma\|tlz\)$'
|
||||
" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(zst\|tzst\)$'
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(lz4\|tlz4\)$'
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
|
||||
exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
|
||||
endif
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
"
|
||||
@@ -235,24 +237,29 @@ fun! tar#Browse(tarfile)
|
||||
endif
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" TarBrowseSelect: {{{2
|
||||
fun! s:TarBrowseSelect()
|
||||
" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
let &report= repkeep
|
||||
" call Dret("TarBrowseSelect")
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -276,63 +283,27 @@ fun! s:TarBrowseSelect()
|
||||
exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(<q-args>,"'.fnameescape(fname).'")'
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Read: {{{2
|
||||
fun! tar#Read(fname,mode)
|
||||
" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
" be careful not to execute special crafted files
|
||||
let escape_file = fname->fnameescape()
|
||||
|
||||
" changing the directory to the temporary earlier to allow tar to extract the file with permissions intact
|
||||
if !exists("*mkdir")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||
let &report= repkeep
|
||||
return
|
||||
endif
|
||||
|
||||
let curdir= getcwd()
|
||||
let tmpdir= tempname()
|
||||
let b:curdir= tmpdir
|
||||
let b:tmpdir= curdir
|
||||
if tmpdir =~ '\.'
|
||||
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
|
||||
endif
|
||||
call mkdir(tmpdir,"p")
|
||||
|
||||
" attempt to change to the indicated directory
|
||||
try
|
||||
exe "cd ".fnameescape(tmpdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E344/
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
||||
let &report= repkeep
|
||||
return
|
||||
endtry
|
||||
|
||||
" place temporary files under .../_ZIPVIM_/
|
||||
if isdirectory("_ZIPVIM_")
|
||||
call s:Rmdir("_ZIPVIM_")
|
||||
endif
|
||||
call mkdir("_ZIPVIM_")
|
||||
cd _ZIPVIM_
|
||||
|
||||
if has("win32unix") && executable("cygpath")
|
||||
" assuming cygwin
|
||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile.">")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
if fname =~ '\.bz2$' && executable("bzcat")
|
||||
let decmp= "|bzcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.bz3$' && executable("bz3cat")
|
||||
let decmp= "|bz3cat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.t\=gz$' && executable("zcat")
|
||||
let decmp= "|zcat"
|
||||
let doro = 1
|
||||
@@ -345,13 +316,10 @@ fun! tar#Read(fname,mode)
|
||||
elseif fname =~ '\.zst$' && executable("zstdcat")
|
||||
let decmp= "|zstdcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.lz4$' && executable("lz4cat")
|
||||
let decmp= "|lz4cat"
|
||||
let doro = 1
|
||||
else
|
||||
let decmp=""
|
||||
let doro = 0
|
||||
if fname =~ '\.bz2$\|\.bz3$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
|
||||
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
|
||||
setlocal bin
|
||||
endif
|
||||
endif
|
||||
@@ -364,13 +332,9 @@ fun! tar#Read(fname,mode)
|
||||
|
||||
if tarfile =~# '\.bz2$'
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.bz3$'
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(gz\)$'
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
|
||||
elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)'
|
||||
if has("unix") && executable("file")
|
||||
let filekind= system("file ".shellescape(tarfile,1))
|
||||
@@ -379,49 +343,27 @@ fun! tar#Read(fname,mode)
|
||||
endif
|
||||
if filekind =~ "bzip2"
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~ "bzip3"
|
||||
exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~ "XZ"
|
||||
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif filekind =~ "Zstandard"
|
||||
exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
else
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
endif
|
||||
|
||||
elseif tarfile =~# '\.lrp$'
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.lzma$'
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
elseif tarfile =~# '\.\(lz4\|tlz4\)$'
|
||||
exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "read ".escape_file
|
||||
endif
|
||||
|
||||
redraw!
|
||||
|
||||
if v:shell_error != 0
|
||||
cd ..
|
||||
call s:Rmdir("_ZIPVIM_")
|
||||
exe "cd ".fnameescape(curdir)
|
||||
echohl Error | echo "***error*** (tar#Read) sorry, unable to open or extract ".tarfile." with ".fname | echohl None
|
||||
endif
|
||||
|
||||
if doro
|
||||
@@ -437,29 +379,69 @@ if v:shell_error != 0
|
||||
set nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Read : b:tarfile<".b:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Write: {{{2
|
||||
fun! tar#Write(fname)
|
||||
" call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
" temporary buffer variable workaround because too fucking tired. but it works now
|
||||
let curdir= b:curdir
|
||||
let tmpdir= b:tmpdir
|
||||
|
||||
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
|
||||
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
endif
|
||||
if !exists("*mkdir")
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) sorry, mkdir() doesn't work on your system")
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
endif
|
||||
|
||||
let curdir= getcwd()
|
||||
let tmpdir= tempname()
|
||||
" call Decho("orig tempname<".tmpdir.">")
|
||||
if tmpdir =~ '\.'
|
||||
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
|
||||
endif
|
||||
" call Decho("tmpdir<".tmpdir.">")
|
||||
call mkdir(tmpdir,"p")
|
||||
|
||||
" attempt to change to the indicated directory
|
||||
try
|
||||
exe "cd ".fnameescape(tmpdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E344/
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) cannot cd to temporary directory")
|
||||
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
endtry
|
||||
" call Decho("current directory now: ".getcwd())
|
||||
|
||||
" place temporary files under .../_ZIPVIM_/
|
||||
if isdirectory("_ZIPVIM_")
|
||||
call s:Rmdir("_ZIPVIM_")
|
||||
endif
|
||||
call mkdir("_ZIPVIM_")
|
||||
cd _ZIPVIM_
|
||||
" call Decho("current directory now: ".getcwd())
|
||||
|
||||
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
@@ -469,42 +451,43 @@ fun! tar#Write(fname)
|
||||
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.bz2','','e')
|
||||
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
||||
elseif tarfile =~# '\.bz3'
|
||||
call system("bzip3 -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.bz3','','e')
|
||||
let compress= "bzip3 -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.gz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.gz','','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.tgz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
let tgz = 1
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.xz'
|
||||
call system("xz -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.xz','','e')
|
||||
let compress= "xz -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.zst'
|
||||
call system("zstd --decompress --rm -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.zst','','e')
|
||||
let compress= "zstd --rm -- ".shellescape(tarfile,0)
|
||||
elseif tarfile =~# '\.lz4'
|
||||
call system("lz4 --decompress --rm -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.lz4','','e')
|
||||
let compress= "lz4 --rm -- ".shellescape(tarfile,0)
|
||||
elseif tarfile =~# '\.lzma'
|
||||
call system("lzma -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.lzma','','e')
|
||||
let compress= "lzma -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile.">")
|
||||
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname)
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
||||
else
|
||||
|
||||
" call Decho("tarfile<".tarfile."> fname<".fname.">")
|
||||
|
||||
if fname =~ '/'
|
||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
@@ -519,6 +502,7 @@ fun! tar#Write(fname)
|
||||
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile."> fname<".fname.">")
|
||||
|
||||
if exists("g:tar_secure")
|
||||
let tar_secure= " -- "
|
||||
@@ -531,20 +515,26 @@ fun! tar#Write(fname)
|
||||
endif
|
||||
|
||||
" delete old file from tarfile
|
||||
" call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
||||
call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
else
|
||||
|
||||
" update tarfile with new file
|
||||
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
elseif exists("compress")
|
||||
" call Decho("call system(".compress.")")
|
||||
call system(compress)
|
||||
if exists("tgz")
|
||||
" call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")")
|
||||
call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e'))
|
||||
endif
|
||||
endif
|
||||
@@ -552,6 +542,7 @@ fun! tar#Write(fname)
|
||||
|
||||
" support writing tarfiles across a network
|
||||
if s:tblfile_{winnr()} =~ '^\a\+://'
|
||||
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
||||
let tblfile= s:tblfile_{winnr()}
|
||||
1split|noswapfile enew
|
||||
let binkeep= &l:binary
|
||||
@@ -573,11 +564,13 @@ fun! tar#Write(fname)
|
||||
setlocal nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Diff: {{{2
|
||||
fun! tar#Diff(userfname,fname)
|
||||
" call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")")
|
||||
let fname= a:fname
|
||||
if a:userfname != ""
|
||||
let fname= a:userfname
|
||||
@@ -595,135 +588,133 @@ fun! tar#Diff(userfname,fname)
|
||||
redraw!
|
||||
echo "***warning*** unable to read file<".fname.">"
|
||||
endif
|
||||
" call Dret("tar#Diff")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Extract: extract a file from a (possibly compressed) tar archive {{{2
|
||||
fun! tar#Extract()
|
||||
" call Dfunc("tar#Extract()")
|
||||
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
let &report= repkeep
|
||||
" call Dret("TarBrowseSelect")
|
||||
return
|
||||
endif
|
||||
|
||||
let tarball = expand("%")
|
||||
" call Decho("tarball<".tarball.">")
|
||||
let tarbase = substitute(tarball,'\..*$','','')
|
||||
" call Decho("tarbase<".tarbase.">")
|
||||
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
if filereadable(tarbase.".tar")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tgz")
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd."t ".tarbase.".tgz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.gz")
|
||||
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tbz")
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.bz2")
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.bz3")
|
||||
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.bz3 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz3 ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".txz")
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.xz")
|
||||
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tzst")
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.zst")
|
||||
let extractcmd= substitute(extractcmd,"-","--zstd","")
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname).")")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!" | echohl NONE
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tlz4")
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tlz4 ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tlz4 ".fname.": failed!" | echohl NONE
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
elseif filereadable(tarbase.".tar.lz4")
|
||||
let extractcmd= substitute(extractcmd,"-","-I lz4","")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar.lz4".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.lz4 ".fname.": failed!" | echohl NONE
|
||||
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!")
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
@@ -731,11 +722,14 @@ fun! tar#Extract()
|
||||
|
||||
" restore option
|
||||
let &report= repkeep
|
||||
|
||||
" call Dret("tar#Extract")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Rmdir: {{{2
|
||||
fun! s:Rmdir(fname)
|
||||
" call Dfunc("Rmdir(fname<".a:fname.">)")
|
||||
if has("unix")
|
||||
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
@@ -745,6 +739,7 @@ fun! s:Rmdir(fname)
|
||||
call system("del /S ".shellescape(a:fname,0))
|
||||
endif
|
||||
endif
|
||||
" call Dret("Rmdir")
|
||||
endfun
|
||||
|
||||
" =====================================================================
|
||||
|
@@ -77,11 +77,49 @@ function! tutor#TutorFolds()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Marks: {{{1
|
||||
|
||||
function! tutor#ApplyMarks()
|
||||
hi! link tutorExpect Special
|
||||
if exists('b:tutor_metadata') && has_key(b:tutor_metadata, 'expect')
|
||||
let b:tutor_sign_id = 1
|
||||
for expct in keys(b:tutor_metadata['expect'])
|
||||
let lnum = eval(expct)
|
||||
call matchaddpos('tutorExpect', [lnum])
|
||||
call tutor#CheckLine(lnum)
|
||||
endfor
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! tutor#ApplyMarksOnChanged()
|
||||
if exists('b:tutor_metadata') && has_key(b:tutor_metadata, 'expect')
|
||||
let lnum = line('.')
|
||||
if index(keys(b:tutor_metadata['expect']), string(lnum)) > -1
|
||||
call tutor#CheckLine(lnum)
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! tutor#CheckLine(line)
|
||||
if exists('b:tutor_metadata') && has_key(b:tutor_metadata, 'expect')
|
||||
let bufn = bufnr('%')
|
||||
let ctext = getline(a:line)
|
||||
let signs = sign_getplaced(bufn, {'lnum': a:line})[0].signs
|
||||
if !empty(signs)
|
||||
call sign_unplace('', {'id': signs[0].id})
|
||||
endif
|
||||
if b:tutor_metadata['expect'][string(a:line)] == -1 || ctext ==# b:tutor_metadata['expect'][string(a:line)]
|
||||
exe "sign place ".b:tutor_sign_id." line=".a:line." name=tutorok buffer=".bufn
|
||||
else
|
||||
exe "sign place ".b:tutor_sign_id." line=".a:line." name=tutorbad buffer=".bufn
|
||||
endif
|
||||
let b:tutor_sign_id+=1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Tutor Cmd: {{{1
|
||||
|
||||
function! s:Locale()
|
||||
" Make sure l:lang exists before returning.
|
||||
let l:lang = 'en_US'
|
||||
if exists('v:lang') && v:lang =~ '\a\a'
|
||||
let l:lang = v:lang
|
||||
elseif $LC_ALL =~ '\a\a'
|
||||
@@ -94,6 +132,8 @@ function! s:Locale()
|
||||
endif
|
||||
elseif $LANG =~ '\a\a'
|
||||
let l:lang = $LANG
|
||||
else
|
||||
let l:lang = 'en_US'
|
||||
endif
|
||||
return split(l:lang, '_')
|
||||
endfunction
|
||||
@@ -127,21 +167,15 @@ function! s:Sort(a, b)
|
||||
return retval
|
||||
endfunction
|
||||
|
||||
" returns a list of all tutor files matching the given name
|
||||
function! tutor#GlobTutorials(name, locale)
|
||||
let locale = a:locale
|
||||
" pack/*/start/* are not reported in &rtp
|
||||
let rtp = nvim_list_runtime_paths()
|
||||
\ ->map({_, v -> escape(v:lua.vim.fs.normalize(v), ',')})
|
||||
\ ->join(',')
|
||||
function! s:GlobTutorials(name)
|
||||
" search for tutorials:
|
||||
" 1. non-localized
|
||||
let l:tutors = s:GlobPath(rtp, 'tutor/'.a:name.'.tutor')
|
||||
let l:tutors = s:GlobPath(&rtp, 'tutor/'.a:name.'.tutor')
|
||||
" 2. localized for current locale
|
||||
let l:locale_tutors = s:GlobPath(rtp, 'tutor/'.locale.'/'.a:name.'.tutor')
|
||||
let l:locale_tutors = s:GlobPath(&rtp, 'tutor/'.s:Locale()[0].'/'.a:name.'.tutor')
|
||||
" 3. fallback to 'en'
|
||||
if len(l:locale_tutors) == 0
|
||||
let l:locale_tutors = s:GlobPath(rtp, 'tutor/en/'.a:name.'.tutor')
|
||||
let l:locale_tutors = s:GlobPath(&rtp, 'tutor/en/'.a:name.'.tutor')
|
||||
endif
|
||||
call extend(l:tutors, l:locale_tutors)
|
||||
return uniq(sort(l:tutors, 's:Sort'), 's:Sort')
|
||||
@@ -163,7 +197,7 @@ function! tutor#TutorCmd(tutor_name)
|
||||
let l:tutor_name = fnamemodify(l:tutor_name, ':r')
|
||||
endif
|
||||
|
||||
let l:tutors = tutor#GlobTutorials(l:tutor_name, s:Locale()[0])
|
||||
let l:tutors = s:GlobTutorials(l:tutor_name)
|
||||
|
||||
if len(l:tutors) == 0
|
||||
echom "No tutorial with that name found"
|
||||
@@ -186,37 +220,15 @@ function! tutor#TutorCmd(tutor_name)
|
||||
|
||||
call tutor#SetupVim()
|
||||
exe "edit ".l:to_open
|
||||
call tutor#EnableInteractive(v:true)
|
||||
call tutor#ApplyTransform()
|
||||
endfunction
|
||||
|
||||
function! tutor#TutorCmdComplete(lead,line,pos)
|
||||
let l:tutors = tutor#GlobTutorials('*', s:Locale()[0])
|
||||
let l:tutors = s:GlobTutorials('*')
|
||||
let l:names = uniq(sort(map(l:tutors, 'fnamemodify(v:val, ":t:r")'), 's:Sort'))
|
||||
return join(l:names, "\n")
|
||||
endfunction
|
||||
|
||||
" Enables/disables interactive mode.
|
||||
function! tutor#EnableInteractive(enable)
|
||||
let enable = a:enable
|
||||
if enable
|
||||
setlocal buftype=nofile
|
||||
setlocal concealcursor+=inv
|
||||
setlocal conceallevel=2
|
||||
lua require('nvim.tutor').apply_marks()
|
||||
augroup tutor_interactive
|
||||
autocmd! TextChanged,TextChangedI <buffer> lua require('nvim.tutor').apply_marks_on_changed()
|
||||
augroup END
|
||||
else
|
||||
setlocal buftype<
|
||||
setlocal concealcursor<
|
||||
setlocal conceallevel<
|
||||
if exists('#tutor_interactive')
|
||||
autocmd! tutor_interactive * <buffer>
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! tutor#ApplyTransform()
|
||||
if has('win32')
|
||||
sil! %s/{unix:(\(.\{-}\)),win:(\(.\{-}\))}/\2/g
|
||||
|
@@ -1,79 +0,0 @@
|
||||
" Language: Typst
|
||||
" Previous Maintainer: Gregory Anders
|
||||
" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
|
||||
" Last Change: 2024 Dec 09
|
||||
" Based on: https://github.com/kaarmu/typst.vim
|
||||
|
||||
function! typst#indentexpr() abort
|
||||
let l:lnum = v:lnum
|
||||
let s:sw = shiftwidth()
|
||||
|
||||
let [l:plnum, l:pline] = s:get_prev_nonblank(l:lnum - 1)
|
||||
if l:plnum == 0 | return 0 | endif
|
||||
|
||||
let l:line = getline(l:lnum)
|
||||
let l:ind = indent(l:plnum)
|
||||
|
||||
let l:synname = synIDattr(synID(l:lnum, 1, 1), 'name')
|
||||
|
||||
" Use last indent for block comments
|
||||
if l:synname == 'typstCommentBlock'
|
||||
return l:ind
|
||||
" do not change the indents of bullet lists
|
||||
elseif l:synname == 'typstMarkupBulletList'
|
||||
return indent(a:lnum)
|
||||
endif
|
||||
|
||||
if l:pline =~ '\v[{[(]\s*$'
|
||||
let l:ind += s:sw
|
||||
endif
|
||||
|
||||
if l:line =~ '\v^\s*[}\])]'
|
||||
let l:ind -= s:sw
|
||||
endif
|
||||
|
||||
return l:ind
|
||||
endfunction
|
||||
|
||||
function typst#foldexpr()
|
||||
let line = getline(v:lnum)
|
||||
|
||||
" Whenever the user wants to fold nested headers under the parent
|
||||
let nested = get(g:, "typst_foldnested", 1)
|
||||
|
||||
" Regular headers
|
||||
let depth = match(line, '\(^=\+\)\@<=\( .*$\)\@=')
|
||||
|
||||
" Do not fold nested regular headers
|
||||
if depth > 1 && !nested
|
||||
let depth = 1
|
||||
endif
|
||||
|
||||
if depth > 0
|
||||
" check syntax, it should be typstMarkupHeading
|
||||
let syncode = synstack(v:lnum, 1)
|
||||
if len(syncode) > 0 && synIDattr(syncode[0], 'name') ==# 'typstMarkupHeading'
|
||||
return ">" . depth
|
||||
endif
|
||||
endif
|
||||
|
||||
return "="
|
||||
endfunction
|
||||
|
||||
" Gets the previous non-blank line that is not a comment.
|
||||
function! s:get_prev_nonblank(lnum) abort
|
||||
let l:lnum = prevnonblank(a:lnum)
|
||||
let l:line = getline(l:lnum)
|
||||
|
||||
while l:lnum > 0 && l:line =~ '^\s*//'
|
||||
let l:lnum = prevnonblank(l:lnum - 1)
|
||||
let l:line = getline(l:lnum)
|
||||
endwhile
|
||||
|
||||
return [l:lnum, s:remove_comments(l:line)]
|
||||
endfunction
|
||||
|
||||
" Removes comments from the given line.
|
||||
function! s:remove_comments(line) abort
|
||||
return substitute(a:line, '\s*//.*', '', '')
|
||||
endfunction
|
100
runtime/autoload/zig/fmt.vim
Normal file
100
runtime/autoload/zig/fmt.vim
Normal file
@@ -0,0 +1,100 @@
|
||||
" Adapted from fatih/vim-go: autoload/go/fmt.vim
|
||||
"
|
||||
" Copyright 2011 The Go Authors. All rights reserved.
|
||||
" Use of this source code is governed by a BSD-style
|
||||
" license that can be found in the LICENSE file.
|
||||
"
|
||||
" Upstream: https://github.com/ziglang/zig.vim
|
||||
|
||||
function! zig#fmt#Format() abort
|
||||
" Save cursor position and many other things.
|
||||
let view = winsaveview()
|
||||
|
||||
if !executable('zig')
|
||||
echohl Error | echomsg "no zig binary found in PATH" | echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
let cmdline = 'zig fmt --stdin --ast-check'
|
||||
let current_buf = bufnr('')
|
||||
|
||||
" The formatted code is output on stdout, the errors go on stderr.
|
||||
if exists('*systemlist')
|
||||
silent let out = systemlist(cmdline, current_buf)
|
||||
else
|
||||
silent let out = split(system(cmdline, current_buf))
|
||||
endif
|
||||
if len(out) == 1
|
||||
if out[0] == "error: unrecognized parameter: '--ast-check'"
|
||||
let cmdline = 'zig fmt --stdin'
|
||||
if exists('*systemlist')
|
||||
silent let out = systemlist(cmdline, current_buf)
|
||||
else
|
||||
silent let out = split(system(cmdline, current_buf))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
let err = v:shell_error
|
||||
|
||||
|
||||
if err == 0
|
||||
" remove undo point caused via BufWritePre.
|
||||
try | silent undojoin | catch | endtry
|
||||
|
||||
" Replace the file content with the formatted version.
|
||||
if exists('*deletebufline')
|
||||
call deletebufline(current_buf, len(out), line('$'))
|
||||
else
|
||||
silent execute ':' . len(out) . ',' . line('$') . ' delete _'
|
||||
endif
|
||||
call setline(1, out)
|
||||
|
||||
" No errors detected, close the loclist.
|
||||
call setloclist(0, [], 'r')
|
||||
lclose
|
||||
elseif get(g:, 'zig_fmt_parse_errors', 1)
|
||||
let errors = s:parse_errors(expand('%'), out)
|
||||
|
||||
call setloclist(0, [], 'r', {
|
||||
\ 'title': 'Errors',
|
||||
\ 'items': errors,
|
||||
\ })
|
||||
|
||||
let max_win_height = get(g:, 'zig_fmt_max_window_height', 5)
|
||||
" Prevent the loclist from becoming too long.
|
||||
let win_height = min([max_win_height, len(errors)])
|
||||
" Open the loclist, but only if there's at least one error to show.
|
||||
execute 'silent! lwindow ' . win_height
|
||||
endif
|
||||
|
||||
call winrestview(view)
|
||||
|
||||
if err != 0
|
||||
echohl Error | echomsg "zig fmt returned error" | echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
" Run the syntax highlighter on the updated content and recompute the folds if
|
||||
" needed.
|
||||
syntax sync fromstart
|
||||
endfunction
|
||||
|
||||
" parse_errors parses the given errors and returns a list of parsed errors
|
||||
function! s:parse_errors(filename, lines) abort
|
||||
" list of errors to be put into location list
|
||||
let errors = []
|
||||
for line in a:lines
|
||||
let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)')
|
||||
if !empty(tokens)
|
||||
call add(errors,{
|
||||
\"filename": a:filename,
|
||||
\"lnum": tokens[2],
|
||||
\"col": tokens[3],
|
||||
\"text": tokens[4],
|
||||
\ })
|
||||
endif
|
||||
endfor
|
||||
|
||||
return errors
|
||||
endfunction
|
||||
" vim: sw=2 ts=2 et
|
@@ -1,20 +1,9 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: 2024 Aug 21
|
||||
" Version: 34
|
||||
" Date: Mar 12, 2023
|
||||
" Version: 33
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Former Maintainer: Charles E Campbell
|
||||
" Last Change:
|
||||
" 2024 Jun 16 by Vim Project: handle whitespace on Windows properly (#14998)
|
||||
" 2024 Jul 23 by Vim Project: fix 'x' command
|
||||
" 2024 Jul 24 by Vim Project: use delete() function
|
||||
" 2024 Jul 30 by Vim Project: fix opening remote zipfile
|
||||
" 2024 Aug 04 by Vim Project: escape '[' in name of file to be extracted
|
||||
" 2024 Aug 05 by Vim Project: workaround for the FreeBSD's unzip
|
||||
" 2024 Aug 05 by Vim Project: clean-up and make it work with shellslash on Windows
|
||||
" 2024 Aug 18 by Vim Project: correctly handle special globbing chars
|
||||
" 2024 Aug 21 by Vim Project: simplify condition to detect MS-Windows
|
||||
" 2025 Mar 11 by Vim Project: handle filenames with leading '-' correctly
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
@@ -25,15 +14,23 @@
|
||||
" this plugin, you agree that in no event will the copyright
|
||||
" holder be liable for any damages resulting from the use
|
||||
" of this software.
|
||||
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v34"
|
||||
let g:loaded_zip= "v33"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of zip needs vim 7.2 or later"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
|
||||
let s:zipfile_escape = ' ?&;\'
|
||||
let s:ERROR = 2
|
||||
@@ -61,27 +58,8 @@ if !exists("g:zip_extractcmd")
|
||||
let g:zip_extractcmd= g:zip_unzipcmd
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" required early
|
||||
" s:Mess: {{{2
|
||||
fun! s:Mess(group, msg)
|
||||
redraw!
|
||||
exe "echohl " . a:group
|
||||
echomsg a:msg
|
||||
echohl Normal
|
||||
endfun
|
||||
|
||||
if v:version < 702
|
||||
call s:Mess('WarningMsg', "***warning*** this version of zip needs vim 7.2 or later")
|
||||
finish
|
||||
endif
|
||||
" sanity checks
|
||||
if !executable(g:zip_unzipcmd)
|
||||
call s:Mess('Error', "***error*** (zip#Browse) unzip not available on your system")
|
||||
finish
|
||||
endif
|
||||
if !dist#vim#IsSafeExecutable('zip', g:zip_unzipcmd)
|
||||
call s:Mess('Error', "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!")
|
||||
echoerr "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!"
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -92,28 +70,47 @@ endif
|
||||
" ---------------------------------------------------------------------
|
||||
" zip#Browse: {{{2
|
||||
fun! zip#Browse(zipfile)
|
||||
" sanity check: ensure that the zipfile has "PK" as its first two letters
|
||||
" (zip files have a leading PK as a "magic cookie")
|
||||
if filereadable(a:zipfile) && readblob(a:zipfile, 0, 2) != 0z50.4B
|
||||
exe "noswapfile noautocmd e " .. fnameescape(a:zipfile)
|
||||
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
|
||||
" sanity check: insure that the zipfile has "PK" as its first two letters
|
||||
" (zipped files have a leading PK as a "magic cookie")
|
||||
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
||||
exe "noswapfile noautocmd noswapfile e ".fnameescape(a:zipfile)
|
||||
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
|
||||
return
|
||||
" else " Decho
|
||||
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file")
|
||||
endif
|
||||
|
||||
let dict = s:SetSaneOpts()
|
||||
defer s:RestoreOpts(dict)
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
" sanity checks
|
||||
if !exists("*fnameescape")
|
||||
if &verbose > 1
|
||||
echoerr "the zip plugin is not available (your vim doesn't support fnameescape())"
|
||||
endif
|
||||
return
|
||||
endif
|
||||
if !executable(g:zip_unzipcmd)
|
||||
call s:Mess('Error', "***error*** (zip#Browse) unzip not available on your system")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Browse")
|
||||
return
|
||||
endif
|
||||
if !filereadable(a:zipfile)
|
||||
if a:zipfile !~# '^\a\+://'
|
||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||
call s:Mess('Error', "***error*** (zip#Browse) File not readable <".a:zipfile.">")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
endif
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Browse : file<".a:zipfile."> not readable")
|
||||
return
|
||||
endif
|
||||
" call Decho("passed sanity checks")
|
||||
if &ma != 1
|
||||
set ma
|
||||
endif
|
||||
@@ -138,15 +135,19 @@ fun! zip#Browse(zipfile)
|
||||
\ '" Select a file with cursor and press ENTER'])
|
||||
keepj $
|
||||
|
||||
exe $"keepj sil r! {g:zip_unzipcmd} -Z1 -- {s:Escape(a:zipfile, 1)}"
|
||||
" call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
|
||||
exe "keepj sil! r! ".g:zip_unzipcmd." -Z -1 -- ".s:Escape(a:zipfile,1)
|
||||
if v:shell_error != 0
|
||||
call s:Mess('WarningMsg', "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file")
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
keepj sil! %d
|
||||
let eikeep= &ei
|
||||
set ei=BufReadCmd,FileReadCmd
|
||||
exe "keepj r ".fnameescape(a:zipfile)
|
||||
let &ei= eikeep
|
||||
keepj 1d
|
||||
" call Dret("zip#Browse")
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -158,46 +159,64 @@ fun! zip#Browse(zipfile)
|
||||
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>ZipBrowseSelect()<cr>
|
||||
endif
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Browse")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" ZipBrowseSelect: {{{2
|
||||
fun! s:ZipBrowseSelect()
|
||||
let dict = s:SetSaneOpts()
|
||||
defer s:RestoreOpts(dict)
|
||||
" call Dfunc("ZipBrowseSelect() zipfile<".((exists("b:zipfile"))? b:zipfile : "n/a")."> 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 =~ '^"'
|
||||
let &report= repkeep
|
||||
" call Dret("ZipBrowseSelect")
|
||||
return
|
||||
endif
|
||||
if fname =~ '/$'
|
||||
call s:Mess('Error', "***error*** (zip#Browse) Please specify a file, not a directory")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Browse) Please specify a file, not a directory" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("ZipBrowseSelect")
|
||||
return
|
||||
endif
|
||||
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
" get zipfile to the new-window
|
||||
let zipfile = b:zipfile
|
||||
let curfile = expand("%")
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("curfile<".curfile.">")
|
||||
|
||||
noswapfile new
|
||||
if !exists("g:zip_nomax") || g:zip_nomax == 0
|
||||
wincmd _
|
||||
endif
|
||||
let s:zipfile_{winnr()}= curfile
|
||||
" call Decho("exe e ".fnameescape("zipfile://".zipfile.'::'.fname))
|
||||
exe "noswapfile e ".fnameescape("zipfile://".zipfile.'::'.fname)
|
||||
filetype detect
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("ZipBrowseSelect : s:zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" zip#Read: {{{2
|
||||
fun! zip#Read(fname,mode)
|
||||
let dict = s:SetSaneOpts()
|
||||
defer s:RestoreOpts(dict)
|
||||
" call Dfunc("zip#Read(fname<".a:fname.">,mode=".a:mode.")")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
if has("unix")
|
||||
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
@@ -205,20 +224,28 @@ fun! zip#Read(fname,mode)
|
||||
else
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
let fname = substitute(fname, '[', '[[]', 'g')
|
||||
endif
|
||||
let fname = fname->substitute('[', '[[]', 'g')->escape('?*\\')
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("fname <".fname.">")
|
||||
" sanity check
|
||||
if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','',''))
|
||||
call s:Mess('Error', "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Write")
|
||||
return
|
||||
endif
|
||||
|
||||
" the following code does much the same thing as
|
||||
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
|
||||
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
|
||||
" but allows zipfile://... entries in quickfix lists
|
||||
let temp = tempname()
|
||||
" call Decho("using temp file<".temp.">")
|
||||
let fn = expand('%:p')
|
||||
exe "sil !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1).' > '.temp
|
||||
exe "sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp
|
||||
" call Decho("exe sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp)
|
||||
sil exe 'keepalt file '.temp
|
||||
sil keepj e!
|
||||
sil exe 'keepalt file '.fnameescape(fn)
|
||||
@@ -227,44 +254,62 @@ fun! zip#Read(fname,mode)
|
||||
filetype detect
|
||||
|
||||
" cleanup
|
||||
" keepj 0d " used to be needed for the ...r! ... method
|
||||
set nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Read")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" zip#Write: {{{2
|
||||
fun! zip#Write(fname)
|
||||
let dict = s:SetSaneOpts()
|
||||
defer s:RestoreOpts(dict)
|
||||
" call Dfunc("zip#Write(fname<".a:fname.">) zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
" sanity checks
|
||||
if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Write")
|
||||
return
|
||||
endif
|
||||
if !exists("*mkdir")
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, mkdir() doesn't work on your system")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Write")
|
||||
return
|
||||
endif
|
||||
|
||||
let curdir= getcwd()
|
||||
let tmpdir= tempname()
|
||||
" call Decho("orig tempname<".tmpdir.">")
|
||||
if tmpdir =~ '\.'
|
||||
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
|
||||
endif
|
||||
" call Decho("tmpdir<".tmpdir.">")
|
||||
call mkdir(tmpdir,"p")
|
||||
|
||||
" attempt to change to the indicated directory
|
||||
if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot cd to temporary directory")
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Write")
|
||||
return
|
||||
endif
|
||||
" call Decho("current directory now: ".getcwd())
|
||||
|
||||
" place temporary files under .../_ZIPVIM_/
|
||||
if isdirectory("_ZIPVIM_")
|
||||
call delete("_ZIPVIM_", "rf")
|
||||
call s:Rmdir("_ZIPVIM_")
|
||||
endif
|
||||
call mkdir("_ZIPVIM_")
|
||||
cd _ZIPVIM_
|
||||
" call Decho("current directory now: ".getcwd())
|
||||
|
||||
if has("unix")
|
||||
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
@@ -273,17 +318,21 @@ fun! zip#Write(fname)
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
endif
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("fname <".fname.">")
|
||||
|
||||
if fname =~ '/'
|
||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
|
||||
endif
|
||||
" call Decho("mkdir(dirpath<".dirpath.">,p)")
|
||||
call mkdir(dirpath,"p")
|
||||
endif
|
||||
if zipfile !~ '/'
|
||||
let zipfile= curdir.'/'.zipfile
|
||||
endif
|
||||
" call Decho("zipfile<".zipfile."> fname<".fname.">")
|
||||
|
||||
exe "w! ".fnameescape(fname)
|
||||
if has("win32unix") && executable("cygpath")
|
||||
@@ -294,13 +343,17 @@ fun! zip#Write(fname)
|
||||
let fname = substitute(fname, '[', '[[]', 'g')
|
||||
endif
|
||||
|
||||
" call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
|
||||
call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
|
||||
if v:shell_error != 0
|
||||
call s:Mess('Error', "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname)
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
|
||||
elseif s:zipfile_{winnr()} =~ '^\a\+://'
|
||||
" support writing zipfiles across a network
|
||||
let netzipfile= s:zipfile_{winnr()}
|
||||
" call Decho("handle writing <".zipfile."> across network as <".netzipfile.">")
|
||||
1split|enew
|
||||
let binkeep= &binary
|
||||
let eikeep = &ei
|
||||
@@ -315,65 +368,61 @@ fun! zip#Write(fname)
|
||||
|
||||
" cleanup and restore current directory
|
||||
cd ..
|
||||
call delete("_ZIPVIM_", "rf")
|
||||
call s:Rmdir("_ZIPVIM_")
|
||||
call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
|
||||
call delete(tmpdir, "rf")
|
||||
call s:Rmdir(tmpdir)
|
||||
setlocal nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Write")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" zip#Extract: extract a file from a zip archive {{{2
|
||||
fun! zip#Extract()
|
||||
" call Dfunc("zip#Extract()")
|
||||
|
||||
let dict = s:SetSaneOpts()
|
||||
defer s:RestoreOpts(dict)
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Extract")
|
||||
return
|
||||
endif
|
||||
if fname =~ '/$'
|
||||
call s:Mess('Error', "***error*** (zip#Extract) Please specify a file, not a directory")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Extract) Please specify a file, not a directory" | echohl None
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Extract")
|
||||
return
|
||||
endif
|
||||
if filereadable(fname)
|
||||
call s:Mess('Error', "***error*** (zip#Extract) <" .. fname .."> already exists in directory, not overwriting!")
|
||||
return
|
||||
endif
|
||||
let target = fname->substitute('\[', '[[]', 'g')
|
||||
" unzip 6.0 does not support -- to denote end-of-arguments
|
||||
" unzip 6.1 (2010) apparently supports, it, but hasn't been released
|
||||
" so the workaround is to use glob '[-]' so that it won't be considered an argument
|
||||
" else, it would be possible to use 'unzip -o <file.zip> '-d/tmp' to extract the whole archive
|
||||
let target = target->substitute('^-', '[&]', '')
|
||||
if &shell =~ 'cmd' && has("win32")
|
||||
let target = target
|
||||
\ ->substitute('[?*]', '[&]', 'g')
|
||||
\ ->substitute('[\\]', '?', 'g')
|
||||
\ ->shellescape()
|
||||
" there cannot be a file name with '\' in its name, unzip replaces it by _
|
||||
let fname = fname->substitute('[\\?*]', '_', 'g')
|
||||
else
|
||||
let target = target->escape('*?\\')->shellescape()
|
||||
endif
|
||||
|
||||
" extract the file mentioned under the cursor
|
||||
call system($"{g:zip_extractcmd} -o {shellescape(b:zipfile)} {target}")
|
||||
" call Decho("system(".g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell).")")
|
||||
call system(g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell))
|
||||
" call Decho("zipfile<".b:zipfile.">")
|
||||
if v:shell_error != 0
|
||||
call s:Mess('Error', "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!")
|
||||
echohl Error | echo "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!" | echohl NONE
|
||||
elseif !filereadable(fname)
|
||||
call s:Mess('Error', "***error*** attempted to extract ".fname." but it doesn't appear to be present!")
|
||||
echohl Error | echo "***error*** attempted to extract ".fname." but it doesn't appear to be present!"
|
||||
else
|
||||
echomsg "***note*** successfully extracted ".fname
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
" restore option
|
||||
let &report= repkeep
|
||||
|
||||
" call Dret("zip#Extract")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Escape: {{{2
|
||||
fun! s:Escape(fname,isfilt)
|
||||
" call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")")
|
||||
if exists("*shellescape")
|
||||
if a:isfilt
|
||||
let qnameq= shellescape(a:fname,1)
|
||||
@@ -383,50 +432,45 @@ fun! s:Escape(fname,isfilt)
|
||||
else
|
||||
let qnameq= g:zip_shq.escape(a:fname,g:zip_shq).g:zip_shq
|
||||
endif
|
||||
" call Dret("QuoteFileDir <".qnameq.">")
|
||||
return qnameq
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:ChgDir: {{{2
|
||||
" ChgDir: {{{2
|
||||
fun! s:ChgDir(newdir,errlvl,errmsg)
|
||||
" call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl." errmsg<".a:errmsg.">)")
|
||||
|
||||
try
|
||||
exe "cd ".fnameescape(a:newdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E344/
|
||||
redraw!
|
||||
if a:errlvl == s:NOTE
|
||||
echomsg "***note*** ".a:errmsg
|
||||
echo "***note*** ".a:errmsg
|
||||
elseif a:errlvl == s:WARNING
|
||||
call s:Mess("WarningMsg", "***warning*** ".a:errmsg)
|
||||
echohl WarningMsg | echo "***warning*** ".a:errmsg | echohl NONE
|
||||
elseif a:errlvl == s:ERROR
|
||||
call s:Mess("Error", "***error*** ".a:errmsg)
|
||||
echohl Error | echo "***error*** ".a:errmsg | echohl NONE
|
||||
endif
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
" call Dret("ChgDir 1")
|
||||
return 1
|
||||
endtry
|
||||
|
||||
" call Dret("ChgDir 0")
|
||||
return 0
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:SetSaneOpts: {{{2
|
||||
fun! s:SetSaneOpts()
|
||||
let dict = {}
|
||||
let dict.report = &report
|
||||
let dict.shellslash = &shellslash
|
||||
|
||||
let &report = 10
|
||||
if exists('+shellslash')
|
||||
let &shellslash = 0
|
||||
" s:Rmdir: {{{2
|
||||
fun! s:Rmdir(fname)
|
||||
" call Dfunc("Rmdir(fname<".a:fname.">)")
|
||||
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
|
||||
call system("rmdir /S/Q ".s:Escape(a:fname,0))
|
||||
else
|
||||
call system("/bin/rm -rf ".s:Escape(a:fname,0))
|
||||
endif
|
||||
|
||||
return dict
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:RestoreOpts: {{{2
|
||||
fun! s:RestoreOpts(dict)
|
||||
for [key, val] in items(a:dict)
|
||||
exe $"let &{key} = {val}"
|
||||
endfor
|
||||
" call Dret("Rmdir")
|
||||
endfun
|
||||
|
||||
" ------------------------------------------------------------------------
|
||||
|
@@ -84,6 +84,9 @@ The default color settings can be found in the source file
|
||||
If you think you have a color scheme that is good enough to be used by others,
|
||||
please check the following items:
|
||||
|
||||
- Source the $VIMRUNTIME/colors/tools/check_colors.vim script to check for
|
||||
common mistakes.
|
||||
|
||||
- Does it work in a color terminal as well as in the GUI? Is it consistent?
|
||||
|
||||
- Is "g:colors_name" set to a meaningful value? In case of doubt you can do
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Mon 08 Jan 2024 09:42:49 AM AEDT
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -27,11 +27,9 @@ hi Normal guifg=#ffd700 guibg=#000087 gui=NONE cterm=NONE
|
||||
hi CursorLine guifg=NONE guibg=#005faf gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ffd700 guibg=#008787 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#ff7f50 guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi QuickFixLine guifg=#000000 guibg=#d787d7 gui=NONE cterm=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#870087 gui=NONE cterm=NONE
|
||||
hi Conceal guifg=#008787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
|
||||
hi CursorColumn guifg=NONE guibg=#005faf gui=NONE cterm=NONE
|
||||
hi CursorIM guifg=#000000 guibg=#ffd700 gui=NONE cterm=NONE
|
||||
@@ -82,7 +80,6 @@ hi Type guifg=#ffa500 guibg=NONE gui=bold cterm=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Label guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link Debug Special
|
||||
hi! link Added String
|
||||
hi! link Removed WarningMsg
|
||||
@@ -140,11 +137,9 @@ if s:t_Co >= 256
|
||||
hi CursorLine ctermfg=NONE ctermbg=25 cterm=NONE
|
||||
hi Pmenu ctermfg=231 ctermbg=30 cterm=NONE
|
||||
hi PmenuSel ctermfg=30 ctermbg=231 cterm=NONE
|
||||
hi PmenuMatch ctermfg=220 ctermbg=30 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=209 ctermbg=231 cterm=NONE
|
||||
hi QuickFixLine ctermfg=16 ctermbg=176 cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=90 cterm=NONE
|
||||
hi Conceal ctermfg=30 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
|
||||
hi CursorColumn ctermfg=NONE ctermbg=25 cterm=NONE
|
||||
hi CursorIM ctermfg=16 ctermbg=220 cterm=NONE
|
||||
@@ -195,7 +190,6 @@ if s:t_Co >= 256
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Label ctermfg=220 ctermbg=NONE cterm=NONE
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link Debug Special
|
||||
hi! link Added String
|
||||
hi! link Removed WarningMsg
|
||||
@@ -256,11 +250,9 @@ if s:t_Co >= 16
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=white cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=white cterm=bold
|
||||
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=darkmagenta cterm=NONE
|
||||
hi Conceal ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Cursor ctermfg=black ctermbg=green cterm=NONE
|
||||
hi CursorColumn ctermfg=NONE ctermbg=blue cterm=NONE
|
||||
hi CursorIM ctermfg=black ctermbg=yellow cterm=NONE
|
||||
@@ -311,7 +303,6 @@ if s:t_Co >= 16
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link Debug Special
|
||||
hi! link Added String
|
||||
hi! link Removed WarningMsg
|
||||
@@ -372,8 +363,6 @@ if s:t_Co >= 8
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Pmenu ctermfg=black ctermbg=cyan cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=cyan cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=gray cterm=bold
|
||||
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
|
||||
hi ColorColumn ctermfg=NONE ctermbg=magenta cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
@@ -426,7 +415,6 @@ if s:t_Co >= 8
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link Debug Special
|
||||
hi! link Added String
|
||||
hi! link Removed WarningMsg
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Mon 08 Jan 2024 09:43:03 AM AEDT
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -24,7 +24,6 @@ if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
endfor
|
||||
endif
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link CursorColumn CursorLine
|
||||
hi! link CursorIM Cursor
|
||||
hi! link EndOfBuffer NonText
|
||||
@@ -74,7 +73,7 @@ hi! link CurSearch Search
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupNotification Todo
|
||||
hi Normal guifg=#c0c0c0 guibg=#000040 gui=NONE cterm=NONE
|
||||
hi Conceal guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
|
||||
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ColorColumn guifg=#c0c0c0 guibg=#8b0000 gui=NONE cterm=NONE
|
||||
hi Cursor guifg=#000000 guibg=#ffff60 gui=NONE cterm=NONE
|
||||
hi QuickFixLine guifg=#000000 guibg=#ff80ff gui=NONE cterm=NONE
|
||||
@@ -91,8 +90,6 @@ hi Pmenu guifg=#ffffff guibg=#0030ff gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#0030ff guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ff80ff guibg=#0030ff gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#ff00ff guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi Question guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
|
||||
hi SignColumn guifg=#808080 guibg=NONE gui=NONE cterm=NONE
|
||||
hi SpecialKey guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
|
||||
@@ -135,7 +132,6 @@ hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
|
||||
|
||||
if s:t_Co >= 256
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link CursorColumn CursorLine
|
||||
hi! link CursorIM Cursor
|
||||
hi! link EndOfBuffer NonText
|
||||
@@ -185,7 +181,7 @@ if s:t_Co >= 256
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupNotification Todo
|
||||
hi Normal ctermfg=252 ctermbg=17 cterm=NONE
|
||||
hi Conceal ctermfg=30 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ColorColumn ctermfg=252 ctermbg=88 cterm=NONE
|
||||
hi Cursor ctermfg=16 ctermbg=227 cterm=NONE
|
||||
hi QuickFixLine ctermfg=16 ctermbg=213 cterm=NONE
|
||||
@@ -202,8 +198,6 @@ if s:t_Co >= 256
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=27 ctermbg=231 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
|
||||
hi PmenuMatch ctermfg=213 ctermbg=27 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=201 ctermbg=231 cterm=NONE
|
||||
hi Question ctermfg=118 ctermbg=NONE cterm=NONE
|
||||
hi SignColumn ctermfg=102 ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=30 ctermbg=NONE cterm=NONE
|
||||
@@ -249,7 +243,7 @@ endif
|
||||
|
||||
if s:t_Co >= 16
|
||||
hi Normal ctermfg=grey ctermbg=black cterm=NONE
|
||||
hi Conceal ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
hi Cursor ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
|
||||
@@ -266,8 +260,6 @@ if s:t_Co >= 16
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=blue ctermbg=white cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
|
||||
hi PmenuMatch ctermfg=magenta ctermbg=blue cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=darkmagenta ctermbg=white cterm=NONE
|
||||
hi Question ctermfg=green ctermbg=NONE cterm=NONE
|
||||
hi SignColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
@@ -331,8 +323,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=blue ctermbg=grey cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuMatch ctermfg=grey ctermbg=blue cterm=bold
|
||||
hi PmenuMatchSel ctermfg=blue ctermbg=grey cterm=bold
|
||||
hi Question ctermfg=darkgreen ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=darkcyan ctermbg=blue cterm=NONE
|
||||
hi SignColumn ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:34
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -24,7 +24,6 @@ if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
endfor
|
||||
endif
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link LineNrAbove LineNr
|
||||
hi! link LineNrBelow LineNr
|
||||
hi! link CurSearch Search
|
||||
@@ -44,8 +43,6 @@ hi Pmenu guifg=#000000 guibg=#add8e6 gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#cd00cd guibg=#add8e6 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#ff87ff guibg=#00008b gui=NONE cterm=NONE
|
||||
hi TabLine guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi TabLineFill guifg=NONE guibg=#bcbcbc gui=NONE cterm=NONE
|
||||
hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=bold
|
||||
@@ -53,7 +50,6 @@ hi ToolbarLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi ToolbarButton guifg=#ffffff guibg=#bcbcbc gui=bold cterm=bold
|
||||
hi NonText guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
|
||||
hi SpecialKey guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
|
||||
hi Conceal guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
|
||||
hi Folded guifg=#00008b guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi Visual guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
|
||||
hi VisualNOS guifg=NONE guibg=#ee0000 gui=NONE cterm=NONE
|
||||
@@ -91,6 +87,7 @@ hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
|
||||
hi Type guifg=#0000ff guibg=NONE gui=bold cterm=bold
|
||||
hi Special guifg=#ff1493 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=bold
|
||||
hi Conceal guifg=#ee0000 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Title guifg=#cd00cd guibg=NONE gui=bold cterm=bold
|
||||
hi CursorLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
@@ -101,7 +98,6 @@ hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
|
||||
|
||||
if s:t_Co >= 256
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link LineNrAbove LineNr
|
||||
hi! link LineNrBelow LineNr
|
||||
hi! link CurSearch Search
|
||||
@@ -121,8 +117,6 @@ if s:t_Co >= 256
|
||||
hi PmenuSel ctermfg=231 ctermbg=18 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=231 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=30 cterm=NONE
|
||||
hi PmenuMatch ctermfg=164 ctermbg=152 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=213 ctermbg=18 cterm=NONE
|
||||
hi TabLine ctermfg=16 ctermbg=254 cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=250 cterm=NONE
|
||||
hi TabLineSel ctermfg=16 ctermbg=231 cterm=bold
|
||||
@@ -130,7 +124,6 @@ if s:t_Co >= 256
|
||||
hi ToolbarButton ctermfg=231 ctermbg=250 cterm=bold
|
||||
hi NonText ctermfg=250 ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=250 ctermbg=NONE cterm=NONE
|
||||
hi Folded ctermfg=18 ctermbg=254 cterm=NONE
|
||||
hi Visual ctermfg=16 ctermbg=252 cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=196 cterm=NONE
|
||||
@@ -168,6 +161,7 @@ if s:t_Co >= 256
|
||||
hi Type ctermfg=21 ctermbg=NONE cterm=bold
|
||||
hi Special ctermfg=198 ctermbg=NONE cterm=NONE
|
||||
hi Directory ctermfg=30 ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=196 ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Title ctermfg=164 ctermbg=NONE cterm=bold
|
||||
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
|
||||
@@ -191,8 +185,6 @@ if s:t_Co >= 16
|
||||
hi PmenuSel ctermfg=white ctermbg=darkblue cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuMatch ctermfg=darkmagenta ctermbg=grey cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=magenta ctermbg=darkblue cterm=NONE
|
||||
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
|
||||
hi TabLineSel ctermfg=black ctermbg=white cterm=bold
|
||||
@@ -200,7 +192,6 @@ if s:t_Co >= 16
|
||||
hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=bold
|
||||
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Folded ctermfg=darkblue ctermbg=grey cterm=NONE
|
||||
hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
|
||||
hi VisualNOS ctermfg=NONE ctermbg=darkred cterm=NONE
|
||||
@@ -238,6 +229,7 @@ if s:t_Co >= 16
|
||||
hi Type ctermfg=blue ctermbg=NONE cterm=bold
|
||||
hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
|
||||
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
@@ -262,8 +254,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
|
||||
hi TabLine ctermfg=gray ctermbg=black cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi TabLineSel ctermfg=black ctermbg=gray cterm=NONE
|
||||
@@ -271,7 +261,6 @@ if s:t_Co >= 8
|
||||
hi ToolbarButton ctermfg=black ctermbg=gray cterm=bold,reverse
|
||||
hi NonText ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Folded ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
@@ -307,6 +296,7 @@ if s:t_Co >= 8
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Special ctermfg=darkmagenta ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Title ctermfg=darkmagenta ctermbg=NONE cterm=bold
|
||||
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
@@ -413,7 +403,6 @@ endif
|
||||
" Color: darkmagenta #870087 18 darkmagenta
|
||||
" Color: darkcyan #008787 30 darkcyan
|
||||
" Color: gray #878787 102 gray
|
||||
" Color: magenta #ff87ff 213 magenta
|
||||
" Term colors: bg0 statement constant preproc identifier type special bg1
|
||||
" Term colors: comment statement constant preproc identifier type special fg0
|
||||
" Color: bgDiffA #5F875F 65 darkgreen
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:34
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -32,7 +32,6 @@ hi! link CursorLineSign CursorLine
|
||||
hi! link EndOfBuffer NonText
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupNotification Todo
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
|
||||
hi StatusLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
|
||||
hi StatusLineNC guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
|
||||
@@ -43,8 +42,6 @@ hi Pmenu guifg=#ffffff guibg=#666666 gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#333333 gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ffa0a0 guibg=#666666 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#cd5c5c guibg=#f0e68c gui=NONE cterm=NONE
|
||||
hi TabLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
|
||||
hi TabLineFill guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
|
||||
hi TabLineSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
|
||||
@@ -109,7 +106,6 @@ if s:t_Co >= 256
|
||||
hi! link EndOfBuffer NonText
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupNotification Todo
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi Normal ctermfg=231 ctermbg=236 cterm=NONE
|
||||
hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
|
||||
hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
|
||||
@@ -120,8 +116,6 @@ if s:t_Co >= 256
|
||||
hi PmenuSel ctermfg=236 ctermbg=186 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=236 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=144 cterm=NONE
|
||||
hi PmenuMatch ctermfg=217 ctermbg=241 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=167 ctermbg=186 cterm=NONE
|
||||
hi TabLine ctermfg=236 ctermbg=144 cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=144 cterm=NONE
|
||||
hi TabLineSel ctermfg=236 ctermbg=186 cterm=NONE
|
||||
@@ -188,8 +182,6 @@ if s:t_Co >= 16
|
||||
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
|
||||
hi PmenuMatch ctermfg=NONE ctermbg=darkgrey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=yellow cterm=bold
|
||||
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=white cterm=NONE
|
||||
hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
|
||||
@@ -256,8 +248,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
|
||||
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
|
||||
|
@@ -3,7 +3,7 @@
|
||||
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
|
||||
" Website: https://www.github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2024 Aug 15
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:35
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -77,8 +77,6 @@ hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#bebebe gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ff00ff guibg=#444444 gui=bold cterm=bold
|
||||
hi PmenuMatchSel guifg=#ff00ff guibg=#00cdcd gui=bold cterm=bold
|
||||
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
|
||||
hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
|
||||
hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
|
||||
@@ -147,8 +145,6 @@ if s:t_Co >= 256
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=250 cterm=NONE
|
||||
hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
|
||||
hi PmenuMatch ctermfg=201 ctermbg=238 cterm=bold
|
||||
hi PmenuMatchSel ctermfg=201 ctermbg=44 cterm=bold
|
||||
hi Question ctermfg=46 ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=16 ctermbg=226 cterm=NONE
|
||||
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
|
||||
@@ -220,8 +216,6 @@ if s:t_Co >= 16
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
|
||||
hi PmenuMatch ctermfg=magenta ctermbg=darkgrey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=magenta ctermbg=darkcyan cterm=bold
|
||||
hi Question ctermfg=green ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
|
||||
@@ -292,8 +286,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSbar ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuMatch ctermfg=grey ctermbg=NONE cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi Question ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Mon 08 Jan 2024 09:43:27 AM AEDT
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -24,7 +24,6 @@ if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
endfor
|
||||
endif
|
||||
hi! link VertSplit StatusLineNC
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link StatusLineTerm StatusLine
|
||||
hi! link StatusLineTermNC StatusLineNC
|
||||
hi! link TabLineFill TabLine
|
||||
@@ -81,8 +80,6 @@ hi StatusLine guifg=#333333 guibg=#ffffff gui=bold cterm=bold
|
||||
hi StatusLineNC guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
|
||||
hi TabLineSel guifg=#333333 guibg=#ffffff gui=bold cterm=bold
|
||||
hi TabLine guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ff80ff guibg=#4d4d4d gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#8b008b guibg=#bebebe gui=NONE cterm=NONE
|
||||
hi Pmenu guifg=#ffffff guibg=#4d4d4d gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#000000 guibg=#bebebe gui=NONE cterm=NONE
|
||||
@@ -92,7 +89,7 @@ hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
|
||||
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
|
||||
hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
|
||||
hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Folded guifg=#00008b guibg=#d3d3d3 gui=bold cterm=bold
|
||||
hi IncSearch guifg=#00ff00 guibg=NONE gui=reverse cterm=reverse
|
||||
@@ -135,7 +132,6 @@ hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
|
||||
|
||||
if s:t_Co >= 256
|
||||
hi! link VertSplit StatusLineNC
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link StatusLineTerm StatusLine
|
||||
hi! link StatusLineTermNC StatusLineNC
|
||||
hi! link TabLineFill TabLine
|
||||
@@ -192,8 +188,6 @@ if s:t_Co >= 256
|
||||
hi StatusLineNC ctermfg=236 ctermbg=252 cterm=NONE
|
||||
hi TabLineSel ctermfg=236 ctermbg=231 cterm=bold
|
||||
hi TabLine ctermfg=236 ctermbg=252 cterm=NONE
|
||||
hi PmenuMatch ctermfg=201 ctermbg=239 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=90 ctermbg=250 cterm=NONE
|
||||
hi Pmenu ctermfg=231 ctermbg=239 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=16 ctermbg=250 cterm=NONE
|
||||
@@ -203,7 +197,7 @@ if s:t_Co >= 256
|
||||
hi Error ctermfg=196 ctermbg=231 cterm=reverse
|
||||
hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
|
||||
hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=241 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=153 ctermbg=NONE cterm=NONE
|
||||
hi Folded ctermfg=18 ctermbg=252 cterm=bold
|
||||
hi IncSearch ctermfg=46 ctermbg=NONE cterm=reverse
|
||||
@@ -249,7 +243,6 @@ endif
|
||||
|
||||
if s:t_Co >= 16
|
||||
hi! link VertSplit StatusLineNC
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link StatusLineTerm StatusLine
|
||||
hi! link StatusLineTermNC StatusLineNC
|
||||
hi! link TabLineFill TabLine
|
||||
@@ -306,8 +299,6 @@ if s:t_Co >= 16
|
||||
hi StatusLineNC ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
|
||||
hi TabLine ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi PmenuMatch ctermfg=white ctermbg=darkgray cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=gray cterm=bold
|
||||
hi Pmenu ctermfg=white ctermbg=darkgray cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
|
||||
@@ -317,7 +308,7 @@ if s:t_Co >= 16
|
||||
hi Error ctermfg=red ctermbg=white cterm=reverse
|
||||
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
|
||||
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=darkgray ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=lightblue ctermbg=NONE cterm=NONE
|
||||
hi Folded ctermfg=darkblue ctermbg=gray cterm=bold
|
||||
hi IncSearch ctermfg=green ctermbg=NONE cterm=reverse
|
||||
@@ -375,8 +366,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=gray cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=gray cterm=bold
|
||||
hi QuickFixLine ctermfg=gray ctermbg=darkmagenta cterm=NONE
|
||||
hi Error ctermfg=red ctermbg=gray cterm=reverse
|
||||
hi ErrorMsg ctermfg=gray ctermbg=red cterm=NONE
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Mon 08 Jan 2024 09:39:53 AM AEDT
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -17,7 +17,7 @@ let g:colors_name = 'habamax'
|
||||
let s:t_Co = &t_Co
|
||||
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#1c1c1c', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d75f87', '#87d787', '#d7af87', '#5fafd7', '#d787d7', '#87afaf', '#bcbcbc']
|
||||
let g:terminal_ansi_colors = ['#1c1c1c', '#d75f5f', '#87af87', '#afaf87', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d7875f', '#afd7af', '#d7d787', '#87afd7', '#d7afd7', '#87afaf', '#bcbcbc']
|
||||
" Nvim uses g:terminal_color_{0-15} instead
|
||||
for i in range(g:terminal_ansi_colors->len())
|
||||
let g:terminal_color_{i} = g:terminal_ansi_colors[i]
|
||||
@@ -27,7 +27,7 @@ hi! link Terminal Normal
|
||||
hi! link StatuslineTerm Statusline
|
||||
hi! link StatuslineTermNC StatuslineNC
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link PopupNotification Todo
|
||||
hi! link javaScriptFunction Statement
|
||||
hi! link javaScriptIdentifier Statement
|
||||
hi! link sqlKeyword Statement
|
||||
@@ -39,6 +39,7 @@ hi! link vimOper Normal
|
||||
hi! link vimSep Normal
|
||||
hi! link vimParenSep Normal
|
||||
hi! link vimCommentString Comment
|
||||
hi! link gitCommitSummary Title
|
||||
hi! link markdownUrl String
|
||||
hi Normal guifg=#bcbcbc guibg=#1c1c1c gui=NONE cterm=NONE
|
||||
hi Statusline guifg=#1c1c1c guibg=#9e9e9e gui=NONE cterm=NONE
|
||||
@@ -46,11 +47,11 @@ hi StatuslineNC guifg=#1c1c1c guibg=#767676 gui=NONE cterm=NONE
|
||||
hi VertSplit guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
|
||||
hi TabLine guifg=#1c1c1c guibg=#767676 gui=NONE cterm=NONE
|
||||
hi TabLineFill guifg=#1c1c1c guibg=#767676 gui=NONE cterm=NONE
|
||||
hi TabLineSel guifg=#1c1c1c guibg=#9e9e9e gui=bold cterm=bold
|
||||
hi TabLineSel guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ToolbarButton guifg=#767676 guibg=#1c1c1c gui=bold,reverse cterm=bold,reverse
|
||||
hi ToolbarButton guifg=#9e9e9e guibg=#1c1c1c gui=bold,reverse cterm=bold,reverse
|
||||
hi QuickFixLine guifg=#1c1c1c guibg=#5f87af gui=NONE cterm=NONE
|
||||
hi CursorLineNr guifg=#dadada guibg=NONE gui=bold cterm=bold
|
||||
hi CursorLineNr guifg=#ffaf5f guibg=NONE gui=bold cterm=bold
|
||||
hi LineNr guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi LineNrAbove guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi LineNrBelow guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
@@ -58,72 +59,71 @@ hi NonText guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi EndOfBuffer guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi SpecialKey guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi FoldColumn guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Visual guifg=#87afaf guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
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 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=NONE guibg=#585858 gui=NONE cterm=NONE
|
||||
hi PmenuKind guifg=#5f8787 guibg=#3a3a3a gui=NONE cterm=NONE
|
||||
hi PmenuKindSel guifg=#5f8787 guibg=#585858 gui=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=#9e9e9e guibg=#585858 gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ffaf5f guibg=#3a3a3a gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#ffaf5f guibg=#585858 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=#af5f5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi ErrorMsg guifg=#af5f5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi MoreMsg guifg=#5faf5f guibg=NONE gui=NONE cterm=NONE
|
||||
hi Question guifg=#d7af87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi WarningMsg guifg=#d75f87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Todo guifg=#dadada guibg=NONE gui=bold cterm=bold
|
||||
hi Error guifg=#d75f5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi ErrorMsg guifg=#d75f5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi ModeMsg guifg=#1c1c1c guibg=#d7d787 gui=NONE cterm=NONE
|
||||
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 Search guifg=#5fafd7 guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi IncSearch guifg=#ffaf5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi CurSearch guifg=#ffaf5f guibg=#1c1c1c gui=reverse cterm=reverse
|
||||
hi WildMenu guifg=#1c1c1c guibg=#d7af87 gui=bold cterm=bold
|
||||
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
|
||||
hi WildMenu guifg=#1c1c1c guibg=#d7d787 gui=NONE cterm=NONE
|
||||
hi debugPC guifg=#1c1c1c guibg=#5f87af gui=NONE cterm=NONE
|
||||
hi debugBreakpoint guifg=#1c1c1c guibg=#d75f87 gui=NONE cterm=NONE
|
||||
hi Cursor guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
|
||||
hi debugBreakpoint guifg=#1c1c1c guibg=#d7875f gui=NONE cterm=NONE
|
||||
hi Cursor guifg=#1c1c1c guibg=#ffaf5f gui=NONE cterm=NONE
|
||||
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 SpellBad guifg=NONE guibg=NONE guisp=#d75f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi SpellCap guifg=NONE guibg=NONE guisp=#ffaf5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi SpellLocal guifg=NONE guibg=NONE guisp=#5fd75f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi SpellRare guifg=NONE guibg=NONE guisp=#d787d7 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
|
||||
hi SpellRare guifg=NONE guibg=NONE guisp=#d7afd7 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Comment guifg=#767676 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Constant guifg=#d75f87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi String guifg=#5faf5f guibg=NONE gui=NONE cterm=NONE
|
||||
hi Character guifg=#87d787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Constant guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
|
||||
hi String guifg=#87af87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Character guifg=#afd7af guibg=NONE gui=NONE cterm=NONE
|
||||
hi Identifier guifg=#87afaf guibg=NONE gui=NONE cterm=NONE
|
||||
hi Statement guifg=#af87af guibg=NONE gui=NONE cterm=NONE
|
||||
hi PreProc guifg=#af875f guibg=NONE gui=NONE cterm=NONE
|
||||
hi Type guifg=#5f87af guibg=NONE gui=NONE cterm=NONE
|
||||
hi PreProc guifg=#afaf87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Type guifg=#87afd7 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Special guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Title guifg=#d7d787 guibg=NONE gui=bold cterm=bold
|
||||
hi Directory guifg=#87afaf guibg=NONE gui=bold cterm=bold
|
||||
hi Conceal guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
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=#5faf5f guibg=NONE gui=reverse cterm=reverse
|
||||
hi DiffChange guifg=#5f87af guibg=NONE gui=reverse cterm=reverse
|
||||
hi DiffText guifg=#af87af guibg=NONE gui=reverse cterm=reverse
|
||||
hi DiffDelete guifg=#af5f5f guibg=NONE gui=reverse cterm=reverse
|
||||
hi Added guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE
|
||||
hi Changed guifg=#ffaf5f guibg=NONE gui=NONE cterm=NONE
|
||||
hi DiffAdd guifg=#dadada guibg=#5f875f gui=NONE cterm=NONE
|
||||
hi DiffDelete guifg=#af875f guibg=NONE gui=NONE cterm=NONE
|
||||
hi Added guifg=#87af87 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Changed guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Removed 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
|
||||
|
||||
if s:t_Co >= 256
|
||||
hi! link Terminal Normal
|
||||
hi! link StatuslineTerm Statusline
|
||||
hi! link StatuslineTermNC StatuslineNC
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link PopupNotification Todo
|
||||
hi! link javaScriptFunction Statement
|
||||
hi! link javaScriptIdentifier Statement
|
||||
hi! link sqlKeyword Statement
|
||||
@@ -135,6 +135,7 @@ if s:t_Co >= 256
|
||||
hi! link vimSep Normal
|
||||
hi! link vimParenSep Normal
|
||||
hi! link vimCommentString Comment
|
||||
hi! link gitCommitSummary Title
|
||||
hi! link markdownUrl String
|
||||
hi Normal ctermfg=250 ctermbg=234 cterm=NONE
|
||||
hi Statusline ctermfg=234 ctermbg=247 cterm=NONE
|
||||
@@ -142,11 +143,11 @@ if s:t_Co >= 256
|
||||
hi VertSplit ctermfg=243 ctermbg=243 cterm=NONE
|
||||
hi TabLine ctermfg=234 ctermbg=243 cterm=NONE
|
||||
hi TabLineFill ctermfg=234 ctermbg=243 cterm=NONE
|
||||
hi TabLineSel ctermfg=234 ctermbg=247 cterm=bold
|
||||
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ToolbarButton ctermfg=243 ctermbg=234 cterm=bold,reverse
|
||||
hi ToolbarButton ctermfg=247 ctermbg=234 cterm=bold,reverse
|
||||
hi QuickFixLine ctermfg=234 ctermbg=67 cterm=NONE
|
||||
hi CursorLineNr ctermfg=253 ctermbg=NONE cterm=bold
|
||||
hi CursorLineNr ctermfg=215 ctermbg=NONE cterm=bold
|
||||
hi LineNr ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi LineNrAbove ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi LineNrBelow ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
@@ -154,63 +155,62 @@ if s:t_Co >= 256
|
||||
hi EndOfBuffer ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
hi Visual ctermfg=109 ctermbg=234 cterm=reverse
|
||||
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 PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=NONE ctermbg=240 cterm=NONE
|
||||
hi PmenuKind ctermfg=66 ctermbg=237 cterm=NONE
|
||||
hi PmenuKindSel ctermfg=66 ctermbg=240 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=247 ctermbg=240 cterm=NONE
|
||||
hi PmenuMatch ctermfg=215 ctermbg=237 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=215 ctermbg=240 cterm=NONE
|
||||
hi PmenuExtraSel ctermfg=234 ctermbg=144 cterm=NONE
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=131 ctermbg=234 cterm=reverse
|
||||
hi ErrorMsg ctermfg=131 ctermbg=234 cterm=reverse
|
||||
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi MoreMsg ctermfg=71 ctermbg=NONE cterm=NONE
|
||||
hi Question ctermfg=180 ctermbg=NONE cterm=NONE
|
||||
hi WarningMsg ctermfg=168 ctermbg=NONE cterm=NONE
|
||||
hi Todo ctermfg=253 ctermbg=NONE cterm=bold
|
||||
hi Error ctermfg=167 ctermbg=234 cterm=reverse
|
||||
hi ErrorMsg ctermfg=167 ctermbg=234 cterm=reverse
|
||||
hi ModeMsg ctermfg=234 ctermbg=186 cterm=NONE
|
||||
hi MoreMsg ctermfg=108 ctermbg=NONE cterm=NONE
|
||||
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 Search ctermfg=74 ctermbg=234 cterm=reverse
|
||||
hi IncSearch ctermfg=215 ctermbg=234 cterm=reverse
|
||||
hi CurSearch ctermfg=215 ctermbg=234 cterm=reverse
|
||||
hi WildMenu ctermfg=234 ctermbg=180 cterm=bold
|
||||
hi Search ctermfg=234 ctermbg=108 cterm=NONE
|
||||
hi IncSearch ctermfg=234 ctermbg=215 cterm=NONE
|
||||
hi CurSearch ctermfg=234 ctermbg=144 cterm=NONE
|
||||
hi WildMenu ctermfg=234 ctermbg=186 cterm=NONE
|
||||
hi debugPC ctermfg=234 ctermbg=67 cterm=NONE
|
||||
hi debugBreakpoint ctermfg=234 ctermbg=168 cterm=NONE
|
||||
hi debugBreakpoint ctermfg=234 ctermbg=173 cterm=NONE
|
||||
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 SpellBad ctermfg=167 ctermbg=NONE cterm=underline
|
||||
hi SpellCap ctermfg=215 ctermbg=NONE cterm=underline
|
||||
hi SpellLocal ctermfg=77 ctermbg=NONE cterm=underline
|
||||
hi SpellRare ctermfg=176 ctermbg=NONE cterm=underline
|
||||
hi SpellCap ctermfg=67 ctermbg=NONE cterm=underline
|
||||
hi SpellLocal ctermfg=108 ctermbg=NONE cterm=underline
|
||||
hi SpellRare ctermfg=182 ctermbg=NONE cterm=underline
|
||||
hi Comment ctermfg=243 ctermbg=NONE cterm=NONE
|
||||
hi Constant ctermfg=168 ctermbg=NONE cterm=NONE
|
||||
hi String ctermfg=71 ctermbg=NONE cterm=NONE
|
||||
hi Character ctermfg=114 ctermbg=NONE cterm=NONE
|
||||
hi Constant ctermfg=173 ctermbg=NONE cterm=NONE
|
||||
hi String ctermfg=108 ctermbg=NONE cterm=NONE
|
||||
hi Character ctermfg=151 ctermbg=NONE cterm=NONE
|
||||
hi Identifier ctermfg=109 ctermbg=NONE cterm=NONE
|
||||
hi Statement ctermfg=139 ctermbg=NONE cterm=NONE
|
||||
hi PreProc ctermfg=137 ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=67 ctermbg=NONE cterm=NONE
|
||||
hi PreProc ctermfg=144 ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=110 ctermbg=NONE cterm=NONE
|
||||
hi Special ctermfg=66 ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Title ctermfg=186 ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=109 ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
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=71 ctermbg=NONE cterm=reverse
|
||||
hi DiffChange ctermfg=67 ctermbg=NONE cterm=reverse
|
||||
hi DiffText ctermfg=139 ctermbg=NONE cterm=reverse
|
||||
hi DiffDelete ctermfg=131 ctermbg=NONE cterm=reverse
|
||||
hi Added ctermfg=77 ctermbg=NONE cterm=NONE
|
||||
hi Changed ctermfg=215 ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=253 ctermbg=65 cterm=NONE
|
||||
hi DiffDelete ctermfg=137 ctermbg=NONE cterm=NONE
|
||||
hi Added ctermfg=108 ctermbg=NONE cterm=NONE
|
||||
hi Changed ctermfg=66 ctermbg=NONE cterm=NONE
|
||||
hi Removed 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
|
||||
unlet s:t_Co
|
||||
finish
|
||||
endif
|
||||
@@ -222,11 +222,11 @@ if s:t_Co >= 16
|
||||
hi VertSplit ctermfg=darkgray ctermbg=darkgray cterm=NONE
|
||||
hi TabLine ctermfg=black ctermbg=darkgray cterm=NONE
|
||||
hi TabLineFill ctermfg=black ctermbg=darkgray cterm=NONE
|
||||
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
|
||||
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ToolbarButton ctermfg=darkgray ctermbg=black cterm=bold,reverse
|
||||
hi QuickFixLine ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi CursorLineNr ctermfg=white ctermbg=NONE cterm=bold
|
||||
hi ToolbarButton ctermfg=gray ctermbg=black cterm=bold,reverse
|
||||
hi QuickFixLine ctermfg=black ctermbg=blue cterm=NONE
|
||||
hi CursorLineNr ctermfg=red ctermbg=NONE cterm=bold
|
||||
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi LineNrAbove ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi LineNrBelow ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
@@ -234,7 +234,7 @@ if s:t_Co >= 16
|
||||
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Visual ctermfg=cyan ctermbg=black cterm=reverse
|
||||
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
|
||||
@@ -244,29 +244,27 @@ if s:t_Co >= 16
|
||||
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 PmenuMatch ctermfg=black ctermbg=gray cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=darkred ctermbg=black cterm=reverse
|
||||
hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
|
||||
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi ModeMsg ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
|
||||
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
|
||||
hi Todo ctermfg=white ctermbg=NONE cterm=bold
|
||||
hi Todo ctermfg=yellow ctermbg=black cterm=reverse
|
||||
hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=blue ctermbg=black cterm=reverse
|
||||
hi IncSearch ctermfg=red ctermbg=black cterm=reverse
|
||||
hi CurSearch ctermfg=red ctermbg=black cterm=reverse
|
||||
hi WildMenu ctermfg=black ctermbg=yellow cterm=bold
|
||||
hi debugPC ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
|
||||
hi IncSearch ctermfg=black ctermbg=red cterm=NONE
|
||||
hi CurSearch ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi debugPC ctermfg=black ctermbg=blue cterm=NONE
|
||||
hi debugBreakpoint ctermfg=black ctermbg=red cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi Folded ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
|
||||
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=underline
|
||||
hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
|
||||
hi SpellLocal ctermfg=darkgreen ctermbg=NONE cterm=underline
|
||||
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
|
||||
hi Comment ctermfg=darkgray ctermbg=NONE cterm=NONE
|
||||
@@ -276,21 +274,22 @@ if s:t_Co >= 16
|
||||
hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
|
||||
hi Statement ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=blue ctermbg=NONE cterm=NONE
|
||||
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Title ctermfg=yellow ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=cyan ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
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=darkgreen ctermbg=NONE cterm=reverse
|
||||
hi DiffChange ctermfg=darkblue ctermbg=NONE cterm=reverse
|
||||
hi DiffText ctermfg=darkmagenta ctermbg=NONE cterm=reverse
|
||||
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=reverse
|
||||
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Changed ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Changed ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Removed 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
|
||||
unlet s:t_Co
|
||||
finish
|
||||
endif
|
||||
@@ -299,13 +298,13 @@ if s:t_Co >= 8
|
||||
hi Normal ctermfg=gray ctermbg=black cterm=NONE
|
||||
hi Statusline ctermfg=gray ctermbg=black cterm=bold,reverse
|
||||
hi StatuslineNC ctermfg=gray ctermbg=black cterm=reverse
|
||||
hi VertSplit ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi VertSplit ctermfg=gray ctermbg=black cterm=reverse
|
||||
hi TabLine ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi TabLineFill ctermfg=gray ctermbg=gray cterm=NONE
|
||||
hi TabLineSel ctermfg=black ctermbg=gray cterm=bold
|
||||
hi TabLineFill ctermfg=black ctermbg=gray cterm=NONE
|
||||
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi ToolbarButton ctermfg=gray ctermbg=black cterm=reverse
|
||||
hi QuickFixLine ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi ToolbarButton ctermfg=gray ctermbg=black cterm=bold,reverse
|
||||
hi QuickFixLine ctermfg=black ctermbg=blue cterm=NONE
|
||||
hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi LineNr ctermfg=gray ctermbg=NONE cterm=bold
|
||||
hi LineNrAbove ctermfg=gray ctermbg=NONE cterm=bold
|
||||
@@ -324,53 +323,52 @@ if s:t_Co >= 8
|
||||
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 PmenuMatch ctermfg=black ctermbg=gray cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
|
||||
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
|
||||
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi ModeMsg ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi Todo ctermfg=gray ctermbg=NONE cterm=bold
|
||||
hi Todo ctermfg=darkyellow ctermbg=black cterm=reverse
|
||||
hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
|
||||
hi IncSearch ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi CurSearch ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi debugPC ctermfg=black ctermbg=darkblue cterm=NONE
|
||||
hi debugPC ctermfg=black ctermbg=blue cterm=NONE
|
||||
hi debugBreakpoint ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi Folded ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi SpellBad ctermfg=darkred ctermbg=gray cterm=reverse
|
||||
hi SpellCap ctermfg=darkblue ctermbg=gray cterm=reverse
|
||||
hi SpellCap ctermfg=blue ctermbg=gray cterm=reverse
|
||||
hi SpellLocal ctermfg=darkgreen ctermbg=black cterm=reverse
|
||||
hi SpellRare ctermfg=darkmagenta ctermbg=gray cterm=reverse
|
||||
hi Comment ctermfg=gray ctermbg=NONE cterm=bold
|
||||
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi Constant ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi String ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Character ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Identifier ctermfg=gray ctermbg=NONE cterm=NONE
|
||||
hi Statement ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Type ctermfg=blue ctermbg=NONE cterm=NONE
|
||||
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Title ctermfg=darkyellow ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
|
||||
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=darkgreen ctermbg=NONE cterm=reverse
|
||||
hi DiffChange ctermfg=darkblue ctermbg=NONE cterm=reverse
|
||||
hi DiffText ctermfg=darkmagenta ctermbg=NONE cterm=reverse
|
||||
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=reverse
|
||||
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE
|
||||
hi Changed ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi Changed ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE
|
||||
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
|
||||
hi DiffText ctermfg=white ctermbg=black cterm=bold,reverse
|
||||
hi DiffChange ctermfg=black ctermbg=white cterm=NONE
|
||||
unlet s:t_Co
|
||||
finish
|
||||
endif
|
||||
@@ -444,39 +442,36 @@ if s:t_Co >= 0
|
||||
endif
|
||||
|
||||
" Background: dark
|
||||
" Color: color00 #1c1c1c 234 black
|
||||
" Color: color00 #1C1C1C 234 black
|
||||
" Color: color08 #767676 243 darkgray
|
||||
" Color: color01 #af5f5f 131 darkred
|
||||
" Color: color09 #d75f87 168 red
|
||||
" Color: color02 #5faf5f 71 darkgreen
|
||||
" Color: color10 #87d787 114 green
|
||||
" Color: color03 #af875f 137 darkyellow
|
||||
" Color: color11 #d7af87 180 yellow
|
||||
" Color: color04 #5f87af 67 darkblue
|
||||
" Color: color12 #5fafd7 74 blue
|
||||
" Color: color05 #af87af 139 darkmagenta
|
||||
" Color: color13 #d787d7 176 magenta
|
||||
" Color: color06 #5f8787 66 darkcyan
|
||||
" Color: color14 #87afaf 109 cyan
|
||||
" Color: color07 #9e9e9e 247 gray
|
||||
" Color: color15 #bcbcbc 250 white
|
||||
" Color: color01 #D75F5F 167 darkred
|
||||
" Color: color09 #D7875F 173 red
|
||||
" Color: color02 #87AF87 108 darkgreen
|
||||
" Color: color10 #AFD7AF 151 green
|
||||
" Color: color03 #AFAF87 144 darkyellow
|
||||
" Color: color11 #D7D787 186 yellow
|
||||
" Color: color04 #5F87AF 67 blue
|
||||
" Color: color12 #87AFD7 110 blue
|
||||
" Color: color05 #AF87AF 139 darkmagenta
|
||||
" Color: color13 #D7AFD7 182 magenta
|
||||
" Color: color06 #5F8787 66 darkcyan
|
||||
" Color: color14 #87AFAF 109 cyan
|
||||
" 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: colorNonT #585858 240 darkgrey
|
||||
" Color: colorC #ffaf5f 215 red
|
||||
" Color: colorlC #5fff00 82 green
|
||||
" Color: colorV #1f3f5f 109 cyan
|
||||
" Color: colorC #FFAF5F 215 red
|
||||
" Color: colorlC #5FFF00 82 green
|
||||
" Color: colorV #1F3F5F 109 cyan
|
||||
" Color: colorMP #ff00af 199 magenta
|
||||
" Color: diffAdd #5faf5f 71 darkgreen
|
||||
" Color: diffDelete #af5f5f 131 darkred
|
||||
" Color: diffChange #5f87af 67 darkblue
|
||||
" Color: diffText #af87af 139 darkmagenta
|
||||
" Color: diffAdd #5f875f 65 darkgreen
|
||||
" Color: diffDelete #af875f 137 darkyellow
|
||||
" Color: diffChange #5f5f5f 59 darkgray
|
||||
" Color: diffText #878787 102 lightgrey
|
||||
" Color: black #000000 16 black
|
||||
" Color: white #dadada 253 white
|
||||
" Color: Added #5fd75f 77 darkgreen
|
||||
" Color: Changed #ffaf5f 215 darkyellow
|
||||
" Color: Removed #d75f5f 167 darkred
|
||||
" 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
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Original maintainer Shian Lee.
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:36
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -34,8 +34,6 @@ hi Pmenu guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#000000 gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ff00ff guibg=#444444 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#ff00ff guibg=#ffff00 gui=NONE cterm=NONE
|
||||
hi TabLine guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
|
||||
hi TabLineFill guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
|
||||
hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=bold
|
||||
@@ -86,7 +84,6 @@ hi Conceal guifg=#6c6c6c guibg=NONE gui=NONE cterm=NONE
|
||||
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=bold
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link LineNrAbove LineNr
|
||||
hi! link LineNrBelow LineNr
|
||||
hi! link CurSearch Search
|
||||
@@ -111,8 +108,6 @@ if s:t_Co >= 256
|
||||
hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=16 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=242 cterm=NONE
|
||||
hi PmenuMatch ctermfg=201 ctermbg=238 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=201 ctermbg=226 cterm=NONE
|
||||
hi TabLine ctermfg=253 ctermbg=238 cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=242 cterm=NONE
|
||||
hi TabLineSel ctermfg=231 ctermbg=16 cterm=bold
|
||||
@@ -163,7 +158,6 @@ if s:t_Co >= 256
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Title ctermfg=201 ctermbg=NONE cterm=bold
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link LineNrAbove LineNr
|
||||
hi! link LineNrBelow LineNr
|
||||
hi! link CurSearch Search
|
||||
@@ -191,8 +185,6 @@ if s:t_Co >= 16
|
||||
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuMatch ctermfg=white ctermbg=darkgrey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=yellow cterm=bold
|
||||
hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi TabLineSel ctermfg=white ctermbg=black cterm=bold
|
||||
@@ -243,7 +235,6 @@ if s:t_Co >= 16
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Title ctermfg=magenta ctermbg=NONE cterm=bold
|
||||
hi! link Terminal Normal
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi! link LineNrAbove LineNr
|
||||
hi! link LineNrBelow LineNr
|
||||
hi! link CurSearch Search
|
||||
@@ -271,8 +262,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi PmenuThumb ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=grey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
|
||||
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
|
||||
|
@@ -3,7 +3,7 @@
|
||||
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
|
||||
" Website: https://www.github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2024 Aug 15
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:36
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -67,7 +67,7 @@ hi CursorLine guifg=NONE guibg=#555555 gui=NONE cterm=NONE
|
||||
hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=bold
|
||||
hi Folded guifg=#00cdcd guibg=#666666 gui=NONE cterm=NONE
|
||||
hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
|
||||
hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
|
||||
hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
|
||||
hi Directory guifg=#cc8000 guibg=NONE gui=NONE cterm=NONE
|
||||
hi EndOfBuffer guifg=#cd0000 guibg=NONE gui=bold cterm=bold
|
||||
@@ -82,8 +82,6 @@ hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#ff00ff guibg=#444444 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#ff0000 guibg=#00cdcd gui=NONE cterm=NONE
|
||||
hi Question guifg=#5c5cff guibg=NONE gui=bold cterm=bold
|
||||
hi Search guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
|
||||
hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
|
||||
@@ -130,7 +128,7 @@ if s:t_Co >= 256
|
||||
hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=bold
|
||||
hi Folded ctermfg=44 ctermbg=59 cterm=NONE
|
||||
hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
|
||||
hi Conceal ctermfg=59 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=254 ctermbg=145 cterm=NONE
|
||||
hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
|
||||
hi Directory ctermfg=172 ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=160 ctermbg=NONE cterm=bold
|
||||
@@ -145,8 +143,6 @@ if s:t_Co >= 256
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
|
||||
hi PmenuMatch ctermfg=201 ctermbg=238 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=196 ctermbg=44 cterm=NONE
|
||||
hi Question ctermfg=63 ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=231 ctermbg=196 cterm=NONE
|
||||
hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
|
||||
@@ -196,7 +192,7 @@ if s:t_Co >= 16
|
||||
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
|
||||
hi Cursor ctermfg=black ctermbg=green cterm=NONE
|
||||
hi Directory ctermfg=darkyellow ctermbg=NONE cterm=NONE
|
||||
hi EndOfBuffer ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
@@ -211,8 +207,6 @@ if s:t_Co >= 16
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
|
||||
hi PmenuMatch ctermfg=white ctermbg=darkgrey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi Question ctermfg=blue ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=white ctermbg=red cterm=NONE
|
||||
hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
|
||||
@@ -276,8 +270,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkcyan cterm=NONE
|
||||
hi PmenuMatch ctermfg=grey ctermbg=darkgrey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi Question ctermfg=darkblue ctermbg=NONE cterm=bold
|
||||
hi Search ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
" Website: https://www.github.com/vim/colorschemes
|
||||
" License: Vim License (see `:help license`)
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Mon 08 Jan 2024 09:41:03 AM AEDT
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -93,7 +93,6 @@ hi! link LineNrAbove LineNr
|
||||
hi! link LineNrBelow LineNr
|
||||
hi! link MessageWindow PMenu
|
||||
hi! link PopupNotification Todo
|
||||
hi! link PopupSelected PmenuSel
|
||||
if &background ==# 'dark'
|
||||
if (has('termguicolors') && &termguicolors) || has('gui_running')
|
||||
let g:terminal_ansi_colors = ['#000000', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#d787d7', '#5fafaf', '#c6c6c6', '#767676', '#ff5f5f', '#5fd75f', '#ffd787', '#5fafff', '#ff87ff', '#5fd7d7', '#ffffff']
|
||||
@@ -126,8 +125,6 @@ if &background ==# 'dark'
|
||||
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 PmenuMatch guifg=#d787d7 guibg=#303030 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#d787d7 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
|
||||
@@ -166,7 +163,7 @@ if &background ==# 'dark'
|
||||
hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Directory guifg=#5fafff guibg=NONE gui=bold cterm=bold
|
||||
hi Conceal guifg=#585858 guibg=NONE gui=NONE cterm=NONE
|
||||
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
|
||||
@@ -223,8 +220,6 @@ else
|
||||
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 PmenuMatch guifg=#af00af guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#af00af 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
|
||||
@@ -263,7 +258,7 @@ else
|
||||
hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Directory guifg=#005fd7 guibg=NONE gui=bold cterm=bold
|
||||
hi Conceal guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
|
||||
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=#000000 guibg=#d7afd7 gui=NONE cterm=NONE
|
||||
hi DiffChange guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
|
||||
@@ -370,7 +365,6 @@ if s:t_Co >= 256
|
||||
hi! link LineNrBelow LineNr
|
||||
hi! link MessageWindow PMenu
|
||||
hi! link PopupNotification Todo
|
||||
hi! link PopupSelected PmenuSel
|
||||
if &background ==# 'dark'
|
||||
hi Normal ctermfg=251 ctermbg=16 cterm=NONE
|
||||
hi Statusline ctermfg=251 ctermbg=16 cterm=bold,reverse
|
||||
@@ -396,8 +390,6 @@ if s:t_Co >= 256
|
||||
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 PmenuMatch ctermfg=176 ctermbg=236 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=176 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
|
||||
@@ -434,7 +426,7 @@ if s:t_Co >= 256
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=75 ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=240 ctermbg=NONE cterm=NONE
|
||||
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
|
||||
@@ -484,8 +476,6 @@ if s:t_Co >= 256
|
||||
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 PmenuMatch ctermfg=127 ctermbg=254 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=127 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
|
||||
@@ -522,7 +512,7 @@ if s:t_Co >= 256
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=26 ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=247 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=16 ctermbg=182 cterm=NONE
|
||||
hi DiffChange ctermfg=16 ctermbg=252 cterm=NONE
|
||||
@@ -578,8 +568,6 @@ if s:t_Co >= 16
|
||||
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 PmenuMatch ctermfg=black ctermbg=grey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=white ctermbg=red cterm=NONE
|
||||
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
|
||||
@@ -615,7 +603,7 @@ if s:t_Co >= 16
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=blue ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
|
||||
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
|
||||
@@ -701,7 +689,7 @@ if s:t_Co >= 16
|
||||
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
|
||||
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
|
||||
hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
|
||||
hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE
|
||||
@@ -757,8 +745,6 @@ if s:t_Co >= 8
|
||||
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 PmenuMatch ctermfg=black ctermbg=grey cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
|
||||
|
@@ -4,7 +4,7 @@
|
||||
" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
|
||||
" Website: https://github.com/vim/colorschemes
|
||||
" License: Same as Vim
|
||||
" Last Change: 2025 Jan 07
|
||||
" Last Updated: Fri 15 Dec 2023 20:05:37
|
||||
|
||||
" Generated by Colortemplate v2.2.3
|
||||
|
||||
@@ -33,7 +33,6 @@ hi! link StatuslineTerm Statusline
|
||||
hi! link StatuslineTermNC StatuslineNC
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupNotification Todo
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi Normal guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=bold
|
||||
hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
|
||||
@@ -48,8 +47,6 @@ hi Pmenu guifg=#000000 guibg=#b2b2b2 gui=NONE cterm=NONE
|
||||
hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
|
||||
hi PmenuSbar guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
|
||||
hi PmenuThumb guifg=NONE guibg=#000000 gui=NONE cterm=NONE
|
||||
hi PmenuMatch guifg=#a52a2a guibg=#b2b2b2 gui=NONE cterm=NONE
|
||||
hi PmenuMatchSel guifg=#a52a2a guibg=#ffff00 gui=NONE cterm=NONE
|
||||
hi TabLine guifg=#000000 guibg=#bcbcbc gui=underline cterm=underline
|
||||
hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi TabLineSel guifg=#000000 guibg=#e4e4e4 gui=bold cterm=bold
|
||||
@@ -90,7 +87,7 @@ hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=bold
|
||||
hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
|
||||
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Directory guifg=#008787 guibg=NONE gui=bold cterm=bold
|
||||
hi Conceal guifg=#878787 guibg=NONE gui=NONE cterm=NONE
|
||||
hi Conceal guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
|
||||
hi Title guifg=#a52a2a guibg=NONE gui=bold cterm=bold
|
||||
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
|
||||
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
|
||||
@@ -108,7 +105,6 @@ if s:t_Co >= 256
|
||||
hi! link StatuslineTermNC StatuslineNC
|
||||
hi! link MessageWindow Pmenu
|
||||
hi! link PopupNotification Todo
|
||||
hi! link PopupSelected PmenuSel
|
||||
hi Normal ctermfg=16 ctermbg=254 cterm=NONE
|
||||
hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=bold
|
||||
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
|
||||
@@ -123,8 +119,6 @@ if s:t_Co >= 256
|
||||
hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=254 cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=16 cterm=NONE
|
||||
hi PmenuMatch ctermfg=124 ctermbg=249 cterm=NONE
|
||||
hi PmenuMatchSel ctermfg=124 ctermbg=226 cterm=NONE
|
||||
hi TabLine ctermfg=16 ctermbg=250 cterm=underline
|
||||
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi TabLineSel ctermfg=16 ctermbg=254 cterm=bold
|
||||
@@ -165,7 +159,7 @@ if s:t_Co >= 256
|
||||
hi Special ctermfg=62 ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Directory ctermfg=30 ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=102 ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=21 ctermbg=NONE cterm=NONE
|
||||
hi Title ctermfg=124 ctermbg=NONE cterm=bold
|
||||
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
|
||||
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
|
||||
@@ -190,8 +184,6 @@ if s:t_Co >= 16
|
||||
hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=black cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=white cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=yellow cterm=bold
|
||||
hi TabLine ctermfg=black ctermbg=white cterm=underline
|
||||
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi TabLineSel ctermfg=black ctermbg=grey cterm=bold
|
||||
@@ -232,7 +224,7 @@ if s:t_Co >= 16
|
||||
hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
|
||||
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
|
||||
hi Conceal ctermfg=gray ctermbg=NONE cterm=NONE
|
||||
hi Conceal ctermfg=blue ctermbg=NONE cterm=NONE
|
||||
hi Title ctermfg=darkred ctermbg=NONE cterm=bold
|
||||
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
|
||||
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
|
||||
@@ -257,8 +249,6 @@ if s:t_Co >= 8
|
||||
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
|
||||
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
|
||||
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
|
||||
hi PmenuMatch ctermfg=black ctermbg=darkcyan cterm=bold
|
||||
hi PmenuMatchSel ctermfg=black ctermbg=darkyellow cterm=bold
|
||||
hi TabLine ctermfg=gray ctermbg=black cterm=NONE
|
||||
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
|
||||
hi TabLineSel ctermfg=black ctermbg=gray cterm=NONE
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user