Compare commits

...

489 Commits

Author SHA1 Message Date
Yee Cheng Chin a9ac6c80df MacVim Release 174
Updated to Vim 9.0.472.

Announcements
====================

Sponsors
--------------------

MacVim now allows you to sponsor the team! Any amount would be
appreciated and it is of course optional. See the announcement (#1271)
for more details.

Supporting old versions of macOS (10.12 or below)
--------------------

Currently, macOS supports macOS 10.9 or above. However, this is getting
harder to do so as time goes on (e.g. the latest Xcode doesn't support
building for it). In the near future, MacVim will mostly target 10.13
(High Sierra) or above, with 10.9 - 10.12 as legacy support. Visit this
discussion (#1288) if you would be affected and would like to know more.

Features
====================

Resizing MacVim new options
--------------------

You can now smoothly drag and resize MacVim without having it
constrained to fixed multiples of the text size, by setting the
"Smoothly resizes window" under General preference pane. This also
allows MacVim to behave better when used with third-party tools (e.g.
BetterSnapTool) to snap it to one side of the screen. #1276

The command line can now be pinned to the bottom of the window with a
setting (under Appearance preference pane). This makes it look better
aligned when using smooth resizing, or in other situations where the
window size is not a direct multiples of Vim's text size (e.g. full
screen or guioption+=k). #1280

New supported text styles
--------------------

Vim highlight groups `strikethrough`, `underdouble`, `underdotted`,
`underdashed` are now supported. #1287

New Vim features
--------------------

Virtual text allows you to place custom texts to be displayed inline for
diagnostic information and more (e.g. build errors, CSS color preview).
See `:help virtual-text` for more information.

The default color schemes (e.g. desert) are now fixed to look correct
again.

Misc options and commands:
- `set nosplitscroll` lets you preserve the windows' scroll positions
  when splitting. (v9.0.0445)
- `:defer` allows you to clean up in a function. (v9.0.0370)
- `:echowindow` allows you to echo a message to a floating popup message
  window instead of to the command line. (v9.0.0321)

Fixes
====================

- Fixed non-native full screen not working well with the notch on newer
  MacBook's when set to not show menu bar. You can also use
  `MMNonNativeFullScreenSafeAreaBehavior` to force MacVim to use the
  notch area as well if you don't mind some content being obscured. #1261
- Fixed bad interaction when two settings ("Open untitled window: never"
  and "After last window closes: Quit MacVim") are set together. #1257
- Fixed the bundled Vim tutor not working when launching from the Help
  menu #1265.
- Fix crashing on launch under macOS 10.9. #1212
- Fixed potential crash when switching appearance mode in MacVim
  preferences. #1270
- Korean localized menus no longer throw a syntax error on launch. #1278
- `did_install_default_menus` should work in MacVim now. #1267

General
====================

Sparkle (updater for MacVim) is now updated to 1.27.1 (#1284), and we no
longer use DSA keys for signing updates (#1285) as we are using EdDSA
already.

Scripting
====================

- Scripting languages versions:
    - Python is now built against 3.10, up from 3.9.

Compatibility
====================

Requires macOS 10.9 or above.

Script interfaces have compatibility with these versions:

- Lua 5.4
- Perl 5.18
- Python2 2.7
- Python3 3.10
- Ruby 3.1
2022-09-15 11:56:17 -07:00
Yee Cheng Chin 4f8388f872 Merge remote-tracking branch 'vim/master' 2022-09-15 11:52:01 -07:00
Bram Moolenaar a4abe514ec patch 9.0.0472: virtual text "below" doesn't show in list mode
Problem:    Virtual text "below" doesn't show in list mode.
Solution:   Reset lcs_eol_one when displaying text property.
2022-09-15 19:44:09 +01:00
mityu 12167d8b84 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Problem:    No test for what patch 9.0.0469 fixes.
Solution:   Add a test. (closes #11140)
2022-09-15 17:44:07 +01:00
Bram Moolenaar b46c083a5e patch 9.0.0470: in :def function all closures in loop get the same variables
Problem:    In a :def function all closures in a loop get the same variables.
Solution:   When in a loop and a closure refers to a variable declared in the
            loop, prepare for making a copy of variables for each closure.
2022-09-15 17:19:37 +01:00
Yee Cheng Chin d404ddd141 Merge remote-tracking branch 'vim/master' 2022-09-15 06:20:00 -07:00
Luuk van Baal 3735f11050 patch 9.0.0469: cursor moves if cmdwin is closed when 'splitscroll' is off
Problem:    Cursor moves if cmdwin is closed when 'splitscroll' is off.
Solution:   Skip win_fix_cursor if called when cmdwin is open or closing.
            (Luuk van Baal, closes #11134)
2022-09-15 12:43:26 +01:00
Bram Moolenaar aeef1f7f6d patch 9.0.0468: exectution stack underflow without the +eval feature
Problem:    Exectution stack underflow without the +eval feature. (Dominique
            Pellé)
Solution:   Add to execution stack without FEAT_EVAL. (closes #11135)
2022-09-15 12:20:18 +01:00
Yee Cheng Chin fa37c18c21 Merge pull request #1287 from ychin/support-strikethrough
Support strikethrough/underdouble/underdashed/underdotted styles
2022-09-14 21:07:14 -07:00
Yee Cheng Chin 882944f146 Support strikethrough/underdouble/underdashed/underdotted styles
Add support for all the missing text styles for MacVim for Vim parity.

For strikethrough, this needed to be done as a second pass to make sure
they get drawn on top of the text. This is necessary because currently
the logic buffers texts up before dispatching them later in a line, so
it's just easier to loop through the line a second time if we detected
strikethrough. For the strikethrough position, we simply use the half of
xheight which seems to work best in looking good.

For underdouble, the logic is a little tricky because sometimes we don't
have space below the line. When that's the case, simply draw the second
line on top of the first line.

For underdotted, need to do something smart to space out the dots. When
the width is divisible by 2, they get spaced out evenly. If they are
not, try to make it work if divisible by 3. If that's not the case, we
just readjust the size of dot/gap a little bit to make it fit, even
though now we have non-integer sizes (from experimentation, the
antialising works well enough that it's not too jarring).

Also fix rendering of undercurl to work for double-width characters as
well.

Note that underdouble/underdotted/underdashed are not supported in
regular gVim yet, and so I had to add the ifdef for those in gui.c.
These may cause merge conflicts later which should be easily resolved.

Known issue 1: Note that currently underline is not respecting the
font's underline thickness and position. We always use a thickness of 1
pt, and hard-code a 0.4*descent position, which are not great. Thickness
in particular should scale with the font size. They should be fixed in a
future commit.

Known issue 2: There are some current clipping bugs in the renderer.
This is because the line height returned by NSLayoutManager is sometimes
smaller than ascent+descent+leading, *and* MMCoreTextView for some
reason takes the `ceil(descent)` (presumably to make the rendering
grid-aligned). This should be fixed later.

Fix #1034
2022-09-14 20:09:11 -07:00
Bram Moolenaar d3922afbd6 patch 9.0.0467: build failure
Problem:    Build failure.
Solution:   Add missing change.
2022-09-14 22:30:59 +01:00
Bram Moolenaar ebd0e8bb85 patch 9.0.0466: virtual text wrong after adding line break after line
Problem:    Virtual text wrong after adding line break after line.
Solution:   Pass an "eol" flag to where text properties are adjusted.
            (closes #11131)
2022-09-14 22:13:59 +01:00
mityu e697d48890 patch 9.0.0465: cursor moves when cmdwin is closed when 'splitscroll' is off
Problem:    Cursor moves when cmdwin is closed when 'splitscroll' is off.
Solution:   Temporarily set 'splitscroll' when jumping back to the original
            window. (closes #11128)
2022-09-14 17:27:36 +01:00
Bram Moolenaar 702bd6c7c6 patch 9.0.0464: with virtual text "above" indenting doesn't work well
Problem:    With virtual text "above" indenting doesn't work well.
Solution:   Ignore text properties while adjusting indent. (issue #11084)
2022-09-14 16:09:57 +01:00
Dominique Pelle febe13892e patch 9.0.0463: command line test leaves directory behind
Problem:    Command line test leaves directory behind.
Solution:   Use the "R" flag on the first mkdir(). (Dominique Pellé,
            closes #11127)
2022-09-14 12:51:49 +01:00
Bram Moolenaar 98b373075e patch 9.0.0462: ASAN warning for integer overflow
Problem:    ASAN warning for integer overflow.
Solution:   Check for tp_col to be MAXCOL.
2022-09-14 12:06:53 +01:00
Yee Cheng Chin b3cd8a5c93 Merge pull request #1286 from ychin/fix-ci-vimtags-generation
Fix MacVim CI not re-generating help tags properly
2022-09-13 23:30:17 -07:00
Yee Cheng Chin c3c27f93ee Merge remote-tracking branch 'vim/master' 2022-09-13 21:11:40 -07:00
Luuk van Baal 470a14140b patch 9.0.0461: 'scroll' is not always updated
Problem:    'scroll' is not always updated.
Solution:   Call win_init_size() at the right place.
2022-09-14 01:27:23 +01:00
Bram Moolenaar 766ae5b252 patch 9.0.0460: loop variable can't be found
Problem:    Loop variable can't be found.
Solution:   Adjust block_id of the loop variable each round.
2022-09-14 00:30:51 +01:00
Bram Moolenaar 353b68a991 patch 9.0.0459: Vim9: block in for loop doesn't behave like a code block
Problem:    Vim9: block in for loop doesn't behave like a code block.
Solution:   Use a new block ID for each loop at the script level.
2022-09-13 21:10:45 +01:00
Bram Moolenaar 3b93cf218f patch 9.0.0458: splitting a line with a text prop "above" moves it down
Problem:    Splitting a line with a text prop "above" moves it to a new line
            below.
Solution:   Keep an "above" text prop above the first line.
2022-09-13 18:34:18 +01:00
Bram Moolenaar a04f457a6c patch 9.0.0457: substitute prompt does not highlight an empty match
Problem:    Substitute prompt does not highlight an empty match.
Solution:   Highlight at least one character.
2022-09-13 13:45:26 +01:00
Bram Moolenaar b1842de5ca patch 9.0.0456: function called at debug prompt is also debugged
Problem:    Function called at debug prompt is also debugged.
Solution:   Reset the debug level while entering the debug command.
            (closes #11118)
2022-09-13 12:36:57 +01:00
Luuk van Baal 5ed391708a patch 9.0.0455: a few problems with 'splitscroll'
Problem:    A few problems with 'splitscroll'.
Solution:   Fix 'splitscroll' problems. (Luuk van Baal, closes #11117)
2022-09-13 11:55:10 +01:00
Your Name 810cb5a3bf patch 9.0.0454: incorrect color for modeless selection with GTK
Problem:    Incorrect color for modeless selection with GTK.
Solution:   Use simple inversion instead of XOR. (closes #11111)
2022-09-13 11:25:54 +01:00
Yee Cheng Chin cc43421b76 Fix MacVim CI not re-generating help tags properly
We previously added a step to rebuild the Vim help tags when publishing
so that we could get the latest tags when generating a MacVim release
(sometimes Vim's runtime is lagging behind and doesn't have that done).

However, the step was so placed so far back (after building/testing)
that it doesn't actually do anything, as MacVim was already built. Move
it earlier so we build MacVim after vimtags are re-generated. As part of
doing this we also need to split building Vim itself earlier as vimtags
generation requires having a Vim binary.

So the updated steps are 1. Vim, 2. help tags, 3. MacVim, 4. Tests.
Previously they were 1. Vim/MacVim, 2. Tests, 3. help tags.
2022-09-12 15:47:29 -07:00
Yee Cheng Chin 08d6d4144d Remove stale dsa_pub.pem reference in Xcode project file 2022-09-12 15:28:05 -07:00
Bram Moolenaar 83a19c5fda patch 9.0.0453: on an AZERTY keyboard digit keys get the shift modifier
Problem:    On an AZERTY keyboard digit keys get the shift modifier.
Solution:   Remove the shift modifier from digit keys. (closes #11109)
2022-09-12 20:35:28 +01:00
Bram Moolenaar 6eda17d881 patch 9.0.0452: Visual highlighting extends into virtual text prop
Problem:    Visual highlighting extends into virtual text prop.
Solution:   Do not highlight what isn't actually selected.  Fix ordering of
            stored text props.
2022-09-12 19:25:11 +01:00
Bram Moolenaar c9dc03fff5 patch 9.0.0451: virtual text "above" does not work with 'nowrap'
Problem:    Virtual text "above" does not work with 'nowrap'.
Solution:   Do wrap the line after. (closes #11084)
2022-09-12 17:51:07 +01:00
Bram Moolenaar 7b2d87220c Add missing part of patch 2022-09-12 15:16:29 +01:00
zeertzjq cd2d5c181a patch 9.0.0450: return value of argument check functions is inconsistent
Problem:    Return value of argument check functions is inconsistent.
Solution:   Return OK/FAIL instead of TRUE/FALSE. (closes #11112)
2022-09-12 14:09:30 +01:00
zeertzjq cdc839353f patch 9.0.0449: there is no easy way to translate a key code into a string
Problem:    There is no easy way to translate a string with a key code into a
            readable string.
Solution:   Add the keytrans() function. (closes #11114)
2022-09-12 13:38:41 +01:00
ObserverOfTime 5a4eb55122 patch 9.0.0448: SubRip files are not recognized
Problem:    SubRip files are not recognized.
Solution:   Add a pattern for SubRip. (closes #11113)
2022-09-12 12:43:23 +01:00
Yee Cheng Chin 8e770ba27b Merge pull request #1285 from ychin/remove-sparkle-dsa-key
Remove DSA key for Sparkle updates
2022-09-12 04:31:40 -04:00
Yee Cheng Chin 55837e126f Merge pull request #1284 from ychin/sparkle-1.27.1
Sparkle 1.27.1
2022-09-12 04:31:17 -04:00
Yee Cheng Chin 73f260832e Merge remote-tracking branch 'vim/master' 2022-09-12 01:01:41 -07:00
Yee Cheng Chin 5dece184bf Remove DSA key for Sparkle updates
Sparkle has deprecated signing updates with DSA for a long time. MacVim
has also added an EdDSA key for a while now. This means we can remove
the DSA key and still be pretty safe and certain that vast majority of
MacVim users can still update from old versions of MacVim to the new
one, using only the EdDSA key. This makes the update process easier and
we don't have to use legacy tools to sign each update with the
deprecated DSA key.
2022-09-12 00:49:42 -07:00
Yee Cheng Chin 2b050f9952 Sparkle 1.27.1
This is the last 1.x version. Upgrading to it to get all remaining fixes
before we need to decide whether whether we upgrade to 2.x (which has
much higher minimum macOS requirements).
2022-09-12 00:45:04 -07:00
Yee Cheng Chin 515274be49 Merge pull request #1283 from ychin/python3-detection-use-3.10
Update Python vimrc detection to 3.10
2022-09-11 23:54:18 -04:00
Yee Cheng Chin 5cf6e35a96 Update Python vimrc detection to 3.10
CI build has been updated to build MacVim against Python 3.10, so we
want to update the other detection to use 3.10 as well. Also added a
comment to CI file to make sure we remember to update the vimrc file
when updating the version.
2022-09-11 19:46:21 -07:00
Yee Cheng Chin 787158fa36 Merge pull request #1280 from ychin/cmdline-align-bottom-of-window
Allow pinning the cmdline to be aligned to the bottom of window
2022-09-11 20:30:03 -04:00
Yee Cheng Chin 7b81cc3922 Allow pinning the cmdline to be aligned to the bottom of window
Add a setting that could pin the command-line portion of Vim to the
bottom of the MacVim window. This is useful when smooth resizing is set,
guioption+=k, or in full screen. In those situations, the MacVim window
size is usually not direct multiples of the Vim text sizes. Previously
the command-line would be drawn like other texts, and hence not aligned
to the bottom and hence looking aesthetically a little off.

When this setting is set, the command-line portion would be aligned to
the bottom of the window. This essentially moves the gap (due to the
extra height of the window) from the bottom to be between cmdline and
the rest of Vim. When cmdheight is changed, or other situations (e.g.
typing too much cmdline height to be increased), the gap will be
adjusted as well.

Implementation-wise, this was done by passing the `commandline_row` var
from Vim to MacVim, which serves as a good estimate of where the
command-line is. This works better than just using the `cmdheight`
option as it is closer to the current state of the cmdline. One issue is
that in hit-enter prompts, the row is set to the 2nd to last row to
anticipate more messages, and we just add a big hack by incrementing the
row by 1 in hit-enter state so only the "Press Enter..." part is aligned
to bottom. We also have to do something similar to when it's showing
"--more--" for similar reasons.

- An alternative would have been to modify Vim to provide us the
  information we want (the number of rows below the status line) but
  it's pretty tricky to do as cmdline_row is used in lots of places.
  It's easier / simpler to do a simple hack like this to localize the
  damage.

Close #833
2022-09-11 17:27:28 -07:00
Yee Cheng Chin ad721aa587 Merge pull request #1282 from ychin/fix-preference-resizing-when-sparkle-disabled
Fix broken preference pane sizing when sparkle disabled
2022-09-11 18:22:06 -04:00
Yee Cheng Chin 4a2f851130 Fix broken preference pane sizing when sparkle disabled
The recent change that added smooth resizing changed the alignment for
the General preference pane from bottom to top aligned as it never made
sense to be bottom aligned. However, there was code in in the preference
controller to correct for that when resizing the pane when sparkle is
disabled, which caused the resizing to not work. Fix that to account for
the top alignment instead of bottom.

Fix #1281
2022-09-11 15:08:51 -07:00
Bram Moolenaar cf0995d7d7 patch 9.0.0447: using :echowin while at the hit-enter prompt causes problems
Problem:    Using :echowin while at the hit-enter prompt causes problems.
Solution:   Do not prompt for :echowin.  Postpone showing the message window.
            Start the timer when the window is displayed.
2022-09-11 21:36:17 +01:00
Bram Moolenaar 87e74d0e03 patch 9.0.0446: message window may be positioned too low
Problem:    Message window may be positioned too low.
Solution:   Compute cmdline_row before computing the position.
2022-09-11 20:12:15 +01:00
Luuk van Baal 29ab524358 patch 9.0.0445: when opening/closing window text moves up/down
Problem:    When opening/closing window text moves up/down.
Solution:   Add the 'splitscroll' option.  When off text will keep its
            position as much as possible.
2022-09-11 16:59:53 +01:00
Bram Moolenaar 9510d22463 patch 9.0.0444: trying to declare g:variable gives confusing error
Problem:    Trying to declare g:variable gives confusing error.
Solution:   Give a better error message. (closes #11108)
2022-09-11 15:14:05 +01:00
Gabriele Musco cce82a55b8 patch 9.0.0443: blueprint files are not recognized
Problem:    Blueprint files are not recognized.
Solution:   Add a pattern for blueprint files. (Gabriele Musco, closes #11107)
2022-09-11 13:37:37 +01:00
Bram Moolenaar 79f8b8494c patch 9.0.0442: virtual text "above" doesn't handel line numbers
Problem:    Virtual text "above" doesn't handel line numbers.
Solution:   Take the left column offset into account. (issue #11084)
            Also make padding work.
2022-09-11 13:31:01 +01:00
Bram Moolenaar c069edeab2 patch 9.0.0441: closure in for loop test fails on some systems
Problem:    Closure in for loop test fails on some systems.
Solution:   Do not wait for the ruler to show up. (issue #11106)
2022-09-11 12:01:04 +01:00
Bram Moolenaar f5fec05c7f patch 9.0.0440: crash when using mkdir() with "R" flag in compiled function
Problem:    Crash when using mkdir() with "R" flag in compiled function.
Solution:   Reserve a variable for deferred function calls.  Handle more than
            one argument.
2022-09-11 11:49:22 +01:00
Yee Cheng Chin fcd7bd488f Merge pull request #1279 from ychin/fix-broken-korean-menus
Fix MacVim's Korean menu translations causing startup error
2022-09-11 01:55:02 -07:00
Yee Cheng Chin 2f7fa651b9 Fix MacVim's Korean menu translations causing startup error
Apple's Korean translations contain individual "." instead of using
ellipsis, and the extraction script wasn't escapting them when using
them in `menutrans` commands. Add the escape and re-generate the Korean
menu translations.

Fix #1278
2022-09-11 01:39:17 -07:00
Yee Cheng Chin 6b269576f0 Merge pull request #1276 from ychin/smooth-resize-window
Allows smooth resizing of MacVim's window
2022-09-10 21:55:56 -07:00
Yee Cheng Chin aa1c720306 Allows smooth resizing of MacVim's window
Adds a setting that allows for smoothly resizing the window. Previously,
MacVim would only allow resizing in fixed increment of the grid size and
snap to such sizes. This was a little more consistent with how terminals
tend to work, and allows for optimal window sizing, and it was also an
artifact of the old MacVim renderer where it didn't have a stateful
renderer that could repaint the text view.

The snapping could be jarring for users more used to modern text editors
which allow for smoothly resizing of the window though, and it makes
third party tools that could snap macOS windows to the side not work
properly as there's usually a gap near the bottom. With guioption-k,
MacVim already allows for decoupling the window size from the Vim's grid
size anyway, so adding smooth resizing allows to work much better under
those assumptions.

In addition to allowing smooth resizing, this change also makes it so
that the CoreText renderer will fill to the right a little bit when
rendering the rightmost column when MacVim's window size isn't exactly
the Vim grid size. Previously, if a color scheme has NonText color (e.g.
desert), or the user has 'cursorline' set, smooth resize (or in full
screen or guioption-k) would leave a gap to the right, looking a little
ugly. This allows the last column's to fully fill to the right,
resulting in a much more consistent look when resizing the window.

Close #948
2022-09-10 21:52:04 -07:00
Bram Moolenaar 88b79cb7d4 patch 9.0.0439: cursor wrong if inserting before line with virtual text above
Problem:    Cursor wrong if inserting before line with virtual text above.
Solution:   Add the width of the "above" virtual text to the cursor position.
            (issue #11084)
2022-09-10 22:32:14 +01:00
Bram Moolenaar 04e0ed1ddf patch 9.0.0438: cannot put virtual text above a line
Problem:    Cannot put virtual text above a line.
Solution:   Add the "above" value for "text_align".
2022-09-10 20:00:56 +01:00
Bram Moolenaar 55e9366e32 patch 9.0.0437: no error when custom completion function returns wrong type
Problem:    No error when a custom completion function returns something else
            than the expected list.
Solution:   Give an error. (closes #11100)
2022-09-10 13:52:26 +01:00
Bram Moolenaar 71b6d33976 Update runtime files 2022-09-10 13:13:14 +01:00
K.Takata 2da11a4124 patch 9.0.0436: CI: running tests in parallel causes flakiness
Problem:    CI: running tests in parallel causes flakiness.
Solution:   Reorganize the MS-Windows runs. (Ken Takata, closes #11101)
2022-09-10 13:03:12 +01:00
Bram Moolenaar f21d546d8f patch 9.0.0435: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it.
2022-09-10 12:36:00 +01:00
ObserverOfTime 9ba2786f15 patch 9.0.0434: gitignore files are not recognized
Problem:    gitignore files are not recognized.
Solution:   Add patterns for the gitignore filetype. (closes #11102)
2022-09-10 11:04:24 +01:00
Bram Moolenaar 12553ada3b patch 9.0.0433: Coverity warns for not checking allocation failure
Problem:    Coverity warns for not checking allocation failure.
Solution:   Check that allocating a list or blob succeeded.
2022-09-10 10:42:20 +01:00
Bram Moolenaar 6de2296e5e patch 9.0.0432: crash when using for loop variable in closure
Problem:    Crash when using for loop variable in closure.
Solution:   Check that the variable wasn't deleted. (issue #11094)
2022-09-09 21:35:36 +01:00
Bram Moolenaar 7cf5839287 patch 9.0.0431: current mode shows in message window
Problem:    Current mode shows in message window.
Solution:   Reset in_echowindow before redrawing. (issue #11094)
2022-09-09 20:19:40 +01:00
Bakudankun 375141e1f8 patch 9.0.0430: cannot use repeat() with a blob
Problem:    Cannot use repeat() with a blob.
Solution:   Implement blob repeat. (closes #11090)
2022-09-09 18:46:47 +01:00
Yegappan Lakshmanan 0adae2da17 patch 9.0.0429: not all keys are tested for the MS-Windows GUI
Problem:    Not all keys are tested for the MS-Windows GUI.
Solution:   Add more key codes to the list. (Yegappan Lakshmanan,
            closes #11097)
2022-09-09 17:39:02 +01:00
Bram Moolenaar be9fc5b60c patch 9.0.0428: autocmd test uses common file name
Problem:    Autocmd test uses common file name.
Solution:   Use unique name to reduce flakiness.
2022-09-09 17:09:35 +01:00
Rodrigo Aguilera 8995c4cd4e patch 9.0.0427: Drupal theme files are not recognized
Problem:    Drupal theme files are not recognized.
Solution:   Use php filetype for Drupl theme files.  Remove trailing spaces.
            (Rodrigo Aguilera, closes #11096)
2022-09-09 16:10:26 +01:00
Bram Moolenaar 65258d36dd patch 9.0.0426: failed flaky tests reports only start time
Problem:    Failed flaky tests reports only start time.
Solution:   Also report the end time.
2022-09-09 15:09:59 +01:00
Bram Moolenaar ae04a6049b patch 9.0.0425: autocmd test is a bit flaky on MS-Windows
Problem:    Autocmd test is a bit flaky on MS-Windows.
Solution:   Add a bit more sleeping. (Ken Takata, closes #11095)
2022-09-09 15:08:10 +01:00
ObserverOfTime 7d56cfc861 patch 9.0.0424: gitattributes files are not recognized
Problem:    gitattributes files are not recognized.
Solution:   Add patterns to match gitattributes files. (closes #11085)
2022-09-09 14:11:41 +01:00
Bram Moolenaar 9132426334 patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Problem:    "for" and "while" not recognized after :vim9cmd and :legacy.
            (Emanuele Torre)
Solution:   Recognize all the command modifiers. (closes #11087)
            Add a test to check the list of modifiers.
2022-09-09 13:27:59 +01:00
Yegappan Lakshmanan 0dc2fd307f patch 9.0.0422: not enough testing of the :all command
Problem:    Not enough testing of the :all command.
Solution:   Add more testing. (Yegappan Lakshmanan, closes #11091)
2022-09-09 11:27:59 +01:00
K.Takata 5bc13453b2 patch 9.0.0421: MS-Windows makefiles are inconsistently named
Problem:    MS-Windows makefiles are inconsistently named.
Solution:   Use consistent names. (Ken Takata, closes #11088)
2022-09-09 10:52:47 +01:00
ichizok 801217e02c Merge remote-tracking branch 'vim/master' 2022-09-09 13:43:04 +09:00
Bram Moolenaar c572ad508f patch 9.0.0420: function went missing
Problem:    Function went missing.
Solution:   Add the function back.
2022-09-08 20:49:22 +01:00
Bram Moolenaar 169003289f patch 9.0.0419: the :defer command does not check the function arguments
Problem:    The :defer command does not check the function argument count and
            types.
Solution:   Check the function arguments when adding a deferred function.
2022-09-08 19:51:45 +01:00
Bram Moolenaar 45bbaef038 patch 9.0.0418: manually deleting temp test files
Problem:    Manually deleting temp test files.
Solution:   Use the 'D' flag of writefile() and mkdir().
2022-09-08 16:39:22 +01:00
=?UTF-8?q?Cezary=20Dro=C5=BCak?= 2a4c885d54 patch 9.0.0417: Jsonnet files are not recognized
Problem:    Jsonnet files are not recognized.
Solution:   Add a pattern for Jsonnet files. (Cezary Drożak, closes #11073,
            closes #11081)
2022-09-08 14:41:48 +01:00
Bram Moolenaar 58a3cae3eb patch 9.0.0416: ml_get error when appending lines in popup window
Problem:    ml_get error when appending lines in popup window.
Solution:   Only update w_topline when w_buffer matches curbuf.
            (closes #11074)
2022-09-08 13:43:10 +01:00
K.Takata 0500e87eba patch 9.0.0415: on MS-Windows some tests are flaky
Problem:    On MS-Windows some tests are flaky.
Solution:   Add sleeps, disable swapfile, mark test as flaky. (Ken Takata,
            closes #11082)
2022-09-08 12:28:02 +01:00
Bram Moolenaar 753aead960 patch 9.0.0414: matchstr() still does not match column offset
Problem:    matchstr() still does not match column offset when done after a
            text search.
Solution:   Only use the line number for a multi-line search.  Fix the test.
            (closes #10938)
2022-09-08 12:17:06 +01:00
K.Takata b0d12e63e8 patch 9.0.0413: ASAN reports a memory leak
Problem:    ASAN reports a memory leak.
Solution:   Free the string received from the server. (Ken Takata,
            closes #11080)
2022-09-08 10:55:38 +01:00
ichizok d3ced677ae Merge remote-tracking branch 'vim/master' 2022-09-08 12:41:30 +09:00
Bram Moolenaar e5a420fb33 patch 9.0.0412: compiler warning for unused argument
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2022-09-07 21:46:56 +01:00
Bram Moolenaar 6f14da15ac patch 9.0.0411: only created files can be cleaned up with one call
Problem:    Only created files can be cleaned up with one call.
Solution:   Add flags to mkdir() to delete with a deferred function.
            Expand the writefile() name to a full path to handle changing
            directory.
2022-09-07 21:30:44 +01:00
Bram Moolenaar d7633114af patch 9.0.0410: struct member cts_lnum is unused
Problem:    Struct member cts_lnum is unused.
Solution:   Delete it.
2022-09-07 20:01:17 +01:00
ii14 7c7e1e9b98 patch 9.0.0409: #{g:x} was seen as a curly-braces expression
Problem:    #{g:x} was seen as a curly-braces expression.
Solution:   Do never see #{} as a curly-braces expression. (closes #11075)
2022-09-07 19:40:17 +01:00
K.Takata fef38d86a1 patch 9.0.0408: GUI test sometimes fails on MS-Windows
Problem:    GUI test sometimes fails on MS-Windows.
Solution:   Make sure Vim is the foreground window. (Ken Takata, closes #11077)
2022-09-07 19:03:42 +01:00
Bram Moolenaar 75a115e8d6 patch 9.0.0407: matchstr() does match column offset
Problem:    matchstr() does match column offset. (Yasuhiro Matsumoto)
Solution:   Accept line number zero. (closes #10938)
2022-09-07 18:21:24 +01:00
Bram Moolenaar 9667b2c888 patch 9.0.0406: deferred functions not invoked when partial func exits
Problem:    Deferred functions not invoked when partial func exits.
Solution:   Create a funccall_T when calling a :def function.
2022-09-07 17:28:09 +01:00
Bram Moolenaar c9c967da09 patch 9.0.0405: arguments in a partial not used by a :def function
Problem:    Arguments in a partial not used by a :def function.
Solution:   Put the partial arguments on the stack.
2022-09-07 16:48:46 +01:00
Bram Moolenaar 1540d334a0 patch 9.0.0404: crash when passing invalid arguments to assert_fails()
Problem:    Crash when passing invalid arguments to assert_fails().
Solution:   Check for NULL string.
2022-09-07 15:20:26 +01:00
Luuk van Baal fd7e60a33d patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Problem:    'equalalways' may be off when 'laststatus' is zero.
Solution:   call last_status() before win_equal(). (Luuk van Baal,
            closes #11070)
2022-09-07 14:42:49 +01:00
Brett Holman bb6c4073e7 patch 9.0.0402: javascript module files are not recoginzed
Problem:    Javascript module files are not recoginzed.
Solution:   Recognize "*.jsm" files as Javascript. (Brett Holman,
            closes #11069)
2022-09-07 14:13:31 +01:00
Philip H bd01f476ea patch 9.0.0401: CI uses older clang version
Problem:    CI uses older clang version.
Solution:   Switch from clang 14 to 15. (closes #11066)
2022-09-07 13:30:19 +01:00
K.Takata e68f1348f2 patch 9.0.0400: GUI test sometimes hangs on CI
Problem:    GUI test sometimes hangs on CI.
Solution:   Delete a test file explicitly. (Ken Takata, closes #11072)
2022-09-07 13:01:11 +01:00
ichizok 3d0d9f9a9c Merge remote-tracking branch 'vim/master' 2022-09-07 13:42:53 +09:00
Bram Moolenaar 98aff658d5 patch 9.0.0399: using :defer in expression funcref not tested
Problem:    Using :defer in expression funcref not tested.
Solution:   Add a test.  Fix uncovered problems.
2022-09-06 21:02:35 +01:00
Bram Moolenaar ca16c60f33 patch 9.0.0398: members of funccall_T are inconsistently named
Problem:    Members of funccall_T are inconsistently named.
Solution:   Use the "fc_" prefix for all members.
2022-09-06 18:57:08 +01:00
Bram Moolenaar 58779858fb patch 9.0.0397: :defer not tested with exceptions and ":qa!"
Problem:    :defer not tested with exceptions and ":qa!".
Solution:   Test :defer works when exceptions are thrown and when ":qa!" is
            used.  Invoke the deferred calls on exit.
2022-09-06 18:31:14 +01:00
matveyt 2834ebdee4 patch 9.0.0396: :findrepl does not escape '&' and '~' properly
Problem:    :findrepl does not escape '&' and '~' properly.
Solution:   Escape depending on the value of 'magic'. (closes #11067)
2022-09-06 17:00:15 +01:00
Philip H 635bb49085 patch 9.0.0395: clang warnings for function prototypes
Problem:    Clang warnings for function prototypes.
Solution:   Remove incomplete function prototypes. (closes #11068)
2022-09-06 16:31:26 +01:00
K.Takata 5903aaf7eb patch 9.0.0394: Cygwin: multibyte characters may be broken in terminal window
Problem:    Cygwin: multibyte characters may be broken in terminal window.
Solution:   Adjust how to read and write on the channel. (Ken Takata,
            closes #11063)
2022-09-06 11:26:56 +01:00
K.Takata a9480dbc8c patch 9.0.0393: signals test often fails on FreeBSD
Problem:    Signals test often fails on FreeBSD.
Solution:   Use separate files for Suspend and Resume. (Ken Takata,
            closes #11065)
2022-09-06 10:56:19 +01:00
ichizok 6739711128 Merge remote-tracking branch 'vim/master' 2022-09-06 13:48:52 +09:00
K.Takata e53a0d4409 patch 9.0.0392: inverted condition is a bit confusing
Problem:    Inverted condition is a bit confusing.
Solution:   Remove the "!" and swap the blocks. (Ken Takata)
2022-09-05 21:45:11 +01:00
Bram Moolenaar 3411265a36 patch 9.0.0391: using separate delete() call instead of writefile() 'D' flag
Problem:    Using separate delete() call instead of writefile() 'D' flag.
Solution:   Use the writefile 'D' flag.
2022-09-05 21:40:44 +01:00
Bram Moolenaar 86d87256c4 patch 9.0.0390: cannot use a partial with :defer
Problem:    Cannot use a partial with :defer.
Solution:   Add the partial arguments before the other arguments.  Disallow
            using a dictionary.
2022-09-05 21:21:25 +01:00
Bram Moolenaar ccfde4d028 patch 9.0.0389: crash when 'tagfunc' closes the window
Problem:    Crash when 'tagfunc' closes the window.
Solution:   Bail out when the window was closed.
2022-09-05 19:51:13 +01:00
Yegappan Lakshmanan 8894761daf patch 9.0.0388: the do_arg_all() function is too long
Problem:    The do_arg_all() function is too long.
Solution:   Split the function in smaller parts. (Yegappan Lakshmanan,
            closes #11062)
2022-09-05 18:27:47 +01:00
Bram Moolenaar ddf7dba96e patch 9.0.0387: repeat <ScriptCmd> mapping doesn't use right script context
Problem:    repeating a <ScriptCmd> mapping does not use the right script
            context.
Solution:   When using a mapping put <SID>{sid}; in the redo buffer.
            (closes #11049)
2022-09-05 16:53:21 +01:00
Yegappan Lakshmanan b1f471ee20 patch 9.0.0386: some code blocks are nested too deep
Problem:    Some code blocks are nested too deep.
Solution:   Bail out earlier. (Yegappan Lakshmanan, closes #11058)
2022-09-05 14:33:47 +01:00
zeertzjq c47b16a470 patch 9.0.0385: GUI: when CTRL-D is mapped in Insert mode it gets inserted
Problem:    GUI: when CTRL-D is mapped in Insert mode it gets inserted.
            (Yasuhiro Matsumoto)
Solution:   Also recognize modifier starting with CSI. (closes #11057)
2022-09-05 13:05:29 +01:00
Bram Moolenaar c7d2ff2ca0 patch 9.0.0384: Covertity still complains about using return value of getc()
Problem:    Covertity still complains about using return value of getc().
Solution:   Check for EOF.
2022-09-05 11:04:14 +01:00
Bram Moolenaar 963ab26842 patch 9.0.0383: Coverity complains about unused value
Problem:    Coverity complains about unused value.
Solution:   Use the value.
2022-09-05 10:55:27 +01:00
Bram Moolenaar 31ea6bf530 patch 9.0.0382: freeing the wrong string on failure
Problem:    Freeing the wrong string on failure.
Solution:   Adjust the argument.  Reorder the code.
2022-09-05 10:47:13 +01:00
ichizok 223b2d8e75 Merge remote-tracking branch 'vim/master' 2022-09-05 12:45:08 +09:00
Dominique Pelle b40ad4ff14 patch 9.0.0381: writefile test leaves files behind
Problem:    Writefile test leaves files behind.
Solution:   Fix the file names of files to be deleted. (Dominique Pellé,
            closes #11056)
2022-09-04 21:29:46 +01:00
Bram Moolenaar e1f3ab73bc patch 9.0.0380: deleting files in tests is a hassle
Problem:    Deleting files in tests is a hassle.
Solution:   Use the new 'D' flag of writefile().
2022-09-04 21:29:08 +01:00
Bram Moolenaar 8f7116cadd Revert part of patch merged twice 2022-09-04 18:22:16 +01:00
Bram Moolenaar fed6bdae6f patch 9.0.0380: deleting files in tests is a hassle
Problem:    Deleting files in tests is a hassle.
Solution:   Use the new 'D' flag of writefile().
2022-09-04 18:10:11 +01:00
Bram Moolenaar 0daafaa7d9 Update runtime files 2022-09-04 17:45:43 +01:00
Bram Moolenaar 806a273f3c patch 9.0.0379: cleaning up after writefile() is a hassle
Problem:    Cleaning up after writefile() is a hassle.
Solution:   Add the 'D' flag to defer deleting the written file.  Very useful
            in tests.
2022-09-04 15:40:36 +01:00
Bram Moolenaar c1eb131c9e patch 9.0.0378: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize it.
2022-09-04 13:45:15 +01:00
Bram Moolenaar eb5adf19d1 patch 9.0.0377: argument assignment does not work
Problem:    Argument assignment does not work.
Solution:   Skip over "=".
2022-09-04 13:41:37 +01:00
Yegappan Lakshmanan 6b085b9d73 patch 9.0.0376: clang warns for dead assignments
Problem:    Clang warns for dead assignments.
Solution:   Adjust the code. (Yegappan Lakshmanan, closes #11048)
2022-09-04 12:47:21 +01:00
Bram Moolenaar c8ac3a072f patch 9.0.0375: the footer feature is unused
Problem:    The footer feature is unused.
Solution:   Remove FEAT_FOOTER and code.
2022-09-04 12:29:28 +01:00
Bram Moolenaar 3c7707680f patch 9.0.0374: Coverity still complains about dropping sign of character
Problem:    Coverity still complains about dropping sign of character.
Solution:   Add intermediate variable.
2022-09-04 11:55:19 +01:00
Bram Moolenaar a5348f241b patch 9.0.0373: Coverity warns for NULL check and unused return value
Problem:    Coverity warns for NULL check and unused return value.
Solution:   Remove the NULL check, it was already checked earlier.  Add (void)
            to ignore the return value.
2022-09-04 11:42:22 +01:00
Bram Moolenaar 5fbbec180b patch 9.0.0372: MS-Windows: "%T" time format does not appear to work
Problem:    MS-Windows: "%T" time format does not appear to work.
Solution:   Use "%H:%M:%S" instead.
2022-09-03 22:08:11 +01:00
Bram Moolenaar 06fef1b2bd patch 9.0.0371: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize the variable. (John Marriott)
2022-09-03 21:53:28 +01:00
Bram Moolenaar 1d84f7608f patch 9.0.0370: cleaning up afterwards can make a function messy
Problem:    Cleaning up afterwards can make a function messy.
Solution:   Add the :defer command.
2022-09-03 21:35:53 +01:00
Bram Moolenaar 06d32a0c17 patch 9.0.0369: a failing flaky test doesn't mention the time
Problem:    A failing flaky test doesn't mention the time.
Solution:   Add the time for debugging.  Improve error message.
2022-09-03 13:58:47 +01:00
Bram Moolenaar 89083466fa patch 9.0.0368: old Coverity warning for using NULL pointer
Problem:    Old Coverity warning for using NULL pointer.
Solution:   Bail out if dictionary allocation fails.
2022-09-03 12:59:19 +01:00
Bram Moolenaar 0a6bb59f6b patch 9.0.0367: Coverity complains about dropping sign of character
Problem:    Coverity complains about dropping sign of character.
Solution:   Add explicit type cast.
2022-09-03 12:53:20 +01:00
Bram Moolenaar 6ac69ed9a2 patch 9.0.0366: cannot use import->Func() in lambda
Problem:    Cannot use import->Func() in lambda. (Israel Chauca Fuentes)
Solution:   Adjust how an expression in a lambda is parsed. (closes #11042)
2022-09-03 12:09:07 +01:00
Dominique Pelle 91a874eb88 patch 9.0.0365: file name used in test is unusual
Problem:    File name used in test is unusual.
Solution:   Rename it. (Dominique Pellé, closes #11044)
2022-09-03 10:59:32 +01:00
Yegappan Lakshmanan c99e182e1f patch 9.0.0364: clang static analyzer gives warnings
Problem:    Clang static analyzer gives warnings.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #11043)
2022-09-03 10:52:24 +01:00
Bram Moolenaar b18b496997 patch 9.0.0363: common names in test files causes tests to be flaky
Problem:    Common names in test files causes tests to be flaky.
Solution:   Use more specific names.
2022-09-02 21:55:50 +01:00
Bram Moolenaar f5724376ab patch 9.0.0362: expanding ":e %" does not work for remote files
Problem:    Expanding ":e %" does not work for remote files.
Solution:   If the "%" or "#" file does not exist add the expansion anyway.
2022-09-02 19:45:15 +01:00
Yegappan Lakshmanan 956be4678f patch 9.0.0361: removing a listener may result in a memory leak
Problem:    Removing a listener may result in a memory leak and remove
            subsequent listerns.
Solution:   Init the "prev" pointer only once. (Yegappan Lakshmanan,
            closes #11039)
2022-09-02 17:12:07 +01:00
Bram Moolenaar 35d21c6830 patch 9.0.0360: crash when invalid line number on :for is ignored
Problem:    Crash when invalid line number on :for is ignored.
Solution:   Do not check breakpoint for non-existing line.
2022-09-02 16:47:16 +01:00
Yegappan Lakshmanan 8deb2b30c7 patch 9.0.0359: error message for wrong argument type is not specific
Problem:    Error message for wrong argument type is not specific.
Solution:   Include more information in the error. (Yegappan Lakshmanan,
            closes #11037)
2022-09-02 15:15:27 +01:00
Maxim Kim 119167265e patch 9.0.0358: 'breakindent' does not indent non-lists
Problem:    'breakindent' does not indent non-lists with
            "breakindentopt=list:-1".
Solution:   Adjust indent computation. (Maxim Kim, closes #11038)
2022-09-02 14:08:53 +01:00
Bram Moolenaar cf2bb63397 patch 9.0.0357: 'linebreak' interferes with text property highlight
Problem:    'linebreak' interferes with text property highlight if there is
            syntax highlighting.
Solution:   Check the text prop attributes after combining with syntax
            attributes. (closes #11035)
2022-09-02 13:26:29 +01:00
Yasuhiro Matsumoto a02a8a4d84 patch 9.0.0356: :echowindow sets the in_echowindow flag too early
Problem:    :echowindow sets the in_echowindow flag too early.
Solution:   Set in_echowindow only when outputting the text. (Yasuhiro
            Matsumoto, closes #11033)
2022-09-02 12:16:21 +01:00
thinca 6c667bdc94 patch 9.0.0355: check for uppercase char in autoload name is wrong
Problem:    Check for uppercase char in autoload name is wrong, it checks the
            name of the script.
Solution:   Remove the check. (closes #11031)
2022-09-02 11:25:37 +01:00
ichizok 6b073a5732 Merge remote-tracking branch 'vim/master' 2022-09-02 09:59:53 +09:00
Bram Moolenaar a906e8e1ab patch 9.0.0354: MS-Windows: starting a python server for test sometimes fails
Problem:    MS-Windows: starting a python server for test sometimes fails.
Solution:   Increase the waiting time for the port.
2022-09-01 18:42:32 +01:00
Bram Moolenaar 68a635a80a patch 9.0.0353: missing entry in switch
Problem:    Missing entry in switch.
Solution:   Add ISN_ECHOWINDOW.
2022-09-01 17:26:17 +01:00
Bram Moolenaar 3b474dcd30 patch 9.0.0352: using :echowindow in a timer clears part of message
Problem:    using :echowindow in a timer clears part of message
Solution:   Do not use msg_clr_eos().
2022-09-01 17:01:32 +01:00
Bram Moolenaar b5b4f61cf1 patch 9.0.0351: message window may obscure the command line
Problem:    Message window may obscure the command line.
Solution:   Reduce the maximum height of the message window.
2022-09-01 16:43:17 +01:00
Bram Moolenaar 7d7ad7b2e8 patch 9.0.0350: :echowindow does not work in a compiled function
Problem:    :echowindow does not work in a compiled function.
Solution:   Handle the expression at compile time.
2022-09-01 16:00:53 +01:00
Bram Moolenaar be807d5824 patch 9.0.0349: filetype of *.sil files not well detected
Problem:    Filetype of *.sil files not well detected.
Solution:   Inspect the file contents to guess the filetype.
2022-09-01 15:01:25 +01:00
Bram Moolenaar 36eb14fa3e patch 9.0.0348: MS-Windows: GUI mouse move event test is flaky
Problem:    MS-Windows: GUI mouse move event test is flaky.
Solution:   Wait for a little while for the first move event.
2022-09-01 14:38:01 +01:00
K.Takata df5320c439 patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Problem:    MS-Windows: cannot set cursor shape in Windows Terminal.
Solution:   Make cursor shape work with Windows Terminal. (Ken Takata,
            closes #11028, closes #6576)
2022-09-01 13:20:16 +01:00
zeertzjq d3de178e53 patch 9.0.0346: :horizontal modifier not fully supported
Problem:    :horizontal modifier not fully supported.
Solution:   Also use :horizontal for completion and user commands.
            (closes #11025)
2022-09-01 12:58:52 +01:00
Bram Moolenaar d83392a43a patch 9.0.0345: error message for list argument could be clearer
Problem:    Error message for list argument could be clearer.
Solution:   Include the argument number. (Yegappan Lakshmanan, closes #11027)
2022-09-01 12:22:46 +01:00
Yasuhiro Matsumoto e42c8dae32 patch 9.0.0344: MS-Windows: background color wrong in Console
Problem:    MS-Windows: background color wrong in Console.
Solution:   Figure out the default console background color. (Yasuhiro
            Matsumoto, issue #10310)
2022-09-01 11:31:45 +01:00
ichizok 820f30d181 Merge remote-tracking branch 'vim/master' 2022-09-01 14:47:32 +09:00
Bram Moolenaar 5d09a401ec patch 9.0.0343: ColorScheme autocommand triggered when colorscheme not found
Problem:    ColorScheme autocommand triggered when colorscheme is not found.
            (Romain Lafourcade)
Solution:   Only trigger ColorScheme when loading the colorscheme succeeds.
            (closes #11024)
2022-08-31 21:17:10 +01:00
Bram Moolenaar 21c3a80a7f patch 9.0.0342: ":wincmd =" equalizes in two directions
Problem:    ":wincmd =" equalizes in two directions.
Solution:   Make ":vertical wincmd =" equalize vertically only and
            ":horizontal wincmd =" equalize horizontally only.
2022-08-31 17:49:14 +01:00
zeertzjq 92a3d20682 patch 9.0.0341: mapset() does not restore <Nop> mapping properly
Problem:    mapset() does not restore <Nop> mapping properly.
Solution:   Use an empty string for <Nop>. (closes #11022)
2022-08-31 16:40:17 +01:00
Bram Moolenaar a2a8973e51 patch 9.0.0340: the 'cmdheight' zero support causes too much trouble
Problem:    The 'cmdheight' zero support causes too much trouble.
Solution:   Revert support for 'cmdheight' being zero.
2022-08-31 14:46:18 +01:00
Bram Moolenaar a63ad78ed3 patch 9.0.0339: no check if the return value of XChangeGC() is NULL
Problem:    No check if the return value of XChangeGC() is NULL.
Solution:   Only use the return value when it is not NULL. (closes #11020)
2022-08-31 12:01:54 +01:00
Bram Moolenaar 9ba6194d4c patch 9.0.0338: return value of list_append_list() not always checked
Problem:    Return value of list_append_list() not always checked.
Solution:   Check return value and handle failure.
2022-08-31 11:25:06 +01:00
ichizok 214f089edb Merge remote-tracking branch 'vim/master' 2022-08-31 13:17:32 +09:00
Bram Moolenaar b22653a98e patch 9.0.0337: flicker when resetting cmdline_row after updating the screen
Problem:    Flicker when resetting cmdline_row after updating the screen.
Solution:   Do not update cmdline_row. (issue #11017)
2022-08-30 22:24:26 +01:00
Bram Moolenaar 61abe7d8f8 patch 9.0.0336: tests are flaky because of using a common file name
Problem:    Tests are flaky because of using a common file name.
Solution:   Rename files and directories to be more unique.
2022-08-30 21:46:08 +01:00
Bram Moolenaar 9b03d3e75b Update runtime files 2022-08-30 20:26:34 +01:00
Yegappan Lakshmanan 04c4c5746e patch 9.0.0335: checks for Dictionary argument often give a vague error
Problem:    Checks for Dictionary argument often give a vague error message.
Solution:   Give a useful error message. (Yegappan Lakshmanan, closes #11009)
2022-08-30 19:48:24 +01:00
Dominique Pelle f240395fca patch 9.0.0334: test does not properly clean up
Problem:    Test does not properly clean up.
Solution:   Fix typo in argument of delete(). (Dominique Pellé, closes #11010)
2022-08-30 18:42:16 +01:00
Bram Moolenaar 171a1607f4 patch 9.0.0333: method test fails
Problem:    Method test fails.
Solution:   Adjust test for items() now working on string.
2022-08-30 18:26:19 +01:00
zeertzjq 9c8f94636b patch 9.0.0332: overwrite check may block BufWriteCmd
Problem:    Overwrite check may block BufWriteCmd.
Solution:   Do not use overwrite check when 'buftype' is "acwrite".
            (closes #11011)
2022-08-30 18:17:15 +01:00
Bram Moolenaar 3e518a8ec7 patch 9.0.0331: cannot use items() on a string
Problem:    Cannot use items() on a string.
Solution:   Make items() work on a string. (closes #11016)
2022-08-30 17:45:33 +01:00
Bram Moolenaar f92cfb1acc patch 9.0.0330: method tests fail
Problem:    Method tests fail.
Solution:   Adjust for change of items().
2022-08-30 16:40:45 +01:00
Bram Moolenaar 24735f2a19 patch 9.0.0329: ":highlight" hangs when 'cmdheight' is zero
Problem:    ":highlight" hangs when 'cmdheight' is zero.
Solution:   Add to msg_col when using the message window. (closes #11014)
2022-08-30 15:44:22 +01:00
Bram Moolenaar e27d6e6382 patch 9.0.0328: OLD_DIGRAPHS is unused
Problem:    OLD_DIGRAPHS is unused.
Solution:   Remove OLD_DIGRAPHS.  Also drop HPUX_DIGRAPHS.
2022-08-30 15:05:30 +01:00
Bram Moolenaar 976f859763 patch 9.0.0327: items() does not work on a list
Problem:    items() does not work on a list. (Sergey Vlasov)
Solution:   Make items() work on a list. (closes #11013)
2022-08-30 14:34:52 +01:00
Shougo Matsushita 0e412be00f patch 9.0.0326: some changes for cmdheight=0 are not needed
Problem:    Some changes for cmdheight=0 are not needed.
Solution:   Revert resize behavior if height is greater than the available
            space. (Shougo Matsushita, closes #11008)
2022-08-30 11:54:21 +01:00
ichizok f4deb2eb43 Merge remote-tracking branch 'vim/master' 2022-08-30 13:52:39 +09:00
Bram Moolenaar 816736bcc7 patch 9.0.0325: MS-Windows: completion test fails
Problem:    MS-Windows: completion test fails.
Solution:   Adjust directory prefix.
2022-08-29 23:01:45 +01:00
Bram Moolenaar 15cae5c9ca patch 9.0.0324: MS-Windows: resolve() test fails
Problem:    MS-Windows: resolve() test fails.
Solution:   Revert renaming the directory.
2022-08-29 22:51:38 +01:00
Bram Moolenaar 3b0d70f4ff patch 9.0.0323: using common name in tests leads to flaky tests
Problem:    Using common name in tests leads to flaky tests.
Solution:   Rename files and directories to be more specific.
2022-08-29 22:31:20 +01:00
Bram Moolenaar 4f1b083be4 patch 9.0.0322: crash when no errors and 'quickfixtextfunc' is set
Problem:    Crash when no errors and 'quickfixtextfunc' is set.
Solution:   Do not handle errors if there aren't any.
2022-08-29 20:45:16 +01:00
Bram Moolenaar 37fef16c22 patch 9.0.0321: cannot use the message popup window directly
Problem:    Cannot use the message popup window directly.
Solution:   Add ":echowindow".
2022-08-29 18:16:32 +01:00
zeertzjq 54acb90d9e patch 9.0.0320: command line type of CmdlineChange differs from getcmdtype()
Problem:    Command line type of CmdlineChange differs from getcmdtype().
Solution:   Use the same type. (closes #11005)
2022-08-29 16:21:25 +01:00
Maxim Kim d5c8f11905 patch 9.0.0319: Godot shader files are not recognized
Problem:    Godot shader files are not recognized.
Solution:   Add patterns for "gdshader". (Maxim Kim, closes #11006)
2022-08-29 15:28:53 +01:00
Bram Moolenaar 13608d851a patch 9.0.0318: clearing screen causes flicker
Problem:    Clearing screen causes flicker.
Solution:   Do not clear but redraw in more cases.  Add () to "wait_return".
2022-08-29 15:06:50 +01:00
Bram Moolenaar b13d3405ff patch 9.0.0317: when updating the whole screen a popup may not be redrawn
Problem:    When updating the whole screen a popup may not be redrawn.
Solution:   Mark the screen and windows for redraw also when not clearing.
            Also mark popup windows for redraw.
2022-08-29 13:44:28 +01:00
Bram Moolenaar f73e5ba56f patch 9.0.0316: screen flickers when 'cmdheight' is zero
Problem:    Screen flickers when 'cmdheight' is zero.
Solution:   Redraw over existing text instead of clearing.
2022-08-29 12:41:06 +01:00
Bram Moolenaar 309c4e0ed7 patch 9.0.0315: shell command is displayed in message window
Problem:    Shell command is displayed in message window.
Solution:   Do not echo the shell command in the message window.
2022-08-29 12:23:39 +01:00
Alessandro Pezzoni bf26941f40 patch 9.0.0314: VDM files are not recognized
Problem:    VDM files are not recognized.
Solution:   Add patterns for VDM files. (Alessandro Pezzoni, closes #11004)
2022-08-29 11:57:30 +01:00
Bram Moolenaar e7cda97b6b patch 9.0.0313: using common name in tests leads to flaky tests
Problem:    Using common name in tests leads to flaky tests.
Solution:   Rename files and directories to be more specific.
2022-08-29 11:02:59 +01:00
ichizok d31ec949e5 Merge remote-tracking branch 'vim/master' 2022-08-29 13:12:20 +09:00
Bram Moolenaar 98d1069a9c patch 9.0.0312: test for cmdheight zero fails
Problem:    Test for cmdheight zero fails.
Solution:   Do not close the messages window for CTRL-C.
2022-08-29 00:08:39 +01:00
Bram Moolenaar 926218b5da patch 9.0.0311: test for hit-Enter prompt fails
Problem:    Test for hit-Enter prompt fails.
Solution:   Only reset cmdline_row when 'cmdheight' is zero.
2022-08-28 23:36:52 +01:00
Bram Moolenaar b849c82851 patch 9.0.0310: output of :messages dissappears when cmdheight is zero
Problem:    Output of :messages dissappears when cmdheight is zero.
Solution:   Do not use the messages window for :messages.  Make Esc close the
            messages window.
2022-08-28 22:46:21 +01:00
Bram Moolenaar 7a99da43d1 patch 9.0.0309: invalid memory access when cmdheight is zero
Problem:    Invalid memory access when cmdheight is zero.
Solution:   Check index in w_lines is smaller than Rows.
2022-08-28 22:21:01 +01:00
Bram Moolenaar 33a5dd8b23 patch 9.0.0308: when cmdheight is zero the attention prompt doesn't show
Problem:    When cmdheight is zero the attention prompt doesn't show.
Solution:   Do not use the message window for a prompt.
2022-08-28 22:17:50 +01:00
Bram Moolenaar 134b86553c patch 9.0.0307: :echomsg doesn't work properly with cmdheight=0
Problem:    :echomsg doesn't work properly with cmdheight=0.
Solution:   Improve scrolling and displaying.
2022-08-28 21:36:43 +01:00
Bram Moolenaar f2fb54f641 patch 9.0.0306: buffer write message is two lines in message popup window
Problem:    Buffer write message is two lines in message popup window.
Solution:   Overwrite message if "msg_scroll" is off.
2022-08-28 20:58:51 +01:00
Philip H 533c306921 patch 9.0.0305: CI lists useless deprecation warnings
Problem:    CI lists useless deprecation warnings.
Solution:   Ignore deprecation warnings. (closes #11003)
2022-08-28 19:41:36 +01:00
zeertzjq 670ab0334b patch 9.0.0304: WinScrolled is not triggered when only skipcol changes
Problem:    WinScrolled is not triggered when only skipcol changes.
Solution:   Add w_last_skipcol and use it. (closes #10998)
2022-08-28 19:16:15 +01:00
Yegappan Lakshmanan 2f892d8663 patch 9.0.0303: it is not easy to get information about a script
Problem:    It is not easy to get information about a script.
Solution:   Make getscriptinf() return the version.  When selecting a specific
            script return functions and variables. (Yegappan Lakshmanan,
            closes #10991)
2022-08-28 18:52:10 +01:00
Philip H 75e9a6693e patch 9.0.0302: CI for Coverity is bothered by deprecation warnings
Problem:    CI for Coverity is bothered by deprecation warnings.
Solution:   Ignore deprecation warnings. (closes #11002)
2022-08-28 17:59:05 +01:00
Bram Moolenaar 878e1d25a0 patch 9.0.0301: the message window popup is delayed after an error message
Problem:    The message window popup is delayed after an error message.
Solution:   Do not set emsg_on_display when using the message window.
2022-08-28 17:53:23 +01:00
Bram Moolenaar a85e4db978 patch 9.0.0300: 'cpoptions' tests are flaky
Problem:    'cpoptions' tests are flaky.
Solution:   Use a different file name for each test.
2022-08-28 17:44:20 +01:00
Yegappan Lakshmanan 25f1e55562 patch 9.0.0299: error messages for setcmdline() could be better
Problem:    Error messages for setcmdline() could be better.
Solution:   Use more specific error messages. (Yegappan Lakshmanan,
            closes #10995)
2022-08-28 17:25:04 +01:00
Wilhelm Payne 8934ec027d patch 9.0.0298: compiler warning for size_t to int conversion
Problem:    Compiler warning for size_t to int conversion.
Solution:   Add a type cast. (Wilhelm Payne, closes #11000)
2022-08-28 17:08:18 +01:00
Bram Moolenaar c8bf59e9b2 patch 9.0.0297: cursor position wrong after right aligned virtual text
Problem:    Cursor position wrong after right aligned virtual text. (Iizuka
            Masashi)
Solution:   Take the width of the column offset into account. (closes #10997)
            Also fix virtual text positioning.
2022-08-28 16:39:22 +01:00
Bram Moolenaar 35a4fbc5d0 patch 9.0.0296: message in popup is shortened unnecessary
Problem:    Message in popup is shortened unnecessary.
Solution:   Do not use 'showcmd' and 'ruler' for a message in the popup.
            Set the timer when unhiding the message popup.
2022-08-28 14:39:53 +01:00
Bram Moolenaar 00d4ceecca patch 9.0.0295: GUI drop files test sometimes fails
Problem:    GUI drop files test sometimes fails.
Solution:   Mark the test as flaky.
2022-08-28 13:38:43 +01:00
Bram Moolenaar 43568648df patch 9.0.0294: crash when 'cmdheight' is 0 and popup_clear() used
Problem:    Crash when 'cmdheight' is 0 and popup_clear() used.
Solution:   Reset "message_win" when the message popup is cleared.  Close the
            popup when 'cmdheight' is non-zero.  Add a screendump test.
2022-08-28 13:02:45 +01:00
Bram Moolenaar b0509c542e patch 9.0.0293: messages window not hidden when starting a command line
Problem:    Messages window not hidden when starting a command line.
Solution:   Hide the messages window. (closes #10996)
2022-08-28 12:06:21 +01:00
Bram Moolenaar d1f8fd5907 patch 9.0.0292: test causes another test to fail
Problem:    Test causes another test to fail.
Solution:   Redraw to remove the popup window
2022-08-27 22:51:25 +01:00
Bram Moolenaar efdfb0c5ee patch 9.0.0291: test failing
Problem:    Test failing.
Solution:   Run test with cmdheight=0 last.
2022-08-27 22:21:07 +01:00
Bram Moolenaar d54af2e550 patch 9.0.0290: compiler warning for variable set but not used
Problem:    Compiler warning for variable set but not used.
Solution:   Add #ifdef.
2022-08-27 22:05:13 +01:00
Bram Moolenaar beedd0a266 patch 9.0.0289: invalid memory write
Problem:    Invalid memory write.
Solution:   Do not put NUL in a static string.
2022-08-27 21:52:52 +01:00
Bram Moolenaar 9198de3ae2 patch 9.0.0288: when 'cmdheight' is zero some messages are not displayed
Problem:    When 'cmdheight' is zero some messages are not displayed.
Solution:   Use a popup notification window.
2022-08-27 21:30:03 +01:00
Yegappan Lakshmanan aebc6ef7cd patch 9.0.0287: Irix systems no longer exist
Problem:    Irix systems no longer exist.
Solution:   Remove references to Irix. (Yegappan Lakshmanan, closes #10994)
2022-08-27 21:24:26 +01:00
Yegappan Lakshmanan 6d24a51b94 patch 9.0.0286: using freed memory when location list changed in autocmd
Problem:    Using freed memory when location list changed in autocmd.
Solution:   Return QF_ABORT and handle it. (Yegappan Lakshmanan,
            closes #10993)
2022-08-27 20:59:57 +01:00
Shougo Matsushita 07ea5f1509 patch 9.0.0285: it is not easy to change the command line from a plugin
Problem:    It is not easy to change the command line from a plugin.
Solution:   Add setcmdline(). (Shougo Matsushita, closes #10869)
2022-08-27 12:22:25 +01:00
Bram Moolenaar 5ff595d9db patch 9.0.0284: using static buffer for multiple completion functions
Problem:    Using static buffer for multiple completion functions.
Solution:   Use one buffer in expand_T.
2022-08-26 22:36:41 +01:00
bfredl af9a6002e0 patch 9.0.0283: cannot complete "syn list @cluster"
Problem:    Cannot complete "syn list @cluster".
Solution:   Recognize and handle "list @". (Björn Linse, closes #10990)
2022-08-26 21:58:31 +01:00
Bram Moolenaar 0f61838636 patch 9.0.0282: a nested timout stops the previous timeout
Problem:    A nested timout stops the previous timeout.
Solution:   Ignore any nested timeout.
2022-08-26 21:33:04 +01:00
Bram Moolenaar 58dcbf1c65 patch 9.0.0281: build failure without the +eval feature
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.
2022-08-26 19:58:49 +01:00
Bram Moolenaar 7dd543246a Update runtime files 2022-08-26 18:01:12 +01:00
Bram Moolenaar 2ee347fbc0 patch 9.0.0280: the builtin termcap list depends on the version
Problem:    The builtin termcap list depends on the version.
Solution:   Always include all termcap entries.  Remove duplicate lines.
2022-08-26 17:53:44 +01:00
Bram Moolenaar 5416232707 patch 9.0.0279: the tiny version has the popup menu but not 'wildmenu'
Problem:    The tiny version has the popup menu but not 'wildmenu'.
Solution:   Graduate the wildmenu feature.
2022-08-26 16:58:51 +01:00
Bram Moolenaar 074fbd4131 patch 9.0.0278: the +wildignore feature is nearly always available
Problem:    The +wildignore feature is nearly always available.
Solution:   Graduate +wildignore for consistency.
2022-08-26 16:41:14 +01:00
Philip H c361842f14 patch 9.0.0277: Coverity CI: update-alternatives not needed with Ubuntu 20.04
Problem:    Coverity CI: update-alternatives not needed with Ubuntu 20.04.
Solution:   Remove update-alternatives for Lua. (closes #10987)
2022-08-26 15:48:55 +01:00
zeertzjq 93f72cc119 patch 9.0.0276: 'buftype' values not sufficiently tested
Problem:    'buftype' values not sufficiently tested.
Solution:   Add and extend tests with 'buftype' values. (closes #10988)
2022-08-26 15:34:52 +01:00
Bram Moolenaar a9b5b85068 patch 9.0.0275: BufEnter not triggered when using ":edit" in "nofile" buffer
Problem:    BufEnter not triggered when using ":edit" in "nofile" buffer.
Solution:   Let readfile() return NOTDONE. (closes #10986)
2022-08-26 13:16:20 +01:00
Bram Moolenaar c312619f7c patch 9.0.0274: netrw plugin does not show remote files
Problem:    Netrw plugin does not show remote files.
Solution:   Do read a file when 'buftype' is "acwrite". (closes #10983)
2022-08-26 12:58:17 +01:00
Bram Moolenaar d55f9ef8b2 patch 9.0.0273: Konsole termresponse not recognized
Problem:    Konsole termresponse not recognized.
Solution:   Handle Konsole like libvterm, set 'ttymouse' to "sgr".
            (closes #10990)
2022-08-26 12:26:07 +01:00
Bram Moolenaar b1d2c8116c patch 9.0.0272: BufReadCmd not triggered when loading a "nofile" buffer
Problem:    BufReadCmd not triggered when loading a "nofile" buffer. (Maxim
            Kim)
Solution:   Call readfile() but bail out before reading a file.
            (closes #10983)
2022-08-26 11:55:01 +01:00
zeertzjq 9b7d2a9596 patch 9.0.0271: using INIT() in non-header files
Problem:    Using INIT() in non-header files.
Solution:   Remove INIT(). (closes #10981)
2022-08-26 10:33:54 +01:00
ichizok 708151d6a4 Merge remote-tracking branch 'vim/master' 2022-08-26 13:26:09 +09:00
Bram Moolenaar 2bd9dbc19f patch 9.0.0270: some values of 'path' and 'tags' invalid in the tiny version
Problem:    Some values of 'path' and 'tags' do not work in the tiny version.
Solution:   Graduate the +path_extra feature.
2022-08-25 18:12:06 +01:00
Yegappan Lakshmanan 520f6ef60a patch 9.0.0269: getscriptinfo() does not include the version
Problem:    getscriptinfo() does not include the version.  Cannot select
            entries by script name.
Solution:   Add the "version" item and the "name" argument. (Yegappan
            Lakshmanan, closes #10962)
2022-08-25 17:40:40 +01:00
Bram Moolenaar 0166e398d1 patch 9.0.0268: build error without the +eval feature
Problem:    Build error without the +eval feature.
Solution:   Remove #ifdef.
2022-08-25 16:30:01 +01:00
Philip H 930830a68b patch 9.0.0267: Coverity workflow still uses Ubuntu 18.04
Problem:    Coverity workflow still uses Ubuntu 18.04.
Solution:   Use Ubuntu 20.04
2022-08-25 16:24:56 +01:00
Bram Moolenaar 340dafd155 patch 9.0.0266: compiler warning for unused argument
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2022-08-25 16:16:45 +01:00
Bram Moolenaar f80f40a55c patch 9.0.0265: no good reason why the "gf" command isn't in the tiny version
Problem:    No good reason why the "gf" command is not in the tiny version.
Solution:   Graduate the file_in_path feature.
2022-08-25 16:02:23 +01:00
Philip H b213703f35 patch 9.0.0264: CI still runs on Ubuntu 18.04
Problem:    CI still runs on Ubuntu 18.04.
Solution:   Run CI on Ubuntu 20.04. (closes #10582)
2022-08-25 15:21:24 +01:00
Bram Moolenaar 6d4b2f54df patch 9.0.0263: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Make some functions always available.
2022-08-25 15:11:15 +01:00
Bram Moolenaar 2e6dcbc445 patch 9.0.0262: build failure without the +quickfix feature
Problem:    Build failure without the +quickfix feature.
Solution:   Add #ifdef.
2022-08-25 13:54:16 +01:00
Bram Moolenaar 2eddbacd6d patch 9.0.0261: bufload() reads a file even if the name is not a file name
Problem:    bufload() reads a file even if the name is not a file name. (Cyker
            Way)
Solution:   Do not read the file when the buffer name is not a file name.
            (closes #10975)
2022-08-25 12:45:21 +01:00
ichizok 7f13c13c11 Merge remote-tracking branch 'vim/master' 2022-08-25 18:03:39 +09:00
Bram Moolenaar d6c67629ed patch 9.0.0260: using freed memory when using 'quickfixtextfunc' recursively
Problem:    Using freed memory when using 'quickfixtextfunc' recursively.
Solution:   Do not allow for recursion.
2022-08-24 20:07:22 +01:00
Bram Moolenaar 80525751c5 patch 9.0.0259: crash with mouse click when not initialized
Problem:    Crash with mouse click when not initialized.
Solution:   Check TabPageIdxs[] is not NULL.
2022-08-24 19:27:45 +01:00
Bram Moolenaar fd999452ad Update runtime files 2022-08-24 18:30:14 +01:00
K.Takata 44b9abb150 patch 9.0.0258: MS-Windows installer skips syntax/shared
Problem:    MS-Windows installer skips syntax/shared.
Solution:   Use "File /r" in the installer script. (Ken Takata, closes #10972)
2022-08-24 18:08:00 +01:00
Bram Moolenaar 7ea9fcb48d patch 9.0.0257: "->" in ":scriptnames" output not tested yet
Problem:    "->" in ":scriptnames" output not tested yet.
Solution:   Add a check.
2022-08-24 17:46:12 +01:00
Bram Moolenaar 5214b29461 patch 9.0.0256: compiler warning for uninitialized variables
Problem:    Compiler warning for uninitialized variables.
Solution:   Initilize the variables.
2022-08-24 17:32:35 +01:00
Bram Moolenaar 0af2ecfe44 patch 9.0.0255: build failure without the eval feature
Problem:    Build failure without the eval feature.
Solution:   Add #ifdef.
2022-08-24 17:05:56 +01:00
zeertzjq 5fb3aabc2b patch 9.0.0254: typo in function name
Problem:    Typo in function name.
Solution:   Rename the function. (closes #10971)
2022-08-24 16:48:23 +01:00
Bram Moolenaar 753885b6c5 patch 9.0.0253: a symlink to an autoload script results in two entries
Problem:    A symlink to an autoload script results in two entries in the list
            of scripts, items expected in one are actually in the other.
Solution:   Have one script item refer to the actually sourced one.
            (closes #10960)
2022-08-24 16:30:36 +01:00
Bram Moolenaar f5240b96f7 patch 9.0.0252: cursor in wrong place after virtual text
Problem:    Cursor in wrong place after virtual text.
Solution:   Do not change the length of a virtual text property.
            (closes #10964)
2022-08-24 12:24:37 +01:00
huang06 762df0477c patch 9.0.0251: test output shows up in git
Problem:    Test output shows up in git.
Solution:   Ignore the "failed" directory. (Yao-Ching Huang, closes #10969)
2022-08-24 11:26:16 +01:00
Bram Moolenaar dde77a7c4d patch 9.0.0250: slightly inconsistent error messages
Problem:    Slightly inconsistent error messages.
Solution:   Make it "Using a Float". (closes #10959)
2022-08-23 21:41:15 +01:00
Bram Moolenaar 3a7ad904d2 patch 9.0.0249: no test for what 9.0.0234 fixes
Problem:    No test for what 9.0.0234 fixes.
Solution:   Add a test. (issue #10950)
2022-08-23 19:54:27 +01:00
zeertzjq a247142ae4 patch 9.0.0248: duplicate code in finding a script in the execution stack
Problem:    Duplicate code in finding a script in the execution stack.
Solution:   Reduce duplicate code. (closes #10961)
2022-08-23 19:26:05 +01:00
Bram Moolenaar f396ce83ee patch 9.0.0247: cannot add padding to virtual text without highlight
Problem:    Cannot add padding to virtual text without highlight.
Solution:   Add the "text_padding_left" argument. (issue #10906)
2022-08-23 18:39:37 +01:00
ichizok b074cc86bc Merge remote-tracking branch 'vim/master' 2022-08-23 12:49:38 +09:00
Bram Moolenaar adce965162 patch 9.0.0246: using freed memory when 'tagfunc' deletes the buffer
Problem:    Using freed memory when 'tagfunc' deletes the buffer.
Solution:   Make a copy of the tag name.
2022-08-22 16:35:45 +01:00
Bram Moolenaar 471c0fa3ee patch 9.0.0245: mechanism to prevent recursive screen updating is incomplete
Problem:    Mechanism to prevent recursive screen updating is incomplete.
Solution:   Add "redraw_not_allowed" and set it in build_stl_str_hl().
            (issue #10952)
2022-08-22 15:19:16 +01:00
Yegappan Lakshmanan f768c3d19c patch 9.0.0244: cannot easily get the list of sourced scripts
Problem:    Cannot easily get the list of sourced scripts.
Solution:   Add the getscriptinfo() function. (Yegappan Lakshmanan,
            closes #10957)
2022-08-22 13:15:13 +01:00
Bram Moolenaar e89aeed43e patch 9.0.0243: text properties "below" sort differently on MS-Windows
Problem:    Text properties "below" sort differently on MS-Windows.
Solution:   Use the ID as a tie breaker. (closes #10958)
2022-08-22 13:00:16 +01:00
Bram Moolenaar 171c683237 patch 9.0.0242: "make install" still fails
Problem:    "make install" still fails. (Wilhelm Payne)
Solution:   Also add the directory to installrtbase. (Dominique Pellé)
2022-08-21 22:20:20 +01:00
Bram Moolenaar 448f72a78a patch 9.0.0241: "make install" does not install shared syntax file
Problem:    "make install" does not install shared syntax file. (James McCoy)
Solution:   Install and uninstall the shared syntax files. (closes #10956)
2022-08-21 21:05:08 +01:00
Bram Moolenaar 6669de1b23 patch 9.0.0240: crash when using ":mkspell" with an empty .dic file
Problem:    Crash when using ":mkspell" with an empty .dic file.
Solution:   Check for an empty word tree.
2022-08-21 20:33:47 +01:00
Bram Moolenaar 8884916043 patch 9.0.0239: build failure without the +wildmenu feature
Problem:    Build failure without the +wildmenu feature.
Solution:   Move parenthesis.
2022-08-21 19:08:50 +01:00
Bram Moolenaar 300175fd7f patch 9.0.0238: Shift-Tab shows matches on cmdline when 'wildmenu' is off
Problem:    Shift-Tab shows matches on cmdline when 'wildmenu' is off.
Solution:   Only show matches when 'wildmode' contains "list". (closes #10951)
2022-08-21 18:38:21 +01:00
Evan Miller e24a14118c patch 9.0.0237: Mac: cannot build if dispatch.h is not available
Problem:    Mac: cannot build if dispatch.h is not available.
Solution:   Add #ifdef. (Evan Miller, closes #10954)
2022-08-21 17:24:00 +01:00
zeertzjq b82a2ab8ad patch 9.0.0236: popup menu not removed when 'wildmenu' reset while visible
Problem:    Popup menu not removed when 'wildmenu' reset while it is visible.
Solution:   Do not check p_wmnu, only pum_visible(). (closes #10953)
2022-08-21 14:33:57 +01:00
Bram Moolenaar 474ad390cc patch 9.0.0235: 'autoshelldir' does not work with chunked respose
Problem:    'autoshelldir' does not work with chunked respose.
Solution:   Collect chunks before parsing OSC 7. (closes #10949)
2022-08-21 11:37:17 +01:00
Bram Moolenaar 8d69637133 patch 9.0.0234: cannot make difference between :normal end and argument char
Problem:    Cannot make difference between the end of :normal and a character
            in its argument.
Solution:   Add the "typebuf_was_empty" flag. (closes #10950)
2022-08-21 10:40:07 +01:00
Ben Jackson a7704226a2 patch 9.0.0233: removing multiple text properties takes many calls
Problem:    Removing multiple text properties takes many calls.
Solution:   Pass a list to prop_remove(). (Ben Jackson, closes #10945)
2022-08-20 20:54:51 +01:00
Bram Moolenaar 38ea5bda2b patch 9.0.0232: test with BufNewFile autocmd is flaky
Problem:    Test with BufNewFile autocmd is flaky.
Solution:   Use another file name.
2022-08-20 20:09:14 +01:00
Bram Moolenaar 57e95179ab patch 9.0.0231: expanding "**" may loop forever with directory links
Problem:    Expanding "**" may loop forever with directory links.
Solution:   Check for being interrupted. (closes #10946)
2022-08-20 19:26:14 +01:00
Bram Moolenaar 2984ed31d9 patch 9.0.0230: no error for comma missing in list in :def function
Problem:    No error for comma missing in list in :def function.
Solution:   Check for missing comma. (closes #10943)
2022-08-20 14:51:17 +01:00
Bram Moolenaar 62e0e2e54b patch 9.0.0229: Vim9: error message for missing type is not clear
Problem:    Vim9: error message for missing type is not clear.
Solution:   Mention the context. (issue #10944)
2022-08-20 12:07:58 +01:00
Yee Cheng Chin 9817a7a102 Merge pull request #1274 from ychin/fix-github-close-stale-issue-version
Fix GitHub action to close stale issue not working
2022-08-20 04:05:31 -07:00
Yee Cheng Chin 085d013557 Fix GitHub action to close stale issue not working
I previously added the use of the "close-issue-reason" parameter but
it's only available in v5, whereas I was pointing to v4.
2022-08-20 04:04:15 -07:00
Bram Moolenaar e80086446c Update runtime files 2022-08-19 17:15:35 +01:00
Bram Moolenaar 13ed494bb5 patch 9.0.0228: crash when pattern looks below the last line
Problem:    Crash when pattern looks below the last line.
Solution:   Consider invalid lines to be empty. (closes #10938)
2022-08-19 13:59:25 +01:00
Bram Moolenaar 213e70e284 patch 9.0.0227: cannot read error message when abort() is called
Problem:    Cannot read error message when abort() is called.
Solution:   Output a newline before calling abort().
2022-08-19 13:17:21 +01:00
ichizok 975733ef49 Merge pull request #1269 from ichizok/fix/ci-macos-12
CI: Update environments to macos-11 and macos-12
2022-08-19 15:43:25 +09:00
Bram Moolenaar 9e043181ad patch 9.0.0226: job_start() test may fail under valgrind
Problem:    job_start() test may fail under valgrind.
Solution:   Wait until the job is running.
2022-08-18 15:22:09 +01:00
Bram Moolenaar 91c7cbfe31 patch 9.0.0225: using freed memory with multiple line breaks in expression
Problem:    Using freed memory with multiple line breaks in expression.
Solution:   Free eval_tofree later.
2022-08-18 13:28:31 +01:00
ichizok 1fb0cd2229 Fix unused-but-set-variable error when built on 12.x
Add `netbeans_draw_multisign_indicator()` stub
2022-08-18 17:34:49 +09:00
ichizok b033b481fa Fix unused-but-set-variable error when built on 12.x
Add `timeout` argument to serverReadReply()
2022-08-18 17:34:49 +09:00
ichizok aac7dcd4f7 CI: Update environments to macos-11 and macos-12
Fix python path
2022-08-18 17:34:49 +09:00
Bram Moolenaar 4875d6ab06 patch 9.0.0224: Using NULL pointer when skipping compiled code
Problem:    Using NULL pointer when skipping compiled code.
Solution:   Check for skipping.
2022-08-17 15:55:51 +01:00
zeertzjq 5fd6ab820b patch 9.0.0223: typo in diffmode test
Problem:    Typo in diffmode test.
Solution:   Fix the typo. (closes #10932)
2022-08-17 12:09:45 +01:00
ichizok 7d8dc726ae Merge remote-tracking branch 'vim/master' 2022-08-17 17:21:41 +09:00
Bram Moolenaar 887748742d patch 9.0.0222: no good reason why text objects are only in larger builds
Problem:    No good reason why text objects are only in larger builds.
Solution:   Graduate +textobjects.
2022-08-16 20:24:29 +01:00
Bram Moolenaar 1889f499a4 patch 9.0.0221: accessing freed memory if compiling nested function fails
Problem:    Accessing freed memory if compiling nested function fails.
Solution:   Mess up the variable name so that it won't be found.
2022-08-16 19:34:44 +01:00
Bram Moolenaar f6d39c31d2 patch 9.0.0220: invalid memory access with for loop over NULL string
Problem:    Invalid memory access with for loop over NULL string.
Solution:   Make sure mb_ptr2len() consistently returns zero for NUL.
2022-08-16 17:50:38 +01:00
Kota Kato 948a3894d9 patch 9.0.0219: cannot make a funcref with "s:func" in a def function
Problem:    Cannot make a funcref with "s:func" in a def function in legacy
            script.
Solution:   Allow for using a lower case function name after "s:". (Kota Kato,
            closes #10926)
2022-08-16 16:09:59 +01:00
Bram Moolenaar e98c88c44c patch 9.0.0218: reading before the start of the line
Problem:    Reading before the start of the line.
Solution:   When displaying "$" check the column is not negative.
2022-08-16 14:51:53 +01:00
Bram Moolenaar e1f3fd1d02 Update runtime files 2022-08-15 18:51:32 +01:00
zeertzjq 5a4fff4d94 patch 9.0.0217: 'shellslash' works differently when sourcing a script again
Problem:    'shellslash' works differently when sourcing a script again.
Solution:   Use the name from the script item. (closes #10920)
2022-08-15 17:53:55 +01:00
Bram Moolenaar cce293f87b patch 9.0.0216: undo earlier test sometimes fails on MS-Windows
Problem:    Undo earlier test sometimes fails on MS-Windows.
Solution:   Use another file name.
2022-08-15 17:28:27 +01:00
Bram Moolenaar 8a77d208ff patch 9.0.0215: not passing APC_INDENT flag
Problem:    Not passing APC_INDENT flag.
Solution:   Pass the flag where it's needed.
2022-08-15 16:29:37 +01:00
Bram Moolenaar d8d4cfcb39 patch 9.0.0214: splitting a line may duplicate virtual text
Problem:    Splitting a line may duplicate virtual text. (Ben Jackson)
Solution:   Don't duplicate a text property with virtual text. Make
            auto-indenting work better. (closes #10919)
2022-08-15 15:55:10 +01:00
Bram Moolenaar 249e1b903a patch 9.0.0213: using freed memory with error in assert argument
Problem:    Using freed memory with error in assert argument.
Solution:   Make a copy of the error.
2022-08-14 22:23:02 +01:00
Bram Moolenaar dbdd16b625 patch 9.0.0212: invalid memory access when compiling :unlet
Problem:    Invalid memory access when compiling :unlet.
Solution:   Don't read past the end of the line.
2022-08-14 21:46:07 +01:00
Bram Moolenaar d1d8f6bacb patch 9.0.0211: invalid memory access when compiling :lockvar
Problem:    Invalid memory access when compiling :lockvar.
Solution:   Don't read past the end of the line.
2022-08-14 21:28:32 +01:00
Bram Moolenaar c3a483fc3c patch 9.0.0210: 'list' mode does not work properly with virtual text
Problem:    'list' mode does not work properly with virtual text.
Solution:   Show the "$" at the right position. (closes #10913)
2022-08-14 19:37:36 +01:00
Bram Moolenaar 677a39fdf6 patch 9.0.0209: build error with small features
Problem:    Build error with small features.
Solution:   Add #ifdef.
2022-08-14 16:50:42 +01:00
Bram Moolenaar 9e7e28fc4c patch 9.0.0208: the override flag has no effect for virtual text
Problem:    The override flag has no effect for virtual text. (Ben Jackson)
Solution:   Make the override flag work. (closes #10915)
2022-08-14 16:36:38 +01:00
zeertzjq 28c162f6f1 patch 9.0.0207: stacktrace not shown when debugging
Problem:    Stacktrace not shown when debugging.
Solution:   Set msg_scroll in msg_source(). (closes #10917)
2022-08-14 14:49:50 +01:00
Bram Moolenaar a4d158b3c8 patch 9.0.0206: redraw flags are not named specifically
Problem:    Redraw flags are not named specifically.
Solution:   Prefix "UPD_" to the flags, for UPDate_screen().
2022-08-14 14:17:45 +01:00
Bram Moolenaar 28c9f89571 patch 9.0.0205: cursor in wrong position when inserting after virtual text
Problem:    Cursor in wrong position when inserting after virtual text. (Ben
            Jackson)
Solution:   Put the cursor after the virtual text, where the text will be
            inserted. (closes #10914)
2022-08-14 13:28:55 +01:00
Yegappan Lakshmanan 63acae13f5 patch 9.0.0204: indexof() may leak memory
Problem:    indexof() may leak memory.
Solution:   Free allocated values. (Yegappan Lakshmanan, closes #10916)
2022-08-14 12:07:11 +01:00
Yee Cheng Chin 1ac521ea04 Merge pull request #1232 from ryandesign/patch-1
Fix typo in comment in Miscellaneous.m
2022-08-13 22:29:03 -07:00
Bram Moolenaar c9b6570fab patch 9.0.0203: confusing variable name
Problem:    Confusing variable name.
Solution:   Use "prim_aep" instead of "spell_aep".
2022-08-13 21:37:29 +01:00
Yegappan Lakshmanan 3fbf6cd355 patch 9.0.0202: code and help for indexof() is not ideal
Problem:    Code and help for indexof() is not ideal.
Solution:   Refactor the code, improve the help. (Yegappan Lakshmanan,
            closes #10908)
2022-08-13 21:35:13 +01:00
Bram Moolenaar 9113c2cd19 patch 9.0.0201: CursorLine highlight overrules virtual text highlight
Problem:    CursorLine highlight overrules virtual text highlight.
Solution:   Let extra attribute overrule line attribute. (closes #10909)
2022-08-13 20:17:34 +01:00
Bram Moolenaar 8f369fb1ab patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Problem:    cursor in a wrong positoin if 'wrap' is off and using two right
            aligned text props in one line.
Solution:   Count an extra line for a right aligned text property after a
            below or right aligned text property. (issue #10909)
2022-08-13 19:35:05 +01:00
Bram Moolenaar f0ccfa474a patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Problem:    Cursor position wrong with two right-aligned virtual texts.
Solution:   Add the padding for right-alignment. (issue #10906)
2022-08-13 16:41:19 +01:00
Bram Moolenaar cfeb8a584b patch 9.0.0198: ml_get error when switching buffer in Visual mode
Problem:    ml_get error when switching buffer in Visual mode.
Solution:   End Visual mode when switching buffer. (closes #10902)
2022-08-13 14:09:44 +01:00
Emilia Zapata 6a76e84f55 patch 9.0.0197: astro files are not detected
Problem:    Astro files are not detected.
Solution:   Add a pattern to match Astro files. (Emilia Zapata, closes #10904)
2022-08-13 13:21:31 +01:00
Yegappan Lakshmanan b218655d5a patch 9.0.0196: finding value in list may require a for loop
Problem:    Finding value in list may require a for loop.
Solution:   Add indexof(). (Yegappan Lakshmanan, closes #10903)
2022-08-13 13:09:20 +01:00
Yee Cheng Chin 373f4af501 Merge pull request #1273 from ychin/auto-close-inactive-issues
Add automation to auto-close PR/issues if they are waiting for response
2022-08-13 01:41:57 -07:00
Yee Cheng Chin 2b92b4a80b Add automation to auto-close PR/issues if they are waiting for response
If a PR or issue has been tagged with "Response Needed" on GitHub, this
will auto-mark as stale in 45 days, and then close it in 7 days
afterwards. This allows us to simply mark an issue as "Response Needed"
and not need to come back after a while to close the issue which is time
consuming and easy to forget, leading to lots of stale open issues.

Don't turn this on for all issues. Only do this for those explicitly
tagged as needing response.
2022-08-12 21:41:37 -07:00
Bram Moolenaar 9032b9ceb6 patch 9.0.0195: metafun files are not recogized
Problem:    Metafun files are not recogized.
Solution:   Add filetype detection patterns.
2022-08-12 21:57:13 +01:00
Bram Moolenaar 326c5d36e7 patch 9.0.0194: cursor displayed in wrong position after removing text prop
Problem:    Cursor displayed in wrong position after removing text prop. (Ben
            Jackson)
Solution:   Invalidate the cursor position. (closes #10898)
2022-08-12 13:05:49 +01:00
Yee Cheng Chin e11edefefc Update FUNDING.yml for MacVim sponsorship
MacVim now allows sponsors. Update the file to point to the correct sponsorship pages.
2022-08-11 11:38:46 -07:00
Bram Moolenaar e38fc86180 patch 9.0.0193: search and match highlgith interfere with virtual text
Problem:    Search and match highlgith interfere with virtual text highlight.
            (Ben Jackson)
Solution:   Check for match highlight after text properties.  Reset and
            restore search highlight when showing virtual text.
            (closes #10892)
2022-08-11 17:24:50 +01:00
Bram Moolenaar fdc5d17d58 patch 9.0.0192: possible invalid memory access when 'cmdheight' is zero
Problem:    Possible invalid memory access when 'cmdheight' is zero. (Martin
            Tournoij)
Solution:   Avoid going over the end of w_lines[] when w_height is Rows.
            (closes #10882)
2022-08-11 15:52:14 +01:00
Bram Moolenaar d4cf9fc53e patch 9.0.0191: messages test fails; window size incorrect
Problem:    Messages test fails; window size incorrect when 'cmdheight' is
            made smaller.
Solution:   Properly cleanup after test with cmdheight zero.  Resize windows
            correctly when 'cmdheight' gets smaller.
2022-08-11 14:13:37 +01:00
Bram Moolenaar f797e309ca patch 9.0.0190: the way 'cmdheight' can be made zero is inconsistent
Problem:    The way 'cmdheight' can be made zero is inconsistent.
Solution:   Only make 'cmdheight' zero when setting it explicitly, not when
            resizing windows. (closes #10890)
2022-08-11 13:17:30 +01:00
Yee Cheng Chin fdb147a812 Merge pull request #1270 from ychin/fix-settitle-crash-appearance-changed
Fix potential crash in setTitle
2022-08-11 01:52:54 -07:00
Yee Cheng Chin db9022663a Fix potential crash in setTitle
This happens when changing appearance mode (e.g. transparent title bar)
and you could get to a state where the title is released before retained
again. Fix the order of operation to retain first. Probably another
reason why we really should have switched to ARC.
2022-08-10 21:57:26 -07:00
Bram Moolenaar 87f3a2ca3d patch 9.0.0189: invalid memory access for text prop without highlight
Problem:    Invalid memory access for text prop without highlight.
Solution:   Check for a valid highlight ID.
2022-08-10 20:50:23 +01:00
Bram Moolenaar 82b14c143a patch 9.0.0188: strange effects when using "text_align" with non-zero column
Problem:    Strange effects when using virtual text with "text_align" and
            non-zero column. (Martin Tournoij)
Solution:   Give an error. (closes #10888)
2022-08-10 19:50:47 +01:00
Bram Moolenaar 96bde99bf8 patch 9.0.0187: command line height changes when maximizing window height
Problem:    Command line height changes when maximizing window height.
Solution:   Do not change the command line height. (closes #10885)
2022-08-10 17:23:12 +01:00
Bram Moolenaar 3331dd0351 patch 9.0.0186: virtual text without highlighting does not show
Problem:    Virtual text without highlighting does not show. (Ben Jackson)
Solution:   Use a text property when it has highlighting or when it has text.
            (closes #10878)
2022-08-10 16:49:02 +01:00
Bram Moolenaar 952c9b02f8 patch 9.0.0185: virtual text does not show if text prop at same position
Problem:    Virtual text does not show if tehre is a text prop at same
            position. (Ben Jackson)
Solution:   Fix the sorting of properties. (closes #10879)
2022-08-10 16:00:33 +01:00
Bram Moolenaar 1d8844aa59 patch 9.0.0184: virtual text prop highlight continues after truncation
Problem:    Virtual text prop highlight continues after truncation.
Solution:   Recompute the length of attributes.
2022-08-10 13:39:35 +01:00
Bram Moolenaar 52de3a8d39 patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Problem:    Extra space after virtual text when 'linebreak' is set.
Solution:   Do not count virtual text when getting linebreak value.
            (closes #10884)
2022-08-10 13:12:03 +01:00
smjonas 3a9687fb27 patch 9.0.0182: quarto files are not recognized
Problem:    Quarto files are not recognized.
Solution:   Recognize quarto files by the extension. (Jonas Strittmatter,
            closes #10880)
2022-08-10 11:48:10 +01:00
Bram Moolenaar e5a0e8c1d7 patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Problem:    Textprop test with line2byte() fails on MS-Windows.
Solution:   Fix updating chuncks in ml_delete_int().
2022-08-09 21:37:55 +01:00
Bram Moolenaar ef257e7bd1 patch 9.0.0180: stray logfile appears when running tests
Problem:    Stray logfile appears when running tests.
Solution:   Remove ch_logfile() calls.
2022-08-09 19:30:19 +01:00
Bram Moolenaar 49a90792d9 patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Problem:    Cursor position wrong with wrapping virtual text in empty line.
Solution:   Adjust handling of an empty line. (closes #10875)
2022-08-09 18:25:23 +01:00
Bram Moolenaar e428fa04a7 patch 9.0.0178: cursor position wrong with virtual text before Tab
Problem:    Cursor position wrong with virtual text before Tab.
Solution:   Use the byte length, not the cell with, to compare the column.
            Correct tab size after text prop. (closes #10866)
2022-08-09 16:55:41 +01:00
Bram Moolenaar 8f49e690dc patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Problem:    Cursor position wrong with 'virtualedit' and mouse click after end
            of the line. (Hermann Mayer)
Solution:   Do not use ScreenCols[] when 'virtualedit' is active.
            (closes #10868)
2022-08-09 14:19:40 +01:00
zeertzjq 8ca29b6a35 patch 9.0.0176: checking character options is duplicated and incomplete
Problem:    Checking character options is duplicated and incomplete.
Solution:   Move checking to check_chars_options(). (closes #10863)
2022-08-09 12:53:14 +01:00
Yee Cheng Chin ec02e85c26 Merge pull request #1268 from ychin/fix-10.9-transparent-titlebar-crash
Fix crashing on 10.9
2022-08-09 04:35:00 -07:00
Christian Brabandt afa23d1b99 patch 9.0.0175: spell checking for capital not working with trailing space
Problem:    Spell checking for capital not working with trailing space.
Solution:   Do not calculate cap_col at the end of the line. (Christian
            Brabandt, closes #10870, issue #10838)
2022-08-09 12:25:10 +01:00
Yee Cheng Chin 1adb42bd2d Fix MacVim crashing on 10.9
This fixes MacVim to work again on OSX 10.9. It was previously crashing
on launch for last few versions.

titlebarAppearsTransparent call: This API was added in 10.10, and
previously MacVim wasn't properly guarding it with the proper OS version
check, causing it to crash under 10.9 (which is the lowest currently
supported macOS version).

CGContext call: The new stateful renderer is using a newer API to
retrieve the CGContext from the NS wrapper, but that was also only added
in 10.10. When compiling against older versions, just use the older,
now-deprecated API "graphicsPort" instead. It still works.

Also, change the version check for `safeAreaInsets` for non-native full
screen to use `@available` as well instead of checking for selector.
This is more consistent with how other code works and fixes a compiler
warning about not checking for OS version.

Fix #1212
2022-08-09 04:24:23 -07:00
ichizok 8572495cbb Merge remote-tracking branch 'vim/master' 2022-08-09 17:22:46 +09:00
Yee Cheng Chin 622a45e8a2 Merge pull request #1267 from ychin/fix-macvim-disable-install-menus
Fix did_install_default_menus not working with MacVim
2022-08-09 00:04:11 -07:00
Yee Cheng Chin ac0153c8f3 Fix did_install_default_menus not working with MacVim
The `macaction` blocks were previously not respecting the
`did_install_default_menus` setting. If you set it to 1 in your vimrc,
MacVim would throw startup errors about macmenu not finding the menu
items it expected to. Move the `macaction` setup to the correct place so
they would only be called if `did_install_default_menus` is not 1.

Close #1231. Originally pull request by @jpetrie.
2022-08-08 17:53:37 -07:00
Bram Moolenaar ad6d9cc679 patch 9.0.0174: no error for using "#{ comment" in a compiled function
Problem:    No error for using "#{ comment" in a compiled function.
Solution:   Make error checking for "#{" consistent. (closes #10855)
2022-08-08 21:43:11 +01:00
Bram Moolenaar e6a3d81e05 patch 9.0.0173: assert fails only on MS-Windows
Problem:    Assert fails only on MS-Windows.
Solution:   Disable the assert for now.
2022-08-08 18:12:30 +01:00
Bram Moolenaar 1024690c01 patch 9.0.0172: trying to allocate zero bytes
Problem:    Trying to allocate zero bytes.
Solution:   Do not allocate the proptype array when there are none.
            (closes #10867)
2022-08-08 17:08:05 +01:00
Bram Moolenaar 6e5c61119a patch 9.0.0171: quickfix line highlight is overruled by 'cursorline'
Problem:    Quickfix line highlight is overruled by 'cursorline'.
Solution:   Reverse the combination of attributes. (closes #10654)
2022-08-08 16:03:06 +01:00
Bram Moolenaar 113d9dec99 patch 9.0.0170: various minor code formatting issues
Problem:    Various minor code formatting issues.
Solution:   Improve code formatting.
2022-08-08 15:49:18 +01:00
Bram Moolenaar 48c3f4e0bf Update runtime files 2022-08-08 15:42:38 +01:00
Bram Moolenaar cf85d97baf patch 9.0.0169: insufficient testing for line2byte() with text properties
Problem:    Insufficient testing for line2byte() with text properties.
Solution:   Add tests with a lot of text.
2022-08-08 14:59:47 +01:00
Bram Moolenaar 25463610df patch 9.0.0168: cursor positioned wrong with two virtual text properties
Problem:    Cursor positioned wrong with two virtual text properties close
            together. (Ben Jackson)
Solution:   Add the original size, not the computed one. (closes #10864)
2022-08-08 11:07:47 +01:00
Bram Moolenaar 38ea2733b4 patch 9.0.0167: checking for text properties could be a bit more efficient
Problem:    Checking for text properties could be a bit more efficient.
Solution:   Return early when there are no text properties.  Update TODO
            items.
2022-08-07 22:04:56 +01:00
Bram Moolenaar 50652b0c5c patch 9.0.0166: when using text properties line text length computed twice
Problem:    When using text properties the line text length is computed twice.
Solution:   If the text lenght was already computed don't do it again.
2022-08-07 21:48:37 +01:00
Bram Moolenaar e44336b00a patch 9.0.0165: looking up a text property type by ID is slow
Problem:    Looking up a text property type by ID is slow.
Solution:   Keep an array of property types sorted on ID.
2022-08-07 18:20:08 +01:00
Bram Moolenaar c390cc13e5 patch 9.0.0164: using freed memory with put command
Problem:    Using freed memory with put command.
Solution:   Get byte offset before replacing the line.
2022-08-07 18:09:10 +01:00
Bram Moolenaar ecb00c7b61 patch 9.0.0163: text property not adjusted for text inserted with "p"
Problem:    Text property not adjusted for text inserted with "p".
Solution:   Adjust column and length of text properties.
2022-08-07 14:55:14 +01:00
Bram Moolenaar 73c3842fa5 patch 9.0.0162: text property "below" gets indent if 'breakindent' is set
Problem:    Text property "below" gets indent if 'breakindent' is set. (Tim
            Pope)
Solution:   Do not put indent before text property. (closes #10859)
2022-08-07 11:53:40 +01:00
Bram Moolenaar bf9158408a patch 9.0.0161: warning for uninitialized variable
Problem:    Warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize line_attr_save.
2022-08-06 22:38:02 +01:00
Bram Moolenaar 83bf11a1ff patch 9.0.0160: some diff mode tests fail
Problem:    Some diff mode tests fail.
Solution:   Only advance "ptr" when a text property follows.
2022-08-06 22:23:40 +01:00
Bram Moolenaar da70cf30ef patch 9.0.0159: cannot build with small features
Problem:    Cannot build with small features.
Solution:   Check for E1170 only with FEAT_EVAL.
2022-08-06 22:13:03 +01:00
Bram Moolenaar 48ca24d913 patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Problem:    With 'nowrap' "below" property not displayed correctly.
Solution:   Adjust virtual text with 'nowrap', do not truncate.
2022-08-06 22:03:20 +01:00
Bram Moolenaar cba6952e34 patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Problem:    'showbreak' displayed below truncated "after" text prop.
Solution:   Suppress 'showbreak' when "after" prop doesn't wrap.
2022-08-06 21:03:53 +01:00
Bram Moolenaar 3f74c0ab32 patch 9.0.0156: giving E1170 only in an expression is confusing
Problem:    Giving E1170 only in an expression is confusing.
Solution:   Give E1170 for any "#{ comment". (closes #10855)
2022-08-06 18:12:06 +01:00
Bram Moolenaar db9b96d844 patch 9.0.0155
Problem:    No test for what patch 9.0.0155 fixes.
Solution:   Add a test. Fix typos.  (closes #10822)
2022-08-06 17:38:53 +01:00
Bram Moolenaar 7d0f7e9524 patch 9.0.0154: text properties wrong after splitting a line
Problem:    Text properties wrong after splitting a line.
Solution:   Check for text properties after the line. (closes #10857)
2022-08-06 17:10:57 +01:00
Bram Moolenaar 1306b36a7b patch 9.0.0153: no fold and sign column for virtual text with "below" align
Problem:    No fold and sign column for virtual text with "below" align and
            'nowrap'.
Solution:   Go back to draw state WL_START when moving to the next line.
            (closes #10851)
2022-08-06 15:59:06 +01:00
Bram Moolenaar e2086350d3 patch 9.0.0152: warning for unused argument in small build
Problem:    Warning for unused argument in small build.
Solution:   Add "UNUSED".
2022-08-06 14:21:52 +01:00
Bram Moolenaar 4d91d347e6 patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Problem:    A "below" aligned text property does not work with 'nowrap'.
Solution:   Start a new screen line to display the virtual text.
            (closes #10851)
2022-08-06 13:48:20 +01:00
Bram Moolenaar 25f40af9d2 patch 9.0.0150: error for using #{ in an expression is a bit confusing
Problem:    Error for using #{ in an expression is a bit confusing.
Solution:   Mention that this error is only given for an expression.
            Avoid giving the error more than once. (closes #10855)
2022-08-06 11:35:28 +01:00
Bram Moolenaar 5ac4b1a24e patch 9.0.0149: test for fuzzy completion fails sometimes
Problem:    Test for fuzzy completion fails sometimes.
Solution:   Use a more specific file name to minimize the chance of matching a
            random directory name. (closes #10854)
2022-08-06 10:28:19 +01:00
Yee Cheng Chin 8d238292ec Merge pull request #1265 from ychin/fix-macvim-vimtutor-menu
Fix vimtutor menu not working
2022-08-05 21:31:24 -07:00
Yee Cheng Chin ea193e8b5d Fix vimtutor menu not working
Previously, the "Help.Vim Tutor" menu was using `:!vimtutor -g &`, but a
change in Vim (v8.2.3502) broke that behavior, as the whole script will
get terminated as soon as `:!` finishes running. Fix that to use `:call
system('vimtutor -g &')` instead, since that still works. See
https://github.com/vim/vim/issues/8951 for more discussions.
2022-08-05 21:07:33 -07:00
Yee Cheng Chin a6a0c173dc Merge pull request #1264 from ychin/fix-macvim-makefile-dependencies
Fix MacVim Makefile dependencies
2022-08-05 20:58:47 -07:00
Yee Cheng Chin 668a73972a Fix MacVim Makefile dependencies
Add the MacVim Vim files (gui_macvim.m, MMBackEnd.m, MacVim.m) to the
list of GUI src files and then re-run `make depend` to regenerate all
dependencies. This does mean there will be an extra step in the future
for merging from upstream as we probably need to run `make depend`
relatively frequently, basically every time Vim changes dependencies
upstream.
2022-08-05 18:31:40 -07:00
Bram Moolenaar 3ec3b8e92d patch 9.0.0148: a "below" aligned text property gets 'showbreak' displayed
Problem:    A "below" aligned text property gets 'showbreak' displayed.
Solution:   Do not use 'showbreak' before or in virtual text. (issue #10851)
2022-08-05 21:39:30 +01:00
Bram Moolenaar 50e75fe8d8 patch 9.0.0147: cursor positioned wrong after two "below" text properties
Problem:    Cursor positioned wrong after two text properties with virtual
            text and "below" alignment. (Tim Pope)
Solution:   Do not stop after a text property using MAXCOL. (closes #10849)
2022-08-05 20:25:50 +01:00
Bram Moolenaar 4d2031fdbe patch 9.0.0146: missing part of change for "override" flag
Problem:    Missing part of change for "override" flag.
Solution:   Add the missing change.
2022-08-05 20:03:55 +01:00
Bram Moolenaar 213bbaf15a patch 9.0.0145: substitute that joins lines drops text properties
Problem:    Substitute that joins lines drops text properties.
Solution:   Move text properties of the last line to the new line.
2022-08-05 19:46:48 +01:00
Bram Moolenaar f4ba8bc47e patch 9.0.0144: text property cannot override 'cursorline' highlight
Problem:    Text property cannot override 'cursorline' highlight.
Solution:   Add the "override" flag to prop_type_add(). (closes #5533,
            closes #8225).
2022-08-05 17:05:04 +01:00
Bram Moolenaar afd2aa79ed patch 9.0.0143: cursor positioned after virtual text in empty line
Problem:    Cursor positioned after virtual text in empty line.
Solution:   Keep cursor in the first column. (closes #10786)
2022-08-05 13:07:23 +01:00
Bram Moolenaar 2f83cc4cfa patch 9.0.0142: crash when adding and removing virtual text
Problem:    Crash when adding and removing virtual text. (Ben Jackson)
Solution:   Check that the text of the text property still exists.
2022-08-05 11:45:17 +01:00
zeertzjq 206fce307b patch 9.0.0141: "delmenu" does not remove autocmmands
Problem:    "delmenu" does not remove autocmmands. Running menu test function
            alone fails.
Solution:   Delete autocommands Make sure there is at least one menu.
            (closes #10848)
2022-08-05 10:52:30 +01:00
ichizok 6082c6a087 Merge remote-tracking branch 'vim/master' 2022-08-05 13:36:47 +09:00
Yee Cheng Chin 67a635ec10 Merge pull request #1261 from ychin/non-native-fullscreen-macbook-notch
Fix non-native full screen on MacBooks with notch
2022-08-04 12:49:45 -07:00
Kota Kato 3d3f6ac098 patch 9.0.0140: execute() does not use the "legacy" command modifier
Problem:    execute() does not use the "legacy" command modifier.
Solution:   pass the command modifier in sticky_cmdmod_flags. (Kota Kato,
            closes #10845)
2022-08-04 18:50:14 +01:00
Yee Cheng Chin 9fb0163f86 Merge pull request #1260 from ychin/untitled-window-never-terminate-window-fix
Fix bad interaction with never opening window + terminate on last window
2022-08-04 10:06:04 -07:00
Bram Moolenaar 398649ee44 patch 9.0.0139: truncating virtual text after a line not implemented
Problem:    Truncating virtual text after a line not implemented.
            Cursor positioning wrong with Newline in the text.
Solution:   Implement truncating.  Disallow control characters in the text.
            (closes #10842)
2022-08-04 15:03:48 +01:00
Bram Moolenaar bc49c5f48f patch 9.0.0138: not enough characters accepted for 'spellfile'
Problem:    Not enough characters accepted for 'spellfile'.
Solution:   Add vim_is_fname_char() and use it for 'spellfile'.
2022-08-04 13:01:48 +01:00
Yee Cheng Chin f6ba7dd40b Fix bad interaction with never opening window + terminate on last window
Previously, if you configure MacVim to never open an untitled window on
launch, *and* terminate MacVim on last window closing, you could get an
odd behavior where MacVim will close itself soon after launch, usually
when you fiddle with "About MacVim" or the preference pane. This isn't
too big a deal but could potentially make it hard to change the
preference back, and it's hard to know if a future macOS update will
further break this behavior causing MacVim to keep terminating itself on
launch (the termination behavior relies on the
`applicationShouldTerminateAfterLastWindowClosed` API which is
controlled by the OS).

To fix this, simply make it so that the preference pane doesn't allow
both settings to be set at once. If the user is trying to do so, set the
other setting to be something sane. Also, in the
`applicationShouldTerminateAfterLastWindowClosed` behavior, make sure we
add additional protection so that it will not return true when we are
set to never open untitled window (this should only be the case if the
user manually set it using `defaults` because we are now already
protecting against this in the preference pane logic). This should be
fine because these two setting don't really make sense for the user
anyway. It doesn't seem to make a lot of sense for the user to want this
behavior.

Note that I'm doing manual checking in preference UI instead of using
some sort of key-value listening of NSUserDefaults because I'm afraid of
some unintentional infinite recursion going on where the settings keep
setting each other back and forth. By only doing this at preference pane
changes this should not happen.

Fix #1257
2022-08-04 00:16:15 -07:00
Yee Cheng Chin db9a083025 Fix non-native full screen on MacBooks with notch
This makes sure non-native full screen mode will not use the areas with
the notch (which exists in new Apple Silicon MacBooks) when menu bar is
configured to not show during non-native full screen. Previously it will
use the whole screen which resulted in some texts being clipped by the
sensor bar / "notch".

Add a new option `MMNonNativeFullScreenSafeAreaBehavior` which allows
the user to get the old behavior back by setting it to 1. This allows
for maximum display area on a MacBook display, but some content will be
obscured by the notch and the rounded corners. This is a
command-line-only option for now as it's relatively niche. In the future
we could potentially add new types of behaviors (such as showing the tab
bar or toolbar in the notch area).

Also, fix a manual one-pixel offset in the old menu bar size calculation
which was a hack to align things to hide the first row of pixels (which
arguably looks better if cursorline is on) but it was actually
incorrect. Just don't do the one-pixel hack.
2022-08-03 21:29:31 -07:00
James McCoy db7a88db8b patch 9.0.0137: debugger test may fail when $CWD is very long
Problem:    Debugger test may fail when $CWD is very long.
Solution:   Skip the test if the directory name is too long. (James McCoy,
            closes #10837)
2022-08-03 16:13:27 +01:00
Bram Moolenaar d6212b80d6 patch 9.0.0136: after CTRL-Left-mouse click a mouse scroll also has CTRL
Problem:    After CTRL-Left-mouse click a mouse scroll also has CTRL.
Solution:   Reset orig_mouse_code also for wheel events. (closes #10840)
2022-08-03 15:48:33 +01:00
zeertzjq 0b0ccbbfb0 patch 9.0.0135: comment about tabpage line above the wrong code
Problem:    Comment about tabpage line above the wrong code.
Solution:   Move the comment. (closes #10836)
2022-08-02 12:15:51 +01:00
Bram Moolenaar f05a1e59a3 patch 9.0.0134: no test for text property with column zero
Problem:    No test for text property with column zero.
Solution:   Add a test.  Add message to assert for no open popups.
2022-08-02 11:48:53 +01:00
Bram Moolenaar e175dc6911 patch 9.0.0133: virtual text after line moves to joined line
Problem:    Virtual text after line moves to joined line. (Yegappan
            Lakshmanan)
Solution:   When joining lines only keep virtual text after the last line.
2022-08-01 22:18:50 +01:00
Bram Moolenaar 09ff4b54fb patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Problem:    Multi-byte characters in virtual text not handled correctly.
Solution:   Count screen cells instead of bytes.
2022-08-01 16:51:02 +01:00
Bram Moolenaar 783ef7214b patch 9.0.0131: virtual text with Tab is not displayed correctly
Problem:    Virtual text with Tab is not displayed correctly.
Solution:   Change any Tab to a space.
2022-08-01 16:11:06 +01:00
Bram Moolenaar 1f4ee19eef patch 9.0.0130: cursor position wrong when inserting around virtual text
Problem:    Cursor position wrong when inserting around virtual text.
Solution:   Update the cursor position properly.
2022-08-01 15:52:55 +01:00
Bram Moolenaar 05a8061eec Update runtime files 2022-08-01 15:09:53 +01:00
Mike Williams ab146dac6b patch 9.0.0129: compiler warning for int/size_t usage
Problem:    Compiler warning for int/size_t usage.
Solution:   Add a type cast. (Mike Williams, closes #10830)
2022-08-01 14:00:31 +01:00
Bram Moolenaar 3f79b61288 patch 9.0.0128: Coverity complains about possible double free
Problem:    Coverity complains about possible double free.
Solution:   Clear the pointer to avoid warnings.
2022-08-01 12:06:40 +01:00
zeertzjq e95f22f63a patch 9.0.0127: unused variable
Problem:    Unused variable.
Solution:   Remove the variable. (closes #10829)
2022-08-01 11:49:45 +01:00
John Drouhard 95fca12b0e patch 9.0.0126: expanding file names fails in dir with more than 255 entries
Problem:    Expanding file names fails in directory with more than 255
            entries.
Solution:   Use an int instead of char_u to count. (John Drouhard,
            closes #10818)
2022-08-01 11:38:17 +01:00
Bram Moolenaar 84b247fab7 patch 9.0.0125: cursor positioned wrong with virtual text after the line
Problem:    Cursor positioned wrong with virtual text after the line.
Solution:   Clear cts_with_trailing.
2022-08-01 11:17:40 +01:00
ichizok a615fe731e Merge remote-tracking branch 'vim/master' 2022-08-01 13:24:47 +09:00
zeertzjq 101d57b34b patch 9.0.0124: code has more indent than needed
Problem:    Code has more indent than needed.
Solution:   Use continue and return statements. (closes #10824)
2022-07-31 18:34:32 +01:00
Bram Moolenaar c146d974f1 patch 9.0.0123: cannot build with small features
Problem:    Cannot build with small features.
Solution:   Add #ifdef.
2022-07-31 18:03:57 +01:00
Bram Moolenaar be33e5e4a9 patch 9.0.0122: breakindent test fails
Problem:    Breakindent test fails.
Solution:   Fix condition.
2022-07-31 18:00:10 +01:00
Bram Moolenaar b7963df98f patch 9.0.0121: cannot put virtual text after or below a line
Problem:    Cannot put virtual text after or below a line.
Solution:   Add "text_align" and "text_wrap" arguments.
2022-07-31 17:12:43 +01:00
Anton Sharonov 6b568b1cc7 patch 9.0.0120: MS-Windows GUI: cannot use AltGr + Space
Problem:    MS-Windows GUI: cannot use AltGr + Space.
Solution:   Check for VK_MENU instead of VK_LMENU. (Anton Sharonov,
            closes #10820, closes #10753)
2022-07-31 12:26:05 +01:00
K.Takata dbdcc79910 patch 9.0.0119: tiny chance that creating a backup file fails
Problem:    Tiny chance that creating a backup file fails.
Solution:   Check for EEXIST error. (Ken Takata, closes #10821)
2022-07-31 11:50:42 +01:00
zeertzjq 750209459c patch 9.0.0118: no test for what patch 9.0.0155 fixes
Problem:    No test for what patch 9.0.0155 fixes.
Solution:   Add a test. Fix typos.  (closes #10822)
2022-07-31 11:37:20 +01:00
Bram Moolenaar 3a4cd39d47 patch 9.0.0117: text of removed textprop with text is not freed
Problem:    Text of removed textprop with text is not freed.
Solution:   Free the text when the property is removed.  Reduce the array size
            to ignore NULLs at the end.
2022-07-30 22:17:18 +01:00
Bram Moolenaar 711483cd13 patch 9.0.0116: virtual text not displayed if 'signcolumn' is "yes"
Problem:    Virtual text not displayed if 'signcolumn' is "yes".
Solution:   Set c_extra and c_final to NUL.
2022-07-30 21:33:46 +01:00
Bram Moolenaar 6747cf1671 patch 9.0.0115: when 'cmdheight' is zero pressing ':' may scroll a window
Problem:    When 'cmdheight' is zero pressing ':' may scroll a window.
Solution:   Add the made_cmdheight_nonzero flag and set 'scrolloff' to zero.
2022-07-30 19:10:06 +01:00
Shougo Matsushita f39cfb7262 patch 9.0.0114: the command line takes up space even when not used
Problem:    The command line takes up space even when not used.
Solution:   Allow for 'cmdheight' to be set to zero. (Shougo Matsushita,
            closes #10675, closes #940)
2022-07-30 16:54:05 +01:00
K.Takata d90f91fe30 patch 9.0.0113: has() is not strict about parsing the patch version
Problem:    has() is not strict about parsing the patch version.
Solution:   Check the version more strictly. (Ken Takata, closes #10752)
2022-07-30 15:43:59 +01:00
Bram Moolenaar 0f823c3609 patch 9.0.0112: MS-Windows: test fails because file already exists
Problem:    MS-Windows: test fails because file already exists.
Solution:   Wait a little while until the file is gone.
2022-07-30 15:35:12 +01:00
Bram Moolenaar de78632c41 patch 9.0.0111: "nocombine" is missing from synIDattr()
Problem:    "nocombine" is missing from synIDattr().
Solution:   Add "nocombine". (Muni Tanjim, closes #10816)
2022-07-30 14:56:17 +01:00
Carlo Teubner ddab3ce345 patch 9.0.0110: help tag generation picks up words in code examples
Problem:    Help tag generation picks up words in code examples.
Solution:   Skip over examples. (Carlo Teubner, closes #10813)
2022-07-30 12:03:16 +01:00
Bram Moolenaar 1eead4cf1d patch 9.0.0109: writing over the end of a buffer on stack
Problem:    Writing over the end of a buffer on stack when making list of
            spell suggestions.
Solution:   Make sure suggested word is not too long. (closes #10812)
2022-07-30 11:39:57 +01:00
Bram Moolenaar 5f6cae8b8a patch 9.0.0108: configure check for timer_create may give wrong error
Problem:    Configure check for timer_create may give wrong error.
Solution:   Give a warning instead of an error.
2022-07-30 11:00:50 +01:00
Bram Moolenaar 2ecbe53f45 Update runtime files 2022-07-29 21:36:21 +01:00
Bram Moolenaar 72981ac94f patch 9.0.0107: condition always has the same value
Problem:    Condition always has the same value.
Solution:   Remove the condition.
2022-07-29 19:50:41 +01:00
Bram Moolenaar cb36c2a3cd patch 9.0.0106: illegal byte regexp test doesn't fail when fix is reversed
Problem:    Illegal byte regexp test doesn't fail when fix is reversed.
Solution:   Make sure illegal bytes end up in sourced script file.
2022-07-29 18:32:20 +01:00
Bram Moolenaar f50940531d patch 9.0.0105: illegal memory access when pattern starts with illegal byte
Problem:    Illegal memory access when pattern starts with illegal byte.
Solution:   Do not match a character with an illegal byte.
2022-07-29 16:22:25 +01:00
Bram Moolenaar 1e56bda904 patch 9.0.0104: going beyond allocated memory when evaluating string constant
Problem:    Going beyond allocated memory when evaluating string constant.
Solution:   Properly skip over <Key> form.
2022-07-29 15:28:27 +01:00
Bram Moolenaar efffa5360e patch 9.0.0103: if running configure with cached results -lrt may be missing
Problem:    If running configure with cached results -lrt may be missing.
Solution:   Use two cache variables, one without and one with -lrt.
            (closes #10799)  Swap checks to avoid adding -lrt unnecessarily.
2022-07-28 22:39:54 +01:00
Bram Moolenaar a6f9e30016 patch 9.0.0102: reading past end of line with insert mode completion
Problem:    Reading past end of line with insert mode completion.
Solution:   Check text length.
2022-07-28 21:51:37 +01:00
Bram Moolenaar 4e677b9c40 patch 9.0.0101: invalid memory access in diff mode with "dp" and undo
Problem:    Invalid memory access in diff mode with "dp" and undo.
Solution:   Make sure the line number does not go below one.
2022-07-28 18:44:27 +01:00
Bram Moolenaar cb5ed4d625 patch 9.0.0100: get hit-enter prompt for system() when '!' is in 'guioptions'
Problem:    Get hit-enter prompt for system() when '!' is in 'guioptions'.
Solution:   Do not call wait_return() when not redrawing. (closes #3327)
2022-07-28 12:54:08 +01:00
zeertzjq 46af7bc08d patch 9.0.0099: scrollback can be wrong after redrawing the command line
Problem:    Scrollback can be wrong after redrawing the command line.
Solution:   Clear unfinished scrollback when redrawing. (closes #10807)
2022-07-28 12:34:09 +01:00
Bram Moolenaar 5748b7f2c8 patch 9.0.0098: missing include file in timer_create configure check
Problem:    missing include file in timer_create configure check.
Solution:   Inlucde stdlib.h.
2022-07-28 12:09:04 +01:00
Bram Moolenaar 5f30e26f69 patch 9.0.0097: long quickfix line is truncated for :clist
Problem:    Long quickfix line is truncated for :clist.
Solution:   Allocate a buffer if needed.
2022-07-28 11:56:01 +01:00
ichizok d1e7357332 Merge remote-tracking branch 'vim/master' 2022-07-28 13:36:27 +09:00
zeertzjq f6782732ab patch 9.0.0096: flag "new_value_alloced" is always true
Problem:    Flag "new_value_alloced" is always true.
Solution:   Remove "new_value_alloced". (closes #10792)
2022-07-27 18:26:03 +01:00
zeertzjq 122dea7007 patch 9.0.0095: conditions are always true
Problem:    Conditions are always true.
Solution:   Remove useless conditions. (closes #10802)
2022-07-27 15:48:45 +01:00
Bram Moolenaar 3d6ee8bda0 patch 9.0.0094: cursor restored unexpected with nested autocommand
Problem:    Cursor restored unexpected with nested autocommand.
Solution:   Do not restore the cursor when it was moved intentionally.
            (closes #10780)
2022-07-27 15:23:35 +01:00
James Eapen 7abd1c6d8e patch 9.0.0093: sway config files are recognized as i3config
Problem:    Sway config files are recognized as i3config.
Solution:   Recognize swayconfig separately. (James Eapen, closes #10672)
2022-07-27 15:07:06 +01:00
Shougo Matsushita 61021aa318 patch 9.0.0092: plugins cannot change v:completed_item
Problem:    Plugins cannot change v:completed_item.
Solution:   Make v:completed_item writeable. (Shougo Matsushita,
            closes #10801)
2022-07-27 14:40:00 +01:00
Bram Moolenaar 34d1773bd4 patch 9.0.0091: duplicate error number
Problem:    Duplicate error number.
Solution:   Use unique error number.
2022-07-27 13:18:14 +01:00
Bram Moolenaar 28f84e17b0 patch 9.0.0090: no error when assigning bool to a string option
Problem:    No error when assigning bool to a string option with setwinvar().
Solution:   Give an error (closes #10766)
2022-07-27 12:30:13 +01:00
Yegappan Lakshmanan 7db3a8e329 patch 9.0.0089: fuzzy argument completion doesn't work for shell commands
Problem:    Fuzzy argument completion doesn't work for shell commands.
Solution:   Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan,
            closes #10769)
2022-07-26 22:01:36 +01:00
Gregory Anders 30e212dac1 patch 9.0.0088: pattern for detecting bitbake files is not sufficient
Problem:    Pattern for detecting bitbake files is not sufficient.
Solution:   Adjust the pattern. (Gregory Anders, closes #10743)
2022-07-26 21:42:03 +01:00
Anton Sharonov 3f0266739d patch 9.0.0087: MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc
Problem:    MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc.
Solution:   Figure out what the key code means. (Anton Sharonov,
            closes #10687, closes #10454)
2022-07-26 21:26:18 +01:00
zeertzjq 6791adca53 patch 9.0.0086: tabline is not redrawn when entering command line
Problem:    Tabline is not redrawn when entering command line.
Solution:   Set "redraw_tabline". (closes #10771)
2022-07-26 20:42:25 +01:00
ii14 1f0dc5e84f patch 9.0.0085: ":write" fails after ":file name" and the ":edit"
Problem:    ":write" fails after ":file name" and the ":edit".
Solution:   Reset BF_NOTEDITED when using ":edit". (closes #10790)
2022-07-26 19:44:56 +01:00
Bram Moolenaar 15b87b6610 patch 9.0.0084: using "terraform" filetype for .tfvars file is bad
Problem:    Using "terraform" filetype for .tfvars file is bad.
Solution:   use "terraform-vars", so that different completion and other
            mechanisms can be used. (Radek Simko, closes #10755)
2022-07-26 19:18:28 +01:00
zeertzjq c9e8fd6fc7 patch 9.0.0083: ModeChanged event not triggered when leaving cmdline window
Problem:    ModeChanged event not triggered when leaving the cmdline window.
Solution:   Call may_trigger_modechanged(). (closes #10791)
2022-07-26 18:12:38 +01:00
zeertzjq 3cfae39b08 patch 9.0.0082: cannot interrupt global command from command line
Problem:    Cannot interrupt global command from command line.
Solution:   Reset got_int in another place. (closes #10739)
2022-07-26 17:48:13 +01:00
Bram Moolenaar c2842adfb2 patch 9.0.0081: command line completion of user command may have duplicates
Problem:    Command line completion of user command may have duplicates.
            (Dani Dickstein)
Solution:   Skip global user command if an identical buffer-local one is
            defined. (closes #10797)
2022-07-26 17:23:47 +01:00
Mike Williams 0494789ece patch 9.0.0080: compiler warning for size_t to int conversion
Problem:    Compiler warning for size_t to int conversion.
Solution:   Add type casts. (Mike Williams, closes #10795)
2022-07-26 16:03:42 +01:00
Bram Moolenaar 6809ff978a patch 9.0.0079: error in autoload script not reported for 'foldexpr'
Problem:    Error in autoload script not reported for 'foldexpr'.
Solution:   Reset "emsg_off" when auto-loading a script. (closes #10685)
2022-07-26 15:10:56 +01:00
Ernie Rael 559f230fd6 patch 9.0.0078: star register is unexpectedly changed when deleting
Problem:    Star register is changed when deleting and both "unnamed" and
            "unnamedplus" are in 'clipboard'.
Solution:   Make the use of the star register work as documented. (Ernie Rael,
            closes #10669)
2022-07-26 14:44:36 +01:00
Bram Moolenaar b03950fafa patch 9.0.0077: wrong restored cursor position when switching window in autocmd
Problem:    When switching window in autocmd the restored cursor position may
            be wrong.
Solution:   Do not restore the cursor if it was not set. (closes #10775)
2022-07-26 13:47:13 +01:00
zeertzjq 92a1678d48 patch 9.0.0076: no test for what patch 8.1.1424 fixes
Problem:    No test for what patch 8.1.1424 fixes.
Solution:   Add a test. (closes #10789)
2022-07-26 12:24:41 +01:00
Bram Moolenaar be3dbda871 patch 9.0.0075: some compilers warn for using an uninitialized variable
Problem:    Some compilers warn for using an uninitialized variable. (Tony
            Mechelynck)
Solution:   Initialize the variable.
2022-07-26 11:42:34 +01:00
Bram Moolenaar 34a1f77979 patch 9.0.0074: Coverity warns for double free
Problem:    Coverity warns for double free.
Solution:   Reset cts_text_prop_count when freeing cts_text_props.
2022-07-26 11:20:48 +01:00
Martin Tournoij 1b67f07f76 patch 9.0.0073: too many files recognized as bsdl
Problem:    Too many files recognized as bsdl.
Solution:   Use pattern "*.bsd" instead of "*bsd". (Martin Tournoij,
            closes #10783)
2022-07-25 21:40:06 +01:00
Bram Moolenaar 6d023f98df patch 9.0.0072: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it. (John Marriott)
2022-07-25 21:15:45 +01:00
zeertzjq ecdc82e74e patch 9.0.0071: command overlaps with printed text in scrollback
Problem:    Command overlaps with printed text in scrollback.
Solution:   Clear until end-of-line and use correct message chunk.
            (closes #10765, closes #10764)
2022-07-25 19:50:57 +01:00
zeertzjq 4dc513a22c patch 9.0.0070: using utfc_ptr2char_len() when length is negative
Problem:    Using utfc_ptr2char_len() when length is negative.
Solution:   Check value of length. (closes #10760)
2022-07-25 19:42:02 +01:00
Bram Moolenaar 0c740e745a patch 9.0.0069: leaking memory when using text prop with inserted text
Problem:    Leaking memory when using text prop with inserted text.
Solution:   Clear the growarray with text.
2022-07-25 19:07:04 +01:00
Bram Moolenaar fe3fb6e1e6 patch 9.0.0068: build fails with tiny features
Problem:    Build fails with tiny features.
Solution:   Add #ifdef.
2022-07-25 18:35:15 +01:00
Bram Moolenaar 7f9969c559 patch 9.0.0067: cannot show virtual text
Problem:    Cannot show virtual text.
Solution:   Initial changes for virtual text support, using text properties.
2022-07-25 18:13:54 +01:00
Bram Moolenaar b529cfbd04 Update runtime files 2022-07-25 15:42:07 +01:00
Yee Cheng Chin aeafa394bd Update create-dmg to 1.1.0 to work with Apple Silicon Macs 2022-07-25 04:41:39 -07:00
zeertzjq cd6ad6439d patch 9.0.0066: switching window uneccarily when getting buffer options
Problem:    Switching window uneccarily when getting buffer options.
Solution:   Do not switch window when getting buffer options. (closes #10767)
2022-07-25 12:28:09 +01:00
Ryan Schmidt 71bc940511 Fix typo in comment in Miscellaneous.m 2022-02-07 15:11:03 -06:00
893 changed files with 30468 additions and 13435 deletions
+3 -3
View File
@@ -26,9 +26,9 @@ test_script:
- cd src/testdir
# Testing with MSVC gvim
- path C:\Python35-x64;%PATH%
- nmake -f Make_dos.mak VIMPROG=..\gvim
- nmake -f Make_dos.mak clean
- nmake -f Make_mvc.mak VIMPROG=..\gvim
- nmake -f Make_mvc.mak clean
# Testing with MSVC console version
- nmake -f Make_dos.mak VIMPROG=..\vim
- nmake -f Make_mvc.mak VIMPROG=..\vim
# vim: sw=2 sts=2 et ts=8 sr
+35
View File
@@ -69,6 +69,10 @@ runtime/compiler/perlcritic.vim @petdance @dkearns
runtime/compiler/php.vim @dkearns
runtime/compiler/podchecker.vim @petdance @dkearns
runtime/compiler/powershell.vim @heaths
runtime/compiler/raco.vim @benknoble
runtime/compiler/racomake.vim @benknoble
runtime/compiler/racosetup.vim @benknoble
runtime/compiler/racotest.vim @benknoble
runtime/compiler/rake.vim @tpope @dkearns
runtime/compiler/rhino.vim @dkearns
runtime/compiler/rspec.vim @tpope @dkearns
@@ -98,6 +102,7 @@ runtime/doc/pi_tar.txt @cecamp
runtime/doc/pi_vimball.txt @cecamp
runtime/doc/pi_zip.txt @cecamp
runtime/doc/ps1.txt @heaths
runtime/ftplugin/abaqus.vim @costerwi
runtime/ftplugin/awk.vim @dkearns
runtime/ftplugin/basic.vim @dkearns
runtime/ftplugin/bst.vim @tpope
@@ -107,26 +112,37 @@ runtime/ftplugin/cs.vim @nickspoons
runtime/ftplugin/csh.vim @dkearns
runtime/ftplugin/css.vim @dkearns
runtime/ftplugin/cucumber.vim @tpope
runtime/ftplugin/desktop.vim @e-kwsm
runtime/ftplugin/dosbatch.vim @mrdubya
runtime/ftplugin/eiffel.vim @dkearns
runtime/ftplugin/elixir.vim @mhanberg
runtime/ftplugin/expect.vim @dkearns
runtime/ftplugin/erlang.vim @hcs42
runtime/ftplugin/eruby.vim @tpope @dkearns
runtime/ftplugin/fennel.vim @gpanders
runtime/ftplugin/fetchmail.vim @dkearns
runtime/ftplugin/fpcmake.vim @dkearns
runtime/ftplugin/freebasic.vim @dkearns
runtime/ftplugin/fstab.vim @rid9
runtime/ftplugin/gdb.vim @xeyownt
runtime/ftplugin/gdscript.vim @habamax
runtime/ftplugin/gdshader.vim @habamax
runtime/ftplugin/git.vim @tpope
runtime/ftplugin/gitattributes.vim @ObserverOfTime
runtime/ftplugin/gitcommit.vim @tpope
runtime/ftplugin/gitconfig.vim @tpope
runtime/ftplugin/gitignore.vim @ObserverOfTime
runtime/ftplugin/gitrebase.vim @tpope
runtime/ftplugin/gitsendemail.vim @tpope
runtime/ftplugin/go.vim @dbarnett
runtime/ftplugin/gprof.vim @dpelle
runtime/ftplugin/haml.vim @tpope
runtime/ftplugin/hgcommit.vim @k-takata
runtime/ftplugin/html.vim @dkearns
runtime/ftplugin/i3config.vim @hiqua
runtime/ftplugin/icon.vim @dkearns
runtime/ftplugin/indent.vim @dkearns
runtime/ftplugin/j.vim @glts
runtime/ftplugin/javascript.vim @dkearns
runtime/ftplugin/javascriptreact.vim @dkearns
runtime/ftplugin/jsonc.vim @izhakjakov
@@ -135,6 +151,7 @@ runtime/ftplugin/kconfig.vim @chrisbra
runtime/ftplugin/less.vim @genoma
runtime/ftplugin/liquid.vim @tpope
runtime/ftplugin/lua.vim @dkearns
runtime/ftplugin/lynx.vim @dkearns
runtime/ftplugin/m3build.vim @dkearns
runtime/ftplugin/m3quake.vim @dkearns
runtime/ftplugin/markdown.vim @tpope
@@ -156,6 +173,7 @@ runtime/ftplugin/ps1xml.vim @heaths
runtime/ftplugin/python.vim @tpict
runtime/ftplugin/qb64.vim @dkearns
runtime/ftplugin/r.vim @jalvesaq
runtime/ftplugin/racket.vim @benknoble
runtime/ftplugin/rhelp.vim @jalvesaq
runtime/ftplugin/rmd.vim @jalvesaq
runtime/ftplugin/rnoweb.vim @jalvesaq
@@ -167,8 +185,10 @@ runtime/ftplugin/sass.vim @tpope
runtime/ftplugin/scala.vim @derekwyatt
runtime/ftplugin/scss.vim @tpope
runtime/ftplugin/sdoc.vim @gpanders
runtime/ftplugin/sh.vim @dkearns
runtime/ftplugin/solution.vim @dkearns
runtime/ftplugin/spec.vim @ignatenkobrain
runtime/ftplugin/swayconfig.vim @jamespeapen
runtime/ftplugin/systemverilog.vim @Kocha
runtime/ftplugin/tap.vim @petdance
runtime/ftplugin/tcsh.vim @dkearns
@@ -204,11 +224,13 @@ runtime/indent/eterm.vim @dkearns
runtime/indent/falcon.vim @steveno
runtime/indent/framescript.vim @dkearns
runtime/indent/freebasic.vim @dkearns
runtime/indent/gdscript.vim @habamax
runtime/indent/gitconfig.vim @tpope
runtime/indent/gitolite.vim @sitaramc
runtime/indent/go.vim @dbarnett
runtime/indent/haml.vim @tpope
runtime/indent/idlang.vim @dkearns
runtime/indent/j.vim @glts
runtime/indent/java.vim @xuhdev
runtime/indent/javascript.vim @bounceme
runtime/indent/json.vim @elzr
@@ -230,6 +252,7 @@ runtime/indent/prolog.vim @dkearns
runtime/indent/ps1.vim @heaths
runtime/indent/qb64.vim @dkearns
runtime/indent/r.vim @jalvesaq
runtime/indent/racket.vim @benknoble
runtime/indent/readline.vim @dkearns
runtime/indent/rhelp.vim @jalvesaq
runtime/indent/rmd.vim @jalvesaq
@@ -261,6 +284,7 @@ runtime/plugin/netrwPlugin.vim @cecamp
runtime/plugin/tarPlugin.vim @cecamp
runtime/plugin/vimballPlugin.vim @cecamp
runtime/plugin/zipPlugin.vim @cecamp
runtime/syntax/abaqus.vim @costerwi
runtime/syntax/aidl.vim @dpelle
runtime/syntax/amiga.vim @cecamp
runtime/syntax/arduino.vim @johshoff
@@ -297,16 +321,23 @@ runtime/syntax/eiffel.vim @jocelyn
runtime/syntax/elmfilt.vim @cecamp
runtime/syntax/erlang.vim @hcs42
runtime/syntax/eruby.vim @tpope @dkearns
runtime/syntax/expect.vim @dkearns
runtime/syntax/exports.vim @cecamp
runtime/syntax/falcon.vim @steveno
runtime/syntax/fennel.vim @gpanders
runtime/syntax/fetchmail.vim @dkearns
runtime/syntax/forth.vim @jkotlinski
runtime/syntax/fpcmake.vim @dkearns
runtime/syntax/freebasic.vim @dkearns
runtime/syntax/fstab.vim @rid9
runtime/syntax/gdresource.vim @habamax
runtime/syntax/gdscript.vim @habamax
runtime/syntax/gdshader.vim @habamax
runtime/syntax/git.vim @tpope
runtime/syntax/gitattributes.vim @ObserverOfTime
runtime/syntax/gitcommit.vim @tpope
runtime/syntax/gitconfig.vim @tpope
runtime/syntax/gitignore.vim @ObserverOfTime
runtime/syntax/gitolite.vim @sitaramc
runtime/syntax/gitrebase.vim @tpope
runtime/syntax/go.vim @bhcleek
@@ -316,9 +347,11 @@ runtime/syntax/groff.vim @jmarshall
runtime/syntax/haml.vim @tpope
runtime/syntax/haskell.vim @coot
runtime/syntax/hgcommit.vim @k-takata
runtime/syntax/html.vim @dkearns
runtime/syntax/i3config.vim @hiqua
runtime/syntax/icon.vim @dkearns
runtime/syntax/indent.vim @dkearns
runtime/syntax/j.vim @glts
runtime/syntax/jargon.vim @h3xx
runtime/syntax/java.vim @fleiner
runtime/syntax/jsonc.vim @izhakjakov
@@ -360,6 +393,7 @@ runtime/syntax/ps1xml.vim @heaths
runtime/syntax/psl.vim @danielkho
runtime/syntax/qb64.vim @dkearns
runtime/syntax/r.vim @jalvesaq
runtime/syntax/racket.vim @benknoble
runtime/syntax/raml.vim @in3d
runtime/syntax/ratpoison.vim @trapd00r
runtime/syntax/rc.vim @chrisbra
@@ -387,6 +421,7 @@ runtime/syntax/sshconfig.vim @Jakuje
runtime/syntax/sshdconfig.vim @Jakuje
runtime/syntax/sudoers.vim @e-kwsm
runtime/syntax/svn.vim @hdima
runtime/syntax/swayconfig.vim @jamespeapen
runtime/syntax/systemverilog.vim @Kocha
runtime/syntax/tags.vim @cecamp
runtime/syntax/tap.vim @petdance
+2 -1
View File
@@ -1 +1,2 @@
custom: https://www.vim.org/sponsor/index.php
github: macvim-dev
open_collective: macvim
+26 -11
View File
@@ -17,8 +17,8 @@ env:
vi_cv_path_ruby: /usr/local/opt/ruby/bin/ruby
vi_cv_dll_name_perl: /System/Library/Perl/5.18/darwin-thread-multi-2level/CORE/libperl.dylib
vi_cv_dll_name_python: /System/Library/Frameworks/Python.framework/Versions/2.7/Python
vi_cv_dll_name_python3: /usr/local/Frameworks/Python.framework/Versions/3.9/Python
vi_cv_dll_name_python3_arm64: /opt/homebrew/Frameworks/Python.framework/Versions/3.9/Python
vi_cv_dll_name_python3: /usr/local/Frameworks/Python.framework/Versions/3.10/Python # Make sure to keep src/MacVim/vimrc synced with the Python version here for the Python DLL detection logic.
vi_cv_dll_name_python3_arm64: /opt/homebrew/Frameworks/Python.framework/Versions/3.10/Python
vi_cv_dll_name_ruby: /usr/local/opt/ruby/lib/libruby.dylib
vi_cv_dll_name_ruby_arm64: /opt/homebrew/opt/ruby/lib/libruby.dylib
vi_cv_dll_name_lua_arm64: /opt/homebrew/lib/liblua.dylib
@@ -33,17 +33,16 @@ jobs:
# Builds and test MacVim
build-and-test:
# Test on macOS 10.15 / 11.x, and also older version of Xcode for compatibility testing.
# Test on macOS 11.x / 12.x, and also older version of Xcode for compatibility testing.
strategy:
fail-fast: false
matrix:
include:
- os: macos-10.15
xcode: '11.7'
- os: macos-10.15
- os: macos-11
xcode: '13.0'
publish: true
- os: macos-11
- os: macos-12
runs-on: ${{ matrix.os }}
@@ -159,7 +158,27 @@ jobs:
cat src/auto/config.mk
cat src/auto/config.h
- name: Build
# Build Vim first, separately from MacVim, so that we can use it to run
# vimtags afterwards to get the most correct help tags before we copy
# that into the MacVim bundle.
- name: Build Vim
env:
LC_ALL: C
run: |
set -o verbose
NPROC=$(getconf _NPROCESSORS_ONLN)
echo "Building Vim with ${NPROC} cores"
make -C src -j${NPROC} Vim
# Re-generate Vim help tags, because sometimes the Vim's runtime is not
# updated to have the latest tags.
- name: Update Vim help tags
if: matrix.publish
run: make -C runtime/doc vimtags VIMEXE=../../src/vim
- name: Build MacVim
env:
LC_ALL: C
run: |
@@ -211,10 +230,6 @@ jobs:
check_arch "${VIM_BIN}"
check_arch "${MACVIM_BIN}"
- name: Update Vim help tags
if: matrix.publish
run: make -C runtime/doc vimtags VIMEXE=../../${VIM_BIN}
- name: Test
timeout-minutes: 20
run: make test
+2 -7
View File
@@ -6,10 +6,11 @@ on:
jobs:
scan:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
env:
CC: gcc
CFLAGS: -Wno-deprecated-declarations
DEBIAN_FRONTEND: noninteractive
steps:
@@ -50,12 +51,6 @@ jobs:
echo "CONFOPT=--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
) >> $GITHUB_ENV
- name: Set up system
run: |
# Setup lua5.3 manually since its package doesn't provide alternative.
# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
sudo update-alternatives --install /usr/bin/lua lua /usr/bin/lua5.3 10
- name: Configure
run: |
./configure --with-features=huge ${CONFOPT} --enable-fail-if-missing
+20
View File
@@ -0,0 +1,20 @@
name: Close inactive issues
on:
schedule:
- cron: "45 3 * * *" # 3:45 am UTC. Just a random time intentionally picked to be not during busy hours.
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5
with:
any-of-labels: "Response Needed"
days-before-stale: 45
days-before-close: 7
stale-issue-message: "This issue is stale because it has been waiting for a response for 45 days with no activity."
stale-pr-message: "This pull request is stale because it has been waiting for a response for 45 days with no activity."
close-issue-reason: "not_planned"
+1
View File
@@ -82,6 +82,7 @@ src/testdir/dostmp/*
src/testdir/messages
src/testdir/viminfo
src/testdir/opt_test.vim
src/testdir/failed
runtime/indent/testdir/*.out
runtime/indent/testdir/*.fail
src/memfile_test
-3
View File
@@ -65,9 +65,6 @@ If the maintainer does not respond, contact the vim-dev maillist.
# Translations
Translations of this CONTRIBUTING file:
[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/CONTRIBUTING_ko.md)
Translating messages and runtime files is very much appreciated! These things
can be translated:
* Messages in Vim, see [src/po/README.txt][1]
+7 -6
View File
@@ -171,7 +171,6 @@ SRC_ALL = \
src/viminfo.c \
src/winclip.c \
src/window.c \
src/tee/tee.c \
src/xxd/xxd.c \
src/testdir/gen_opt_test.vim \
src/testdir/README.txt \
@@ -487,7 +486,6 @@ SRC_UNIX = \
src/vimtutor \
src/gvimtutor \
src/which.sh \
src/tee/Makefile \
src/xxd/Makefile \
# source files for both DOS and Unix
@@ -516,7 +514,7 @@ SRC_DOS_UNIX = \
src/proto/if_tcl.pro \
src/typemap \
# source files for DOS (also in the extra archive)
# source files for MS-Windows (also in the extra archive)
SRC_DOS = \
src/GvimExt/*.mak \
src/GvimExt/GvimExt.reg \
@@ -570,6 +568,7 @@ SRC_DOS = \
src/proto/os_win32.pro \
src/proto/os_mswin.pro \
src/testdir/Make_dos.mak \
src/testdir/Make_mvc.mak \
src/testdir/Make_ming.mak \
src/testdir/dos.vim \
src/uninstall.c \
@@ -578,7 +577,10 @@ SRC_DOS = \
src/vimrun.c \
src/xpm_w32.c \
src/xpm_w32.h \
src/tee/Make_ming.mak \
src/tee/Make_mvc.mak \
src/tee/Makefile \
src/tee/tee.c \
src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \
nsis/gvim.nsi \
@@ -814,6 +816,8 @@ RT_SCRIPTS = \
runtime/plugin/README.txt \
runtime/syntax/*.vim \
runtime/syntax/README.txt \
runtime/syntax/shared/*.vim \
runtime/syntax/shared/README.txt \
# Unix runtime
RT_UNIX = \
@@ -943,9 +947,6 @@ EXTRA = \
README_extra.txt \
src/VisVim/VisVim.dll \
runtime/vimlogo.xpm \
src/tee/Makefile \
src/tee/Make_mvc.mak \
src/tee/tee.c \
# files in READMEdir that are included from the top dir
IN_README_DIR = \
+2 -5
View File
@@ -128,6 +128,8 @@ If you would like to help making Vim better, see the
## Information ##
If you are on macOS, you can use [Macvim](https://macvim-dev.github.io/macvim/).
The latest news about Vim can be found on the Vim home page:
https://www.vim.org/
@@ -150,8 +152,3 @@ Send any other comments, patches, flowers and suggestions to:
This is `README.md` for version 9.0 of Vim: Vi IMproved.
## Translations of this README ##
[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/README_ko.md)
+3 -13
View File
@@ -366,11 +366,7 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMTOOLS}\winpty-agent.exe
SetOutPath $0\colors
File ${VIMRT}\colors\*.*
SetOutPath $0\colors\tools
File ${VIMRT}\colors\tools\*.*
SetOutPath $0\colors\lists
File ${VIMRT}\colors\lists\*.*
File /r ${VIMRT}\colors\*.*
SetOutPath $0\compiler
File ${VIMRT}\compiler\*.*
@@ -395,13 +391,7 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMRT}\plugin\*.*
SetOutPath $0\autoload
File ${VIMRT}\autoload\*.*
SetOutPath $0\autoload\dist
File ${VIMRT}\autoload\dist\*.*
SetOutPath $0\autoload\xml
File ${VIMRT}\autoload\xml\*.*
File /r ${VIMRT}\autoload\*.*
SetOutPath $0\import\dist
File ${VIMRT}\import\dist\*.*
@@ -410,7 +400,7 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMSRC}\vim.ico
SetOutPath $0\syntax
File ${VIMRT}\syntax\*.*
File /r ${VIMRT}\syntax\*.*
SetOutPath $0\spell
File ${VIMRT}\spell\*.txt
+95
View File
@@ -0,0 +1,95 @@
" Support for bitbake indenting, see runtime/indent/bitbake.vim
function s:is_bb_python_func_def(lnum)
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return 0
endif
return synIDattr(stack[0], "name") == "bbPyFuncDef"
endfunction
function bitbake#Indent(lnum)
if !has('syntax_items')
return -1
endif
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return -1
endif
let name = synIDattr(stack[0], "name")
" TODO: support different styles of indentation for assignments. For now,
" we only support like this:
" VAR = " \
" value1 \
" value2 \
" "
"
" i.e. each value indented by shiftwidth(), with the final quote " completely unindented.
if name == "bbVarValue"
" Quote handling is tricky. kernel.bbclass has this line for instance:
" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}""
" Instead of trying to handle crazy cases like that, just assume that a
" double-quote on a line by itself (following an assignment) means the
" user is closing the assignment, and de-dent.
if getline(a:lnum) =~ '^\s*"$'
return 0
endif
let prevstack = synstack(a:lnum - 1, 1)
if len(prevstack) == 0
return -1
endif
let prevname = synIDattr(prevstack[0], "name")
" Only indent if there was actually a continuation character on
" the previous line, to avoid misleading indentation.
let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name")
let prev_continued = prevlinelastchar == "bbContinue"
" Did the previous line introduce an assignment?
if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1
if prev_continued
return shiftwidth()
endif
endif
if !prev_continued
return 0
endif
" Autoindent can take it from here
return -1
endif
if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
let ret = python#GetIndent(a:lnum, function('s:is_bb_python_func_def'))
" Should normally always be indented by at least one shiftwidth; but allow
" return of -1 (defer to autoindent) or -2 (force indent to 0)
if ret == 0
return shiftwidth()
elseif ret == -2
return 0
endif
return ret
endif
" TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot'
" Need to submit a patch upstream to Vim to provide an extension point.
" Unlike the Python indenter, the Sh indenter is way too large to copy and
" modify here.
if name == "bbShFuncRegion"
return GetShIndent()
endif
" TODO:
" + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user
" types an obvious BB keyword like addhandler or addtask, or starts
" writing a shell task. Maybe too hard to implement...
return -1
endfunction
+77 -166
View File
@@ -1,184 +1,95 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 21
vim9script
let s:keepcpo= &cpo
set cpo&vim
# Language: ConTeXt typesetting engine
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
# Former Maintainers: Nikolai Weibull <now@bitwi.se>
# Latest Revision: 2022 Aug 12
" Helper functions {{{
function! s:context_echo(message, mode)
redraw
echo "\r"
execute 'echohl' a:mode
echomsg '[ConTeXt]' a:message
echohl None
endf
# Typesetting {{{
import autoload './typeset.vim'
function! s:sh()
return has('win32') || has('win64') || has('win16') || has('win95')
\ ? ['cmd.exe', '/C']
\ : ['/bin/sh', '-c']
endfunction
export def ConTeXtCmd(path: string): list<string>
return ['mtxrun', '--script', 'context', '--nonstopmode', '--autogenerate', path]
enddef
" For backward compatibility
if exists('*win_getid')
export def Typeset(bufname: string, env = {}, Cmd = ConTeXtCmd): bool
return typeset.TypesetBuffer(bufname, Cmd, env, 'ConTeXt')
enddef
function! s:win_getid()
return win_getid()
endf
export def JobStatus()
typeset.JobStatus('ConTeXt')
enddef
function! s:win_id2win(winid)
return win_id2win(a:winid)
endf
export def StopJobs()
typeset.StopJobs('ConTeXt')
enddef
else
export def Log(bufname: string)
execute 'edit' typeset.LogPath(bufname)
enddef
# }}}
function! s:win_getid()
return winnr()
endf
# Completion {{{
def BinarySearch(base: string, keywords: list<string>): list<string>
const pat = '^' .. base
const len = len(keywords)
var res = []
var lft = 0
var rgt = len
function! s:win_id2win(winnr)
return a:winnr
endf
endif
" }}}
" ConTeXt jobs {{{
if has('job')
let g:context_jobs = []
" Print the status of ConTeXt jobs
function! context#job_status()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
let l:n = len(l:jobs)
call s:context_echo(
\ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n)
\ .' job'.(l:n == 1 ? '' : 's').' running'
\ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'),
\ 'ModeMsg')
endfunction
" Stop all ConTeXt jobs
function! context#stop_jobs()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
for job in l:jobs
call job_stop(job)
endfor
sleep 1
let l:tmp = []
for job in l:jobs
if job_status(job) == "run"
call add(l:tmp, job)
endif
endfor
let g:context_jobs = l:tmp
if empty(g:context_jobs)
call s:context_echo('Done. No jobs running.', 'ModeMsg')
# Find the leftmost index matching base
while lft < rgt
var i = (lft + rgt) / 2
if keywords[i] < base
lft = i + 1
else
call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
rgt = i
endif
endfunction
endwhile
function! context#callback(path, job, status)
if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case
call remove(g:context_jobs, index(g:context_jobs, a:job))
while lft < len && keywords[lft] =~ pat
add(res, keywords[lft])
lft += 1
endwhile
return res
enddef
var isMetaPostBlock = false
var MP_KEYWORDS: list<string> = []
var CTX_KEYWORDS: list<string> = []
# Complete only MetaPost keywords in MetaPost blocks, and complete only
# ConTeXt keywords otherwise.
export def Complete(findstart: number, base: string): any
if findstart == 1
if len(synstack(line("."), 1)) > 0 && synIDattr(synstack(line("."), 1)[0], "name") ==# 'contextMPGraphic'
isMetaPostBlock = true
return match(getline('.'), '\S\+\%' .. col('.') .. 'c')
endif
call s:callback(a:path, a:job, a:status)
endfunction
function! context#close_cb(channel)
call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback
endfunction
function! s:typeset(path)
call add(g:context_jobs,
\ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), {
\ 'close_cb' : 'context#close_cb',
\ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path]),
\ 'in_io' : 'null'
\ }))
endfunction
else " No jobs
function! context#job_status()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction!
function! context#stop_jobs()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction
function! context#callback(path, job, status)
call s:callback(a:path, a:job, a:status)
endfunction
function! s:typeset(path)
execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))
call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path, 0, v:shell_error])
endfunction
endif " has('job')
function! s:callback(path, job, status) abort
if a:status < 0 " Assume the job was terminated
return
# Complete only \commands starting with a backslash
isMetaPostBlock = false
var pos = match(getline('.'), '\\\zs\S\+\%' .. col('.') .. 'c')
return (pos == -1) ? -3 : pos
endif
" Get info about the current window
let l:winid = s:win_getid() " Save window id
let l:efm = &l:errorformat " Save local errorformat
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
" Set errorformat to parse ConTeXt errors
execute 'setl efm=' . escape(b:context_errorformat, ' ')
try " Set cwd to expand error file correctly
execute 'lcd' fnameescape(fnamemodify(a:path, ':h'))
catch /.*/
execute 'setl efm=' . escape(l:efm, ' ')
throw v:exception
endtry
try
execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log')
botright cwindow
finally " Restore cwd and errorformat
execute s:win_id2win(l:winid) . 'wincmd w'
execute 'lcd ' . fnameescape(l:cwd)
execute 'setl efm=' . escape(l:efm, ' ')
endtry
if a:status == 0
call s:context_echo('Success!', 'ModeMsg')
else
call s:context_echo('There are errors. ', 'ErrorMsg')
if isMetaPostBlock
if empty(MP_KEYWORDS)
MP_KEYWORDS = sort(syntaxcomplete#OmniSyntaxList(['mf\w\+', 'mp\w\+']))
endif
return BinarySearch(base, MP_KEYWORDS)
endif
endfunction
function! context#command()
return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode'
\ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
endfunction
if empty(CTX_KEYWORDS)
CTX_KEYWORDS = sort(syntaxcomplete#OmniSyntaxList([
'context\w\+', 'texAleph', 'texEtex', 'texLuatex', 'texOmega',
'texPdftex', 'texTex', 'texXeTeX'
]))
endif
return BinarySearch(base, CTX_KEYWORDS)
enddef
# }}}
" Accepts an optional path (useful for big projects, when the file you are
" editing is not the project's root document). If no argument is given, uses
" the path of the current buffer.
function! context#typeset(...) abort
let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p")
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
call s:context_echo('Typesetting...', 'ModeMsg')
execute 'lcd' fnameescape(fnamemodify(l:path, ":h"))
try
call s:typeset(l:path)
finally " Restore local working directory
execute 'lcd ' . fnameescape(l:cwd)
endtry
endfunction!
"}}}
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 fdm=marker
# vim: sw=2 fdm=marker
+27 -3
View File
@@ -348,7 +348,7 @@ export def FTidl()
setf idl
enddef
# Distinguish between "default" and Cproto prototype file. */
# Distinguish between "default", Prolog and Cproto prototype file.
export def ProtoCheck(default: string)
# Cproto files have a comment in the first line and a function prototype in
# the second line, it always ends in ";". Indent files may also have
@@ -358,7 +358,14 @@ export def ProtoCheck(default: string)
if getline(2) =~ '.;$'
setf cpp
else
exe 'setf ' .. default
# recognize Prolog by specific text in the first non-empty line
# require a blank after the '%' because Perl uses "%list" and "%translate"
var l = getline(nextnonblank(1))
if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
setf prolog
else
exe 'setf ' .. default
endif
endif
enddef
@@ -519,7 +526,7 @@ export def FTinc()
# headers so assume POV-Ray
elseif lines =~ '^\s*\%({\|(\*\)' || lines =~? ft_pascal_keywords
setf pascal
elseif lines =~# '\<\%(require\|inherit\)\>' || lines =~# '\w\+ = '
elseif lines =~# '\<\%(require\|inherit\)\>' || lines =~# '[A-Z][A-Za-z0-9_:${}]*\s\+\%(??\|[?:+]\)\?= '
setf bitbake
else
FTasmsyntax()
@@ -871,6 +878,23 @@ export def FTsig()
endif
enddef
# This function checks the first 100 lines of files matching "*.sil" to
# resolve detection between Swift Intermediate Language and SILE.
export def FTsil()
for lnum in range(1, [line('$'), 100]->min())
var line: string = getline(lnum)
if line =~ '^\s*[\\%]'
setf sile
return
elseif line =~ '^\s*\S'
setf sil
return
endif
endfor
# no clue, default to "sil"
setf sil
enddef
export def FTsys()
if exists("g:filetype_sys")
exe "setf " .. g:filetype_sys
+252
View File
@@ -0,0 +1,252 @@
" Support for Python indenting, see runtime/indent/python.vim
let s:keepcpo= &cpo
set cpo&vim
" need to inspect some old g:pyindent_* variables to be backward compatible
let g:python_indent = extend(get(g:, 'python_indent', {}), #{
\ closed_paren_align_last_line: v:true,
\ open_paren: get(g:, 'pyindent_open_paren', 'shiftwidth() * 2'),
\ nested_paren: get(g:, 'pyindent_nested_paren', 'shiftwidth()'),
\ continue: get(g:, 'pyindent_continue', 'shiftwidth() * 2'),
"\ searchpair() can be slow, limit the time to 150 msec or what is put in
"\ g:python_indent.searchpair_timeout
\ searchpair_timeout: get(g:, 'pyindent_searchpair_timeout', 150),
"\ Identing inside parentheses can be very slow, regardless of the searchpair()
"\ timeout, so let the user disable this feature if he doesn't need it
\ disable_parentheses_indenting: get(g:, 'pyindent_disable_parentheses_indenting', v:false),
\ }, 'keep')
let s:maxoff = 50 " maximum number of lines to look backwards for ()
function s:SearchBracket(fromlnum, flags)
return searchpairpos('[[({]', '', '[])}]', a:flags,
\ {-> synstack('.', col('.'))
\ ->map({_, id -> id->synIDattr('name')})
\ ->match('\%(Comment\|Todo\|String\)$') >= 0},
\ [0, a:fromlnum - s:maxoff]->max(), g:python_indent.searchpair_timeout)
endfunction
" See if the specified line is already user-dedented from the expected value.
function s:Dedented(lnum, expected)
return indent(a:lnum) <= a:expected - shiftwidth()
endfunction
" Some other filetypes which embed Python have slightly different indent
" rules (e.g. bitbake). Those filetypes can pass an extra funcref to this
" function which is evaluated below.
function python#GetIndent(lnum, ...)
let ExtraFunc = a:0 > 0 ? a:1 : 0
" If this line is explicitly joined: If the previous line was also joined,
" line it up with that one, otherwise add two 'shiftwidth'
if getline(a:lnum - 1) =~ '\\$'
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
return indent(a:lnum - 1)
endif
return indent(a:lnum - 1) + get(g:, 'pyindent_continue', g:python_indent.continue)->eval()
endif
" If the start of the line is in a string don't change the indent.
if has('syntax_items')
\ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
return -1
endif
" Search backwards for the previous non-empty line.
let plnum = prevnonblank(v:lnum - 1)
if plnum == 0
" This is the first non-empty line, use zero indent.
return 0
endif
if g:python_indent.disable_parentheses_indenting == 1
let plindent = indent(plnum)
let plnumstart = plnum
else
" Indent inside parens.
" Align with the open paren unless it is at the end of the line.
" E.g.
" open_paren_not_at_EOL(100,
" (200,
" 300),
" 400)
" open_paren_at_EOL(
" 100, 200, 300, 400)
call cursor(a:lnum, 1)
let [parlnum, parcol] = s:SearchBracket(a:lnum, 'nbW')
if parlnum > 0
if parcol != col([parlnum, '$']) - 1
return parcol
elseif getline(a:lnum) =~ '^\s*[])}]' && !g:python_indent.closed_paren_align_last_line
return indent(parlnum)
endif
endif
call cursor(plnum, 1)
" If the previous line is inside parenthesis, use the indent of the starting
" line.
let [parlnum, _] = s:SearchBracket(plnum, 'nbW')
if parlnum > 0
if a:0 > 0 && ExtraFunc(parlnum)
" We may have found the opening brace of a bitbake Python task, e.g. 'python do_task {'
" If so, ignore it here - it will be handled later.
let parlnum = 0
let plindent = indent(plnum)
let plnumstart = plnum
else
let plindent = indent(parlnum)
let plnumstart = parlnum
endif
else
let plindent = indent(plnum)
let plnumstart = plnum
endif
" When inside parenthesis: If at the first line below the parenthesis add
" two 'shiftwidth', otherwise same as previous line.
" i = (a
" + b
" + c)
call cursor(a:lnum, 1)
let [p, _] = s:SearchBracket(a:lnum, 'bW')
if p > 0
if a:0 > 0 && ExtraFunc(p)
" Currently only used by bitbake
" Handle first non-empty line inside a bitbake Python task
if p == plnum
return shiftwidth()
endif
" Handle the user actually trying to close a bitbake Python task
let line = getline(a:lnum)
if line =~ '^\s*}'
return -2
endif
" Otherwise ignore the brace
let p = 0
else
if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'.
let [pp, _] = s:SearchBracket(a:lnum, 'bW')
if pp > 0
return indent(plnum)
\ + get(g:, 'pyindent_nested_paren', g:python_indent.nested_paren)->eval()
endif
return indent(plnum)
\ + get(g:, 'pyindent_open_paren', g:python_indent.open_paren)->eval()
endif
if plnumstart == p
return indent(plnum)
endif
return plindent
endif
endif
endif
" Get the line and remove a trailing comment.
" Use syntax highlighting attributes when possible.
let pline = getline(plnum)
let pline_len = strlen(pline)
if has('syntax_items')
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synstack(plnum, pline_len)
\ ->map({_, id -> id->synIDattr('name')})
\ ->match('\%(Comment\|Todo\)$') >= 0
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synstack(plnum, col)
\ ->map({_, id -> id->synIDattr('name')})
\ ->match('\%(Comment\|Todo\)$') >= 0
let max = col
else
let min = col + 1
endif
endwhile
let pline = strpart(pline, 0, min - 1)
endif
else
let col = 0
while col < pline_len
if pline[col] == '#'
let pline = strpart(pline, 0, col)
break
endif
let col = col + 1
endwhile
endif
" If the previous line ended with a colon, indent this line
if pline =~ ':\s*$'
return plindent + shiftwidth()
endif
" If the previous line was a stop-execution statement...
if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\)\>'
" See if the user has already dedented
if s:Dedented(a:lnum, indent(plnum))
" If so, trust the user
return -1
endif
" If not, recommend one dedent
return indent(plnum) - shiftwidth()
endif
" If the current line begins with a keyword that lines up with "try"
if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
let lnum = a:lnum - 1
while lnum >= 1
if getline(lnum) =~ '^\s*\(try\|except\)\>'
let ind = indent(lnum)
if ind >= indent(a:lnum)
return -1 " indent is already less than this
endif
return ind " line up with previous try or except
endif
let lnum = lnum - 1
endwhile
return -1 " no matching "try"!
endif
" If the current line begins with a header keyword, dedent
if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'
" Unless the previous line was a one-liner
if getline(plnumstart) =~ '^\s*\(for\|if\|elif\|try\)\>'
return plindent
endif
" Or the user has already dedented
if s:Dedented(a:lnum, plindent)
return -1
endif
return plindent - shiftwidth()
endif
" When after a () construct we probably want to go back to the start line.
" a = (b
" + c)
" here
if parlnum > 0
" ...unless the user has already dedented
if s:Dedented(a:lnum, plindent)
return -1
else
return plindent
endif
endif
return -1
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
+233
View File
@@ -0,0 +1,233 @@
vim9script
# Language: Generic TeX typesetting engine
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
# Latest Revision: 2022 Aug 12
# Constants and helpers {{{
const SLASH = !exists("+shellslash") || &shellslash ? '/' : '\'
def Echo(msg: string, mode: string, label: string)
redraw
echo "\r"
execute 'echohl' mode
echomsg printf('[%s] %s', label, msg)
echohl None
enddef
def EchoMsg(msg: string, label = 'Notice')
Echo(msg, 'ModeMsg', label)
enddef
def EchoWarn(msg: string, label = 'Warning')
Echo(msg, 'WarningMsg', label)
enddef
def EchoErr(msg: string, label = 'Error')
Echo(msg, 'ErrorMsg', label)
enddef
# }}}
# Track jobs {{{
var running_jobs = {} # Dictionary of job IDs of jobs currently executing
def AddJob(label: string, j: job)
if !has_key(running_jobs, label)
running_jobs[label] = []
endif
add(running_jobs[label], j)
enddef
def RemoveJob(label: string, j: job)
if has_key(running_jobs, label) && index(running_jobs[label], j) != -1
remove(running_jobs[label], index(running_jobs[label], j))
endif
enddef
def GetRunningJobs(label: string): list<job>
return has_key(running_jobs, label) ? running_jobs[label] : []
enddef
# }}}
# Callbacks {{{
def ProcessOutput(qfid: number, wd: string, efm: string, ch: channel, msg: string)
# Make sure the quickfix list still exists
if getqflist({'id': qfid}).id != qfid
EchoErr("Quickfix list not found, stopping the job")
call job_stop(ch_getjob(ch))
return
endif
# Make sure the working directory is correct
silent execute "lcd" wd
setqflist([], 'a', {'id': qfid, 'lines': [msg], 'efm': efm})
silent lcd -
enddef
def CloseCb(ch: channel)
job_status(ch_getjob(ch)) # Trigger exit_cb's callback
enddef
def ExitCb(label: string, jobid: job, exitStatus: number)
RemoveJob(label, jobid)
if exitStatus == 0
botright cwindow
EchoMsg('Success!', label)
elseif exitStatus < 0
EchoWarn('Job terminated', label)
else
botright copen
wincmd p
EchoWarn('There are errors.', label)
endif
enddef
# }}}
# Create a new empty quickfix list at the end of the stack and return its id {{{
def NewQuickfixList(path: string): number
if setqflist([], ' ', {'nr': '$', 'title': path}) == -1
return -1
endif
return getqflist({'nr': '$', 'id': 0}).id
enddef
# }}}
# Public interface {{{
# When a TeX document is split into several source files, each source file
# may contain a "magic line" specifiying the "root" file, e.g.:
#
# % !TEX root = main.tex
#
# Using this line, Vim can know which file to typeset even if the current
# buffer is different from main.tex.
#
# This function searches for the magic line in the first ten lines of the
# given buffer, and returns the full path of the root document.
#
# NOTE: the value of "% !TEX root" *must* be a relative path.
export def FindRootDocument(bufname: string = bufname("%")): string
const bufnr = bufnr(bufname)
if !bufexists(bufnr)
return bufname
endif
var rootpath = fnamemodify(bufname(bufnr), ':p')
# Search for magic line `% !TEX root = ...` in the first ten lines
const header = getbufline(bufnr, 1, 10)
const idx = match(header, '^\s*%\s\+!TEX\s\+root\s*=\s*\S')
if idx > -1
const main = matchstr(header[idx], '!TEX\s\+root\s*=\s*\zs.*$')
rootpath = simplify(fnamemodify(rootpath, ":h") .. SLASH .. main)
endif
return rootpath
enddef
export def LogPath(bufname: string): string
const logfile = FindRootDocument(bufname)
return fnamemodify(logfile, ":r") .. ".log"
enddef
# Typeset the specified path
#
# Parameters:
# label: a descriptive string used in messages to identify the kind of job
# Cmd: a function that takes the path of a document and returns the typesetting command
# path: the path of the document to be typeset. To avoid ambiguities, pass a *full* path.
# efm: the error format string to parse the output of the command.
# env: environment variables for the process (passed to job_start())
#
# Returns:
# true if the job is started successfully;
# false otherwise.
export def Typeset(
label: string,
Cmd: func(string): list<string>,
path: string,
efm: string,
env: dict<string> = {}
): bool
var fp = fnamemodify(path, ":p")
var wd = fnamemodify(fp, ":h")
var qfid = NewQuickfixList(fp)
if qfid == -1
EchoErr('Could not create quickfix list', label)
return false
endif
if !filereadable(fp)
EchoErr(printf('File not readable: %s', fp), label)
return false
endif
var jobid = job_start(Cmd(path), {
env: env,
cwd: wd,
in_io: "null",
callback: (c, m) => ProcessOutput(qfid, wd, efm, c, m),
close_cb: CloseCb,
exit_cb: (j, e) => ExitCb(label, j, e),
})
if job_status(jobid) ==# "fail"
EchoErr("Failed to start job", label)
return false
endif
AddJob(label, jobid)
EchoMsg('Typesetting...', label)
return true
enddef
export def JobStatus(label: string)
EchoMsg('Jobs still running: ' .. string(len(GetRunningJobs(label))), label)
enddef
export def StopJobs(label: string)
for job in GetRunningJobs(label)
job_stop(job)
endfor
EchoMsg('Done.', label)
enddef
# Typeset the specified buffer
#
# Parameters:
# name: a buffer's name. this may be empty to indicate the current buffer.
# cmd: a function that takes the path of a document and returns the typesetting command
# label: a descriptive string used in messages to identify the kind of job
# env: environment variables for the process (passed to job_start())
#
# Returns:
# true if the job is started successfully;
# false otherwise.
export def TypesetBuffer(
name: string,
Cmd: func(string): list<string>,
env = {},
label = 'Typeset'
): bool
const bufname = bufname(name)
if empty(bufname)
EchoErr('Please save the buffer first.', label)
return false
endif
const efm = getbufvar(bufnr(bufname), "&efm")
const rootpath = FindRootDocument(bufname)
return Typeset('ConTeXt', Cmd, rootpath, efm, env)
enddef
# }}}
# vim: sw=2 fdm=marker
+40 -16
View File
@@ -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 Updated: Sat 11 Jun 2022 11:16:14 MSK
" Last Updated: Fri 02 Sep 2022 09:41:44 MSK
" Generated by Colortemplate v2.2.0
@@ -13,12 +13,12 @@ set background=dark
hi clear
let g:colors_name = 'blue'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#870000', '#006400', '#878700', '#000087', '#870087', '#008787', '#bcbcbc', '#878787', '#d70000', '#00ff00', '#ffdf00', '#5fafff', '#d787d7', '#5fffff', '#ffffff']
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi Normal guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
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
@@ -27,9 +27,9 @@ hi ColorColumn guifg=NONE guibg=#870087 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=#ffdf00 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffdf00 guibg=#005faf gui=bold cterm=NONE
hi EndOfBuffer guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
hi CursorIM guifg=#000000 guibg=#ffd700 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffd700 guibg=#005faf gui=bold cterm=NONE
hi EndOfBuffer guifg=#ffd700 guibg=#000087 gui=NONE cterm=NONE
hi Error guifg=#ff7f50 guibg=#000087 gui=reverse cterm=reverse
hi ErrorMsg guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE
hi FoldColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
@@ -43,7 +43,7 @@ hi NonText guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
hi Question guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
hi Search guifg=#ffdf00 guibg=#000000 gui=reverse cterm=reverse
hi Search guifg=#ffd700 guibg=#000000 gui=reverse cterm=reverse
hi SignColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#d70000 guibg=NONE guisp=#d70000 gui=undercurl cterm=underline
@@ -57,8 +57,8 @@ hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NO
hi VertSplit guifg=#008787 guibg=NONE gui=NONE cterm=NONE
hi Visual guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
hi VisualNOS guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
hi WarningMsg guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000087 guibg=#ffdf00 gui=NONE cterm=NONE
hi WarningMsg guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000087 guibg=#ffd700 gui=NONE cterm=NONE
hi debugBreakpoint guifg=#00ff00 guibg=#000087 gui=reverse cterm=reverse
hi debugPC guifg=#5fffff guibg=#000087 gui=reverse cterm=reverse
hi Directory guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
@@ -73,7 +73,7 @@ hi Statement guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
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=#ffdf00 guibg=NONE gui=NONE cterm=NONE
hi Label guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link Debug Special
hi! link diffAdded String
@@ -120,6 +120,8 @@ hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link Terminal Normal
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
@@ -165,7 +167,7 @@ if s:t_Co >= 256
hi VertSplit ctermfg=30 ctermbg=NONE cterm=NONE
hi Visual ctermfg=231 ctermbg=30 cterm=NONE
hi VisualNOS ctermfg=30 ctermbg=231 cterm=NONE
hi WarningMsg ctermfg=160 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=176 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
hi debugBreakpoint ctermfg=46 ctermbg=18 cterm=reverse
hi debugPC ctermfg=87 ctermbg=18 cterm=reverse
@@ -228,6 +230,8 @@ if s:t_Co >= 256
hi! link Tag Special
hi! link Typedef Type
hi! link Terminal Normal
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@@ -276,7 +280,7 @@ if s:t_Co >= 16
hi VertSplit ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Visual ctermfg=white ctermbg=darkcyan cterm=NONE
hi VisualNOS ctermfg=darkcyan ctermbg=white cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=magenta ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=darkblue ctermbg=yellow cterm=NONE
hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
@@ -339,6 +343,8 @@ if s:t_Co >= 16
hi! link Tag Special
hi! link Typedef Type
hi! link Terminal Normal
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@@ -449,6 +455,8 @@ if s:t_Co >= 8
hi! link Tag Special
hi! link Typedef Type
hi! link Terminal Normal
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@@ -526,6 +534,22 @@ if s:t_Co >= 0
endif
" Background: dark
" Color: x_black #000000 16 black
" Color: x_darkred #cd0000 160 darkred
" Color: x_darkgreen #00cd00 40 darkgreen
" Color: x_darkyellow #cdcd00 184 darkyellow
" Color: x_darkblue #0000ee 21 darkblue
" Color: x_darkmagenta #cd00cd 164 darkmagenta
" Color: x_darkcyan #00cdcd 44 darkcyan
" Color: x_gray #e5e5e5 254 gray
" Color: x_darkgray #7f7f7f 244 darkgray
" Color: x_red #ff0000 196 red
" Color: x_green #00ff00 46 green
" Color: x_yellow #ffff00 226 yellow
" Color: x_blue #5c5cff 63 blue
" Color: x_magenta #ff00ff 201 magenta
" Color: x_cyan #00ffff 51 cyan
" Color: x_white #ffffff 231 white
" Color: black #000000 16 black
" Color: darkred #870000 88 darkred
" Color: darkyellow #878700 100 darkyellow
@@ -537,7 +561,7 @@ endif
" Color: darkgray #878787 102 darkgray
" Color: red #d70000 160 red
" Color: green #00ff00 46 green
" Color: yellow #ffdf00 220 yellow
" Color: yellow #ffd700 220 yellow
" Color: blue #005faf 25 blue
" Color: magenta #d787d7 176 magenta
" Color: cyan #5fffff 87 cyan
@@ -549,8 +573,8 @@ endif
" Color: coral #ff7f50 209 red
" Color: olivedrab #6b8e23 64 green
" Color: slateblue #6a5acd 62 darkmagenta
" Term colors: black darkred darkgreen darkyellow darkblue darkmagenta darkcyan gray
" Term colors: darkgray red green yellow xtermblue magenta cyan white
" Term colors: x_black x_darkred x_darkgreen x_darkyellow x_darkblue x_darkmagenta x_darkcyan x_gray
" Term colors: x_darkgray x_red x_green x_yellow x_blue x_magenta x_cyan x_white
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
+6 -2
View File
@@ -4,7 +4,7 @@
" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sat 11 Jun 2022 14:37:41 MSK
" Last Updated: Fri 02 Sep 2022 09:40:36 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=dark
hi clear
let g:colors_name = 'darkblue'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff']
@@ -65,6 +65,8 @@ hi! link diffCommon WarningMsg
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
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=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn guifg=#c0c0c0 guibg=#8b0000 gui=NONE cterm=NONE
@@ -171,6 +173,8 @@ if s:t_Co >= 256
hi! link diffBDiffer WarningMsg
hi! link lCursor Cursor
hi! link CurSearch Search
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=252 ctermbg=17 cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=252 ctermbg=88 cterm=NONE
+8 -4
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:50:30 2022
" Last Updated: Sun 04 Sep 2022 09:31:26 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=light
hi clear
let g:colors_name = 'delek'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000']
@@ -25,6 +25,8 @@ hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link ErrorMsg Error
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi EndOfBuffer guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#ffff00 guibg=#00008b gui=bold cterm=bold
@@ -57,7 +59,7 @@ hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi WarningMsg guifg=#cd00cd guibg=#ffffff gui=NONE cterm=NONE
hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
hi Question guifg=#00cd00 guibg=NONE gui=bold cterm=bold
hi Question guifg=#008700 guibg=NONE gui=bold cterm=bold
hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#ffffff guibg=#ff1493 gui=NONE cterm=NONE
hi Search guifg=#ffffff guibg=#cd00cd gui=NONE cterm=NONE
@@ -97,6 +99,8 @@ if s:t_Co >= 256
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link ErrorMsg Error
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi EndOfBuffer ctermfg=250 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=226 ctermbg=18 cterm=bold
@@ -129,7 +133,7 @@ if s:t_Co >= 256
hi WarningMsg ctermfg=164 ctermbg=231 cterm=NONE
hi MoreMsg ctermfg=16 ctermbg=231 cterm=bold
hi ModeMsg ctermfg=16 ctermbg=231 cterm=bold
hi Question ctermfg=40 ctermbg=NONE cterm=bold
hi Question ctermfg=28 ctermbg=NONE cterm=bold
hi Todo ctermfg=16 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=231 ctermbg=198 cterm=NONE
hi Search ctermfg=231 ctermbg=164 cterm=NONE
+8 -4
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:51:36 2022
" Last Updated: Fri 02 Sep 2022 09:39:21 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=dark
hi clear
let g:colors_name = 'desert'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#7f7f8c', '#cd5c5c', '#9acd32', '#bdb76b', '#75a0ff', '#eeee00', '#cd853f', '#666666', '#8a7f7f', '#ff0000', '#89fb98', '#f0e68c', '#6dceeb', '#ffde9b', '#ffa0a0', '#c2bfa5']
@@ -25,6 +25,8 @@ hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link EndOfBuffer NonText
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
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
@@ -40,7 +42,7 @@ hi TabLineFill guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
hi TabLineSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
hi ToolbarButton guifg=#333333 guibg=#ffde9b gui=bold cterm=bold
hi NonText guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#6dceeb guibg=#4d4d4d gui=NONE cterm=NONE
hi SpecialKey guifg=#9acd32 guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#eeee00 guibg=#4d4d4d gui=NONE cterm=NONE
hi Visual guifg=#f0e68c guibg=#6b8e24 gui=NONE cterm=NONE
@@ -97,6 +99,8 @@ if s:t_Co >= 256
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link EndOfBuffer NonText
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=231 ctermbg=236 cterm=NONE
hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
@@ -112,7 +116,7 @@ if s:t_Co >= 256
hi TabLineSel ctermfg=236 ctermbg=186 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=241 cterm=NONE
hi ToolbarButton ctermfg=236 ctermbg=222 cterm=bold
hi NonText ctermfg=81 ctermbg=NONE cterm=NONE
hi NonText ctermfg=81 ctermbg=239 cterm=NONE
hi SpecialKey ctermfg=112 ctermbg=NONE cterm=NONE
hi Folded ctermfg=226 ctermbg=239 cterm=NONE
hi Visual ctermfg=186 ctermbg=64 cterm=NONE
+4 -2
View File
@@ -3,7 +3,7 @@
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" Website: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:48:00 2022
" Last Updated: Fri 02 Sep 2022 09:44:22 MSK
" Generated by Colortemplate v2.2.0
@@ -12,7 +12,7 @@ set background=dark
hi clear
let g:colors_name = 'elflord'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
hi! link Terminal Normal
hi! link Boolean Constant
@@ -43,6 +43,8 @@ hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+30 -11
View File
@@ -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 Updated: Sun Jun 12 10:52:56 2022
" Last Updated: Sun 04 Sep 2022 09:48:34 MSK
" Generated by Colortemplate v2.2.0
@@ -13,10 +13,10 @@ set background=dark
hi clear
let g:colors_name = 'evening'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#ffa500', '#2e8b57', '#ffff00', '#006faf', '#8b008b', '#008b8b', '#bebebe', '#4d4d4d', '#ff5f5f', '#00ff00', '#ffff60', '#0087ff', '#ff80ff', '#00ffff', '#ffffff']
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0087ff', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi! link VertSplit StatusLineNC
hi! link StatusLineTerm StatusLine
@@ -64,6 +64,8 @@ hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
@@ -98,7 +100,7 @@ hi ToolbarButton guifg=NONE guibg=#999999 gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual guifg=#ffffff guibg=#999999 gui=NONE cterm=NONE
hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi WarningMsg guifg=#8b0000 guibg=NONE gui=NONE cterm=NONE
hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=bold
hi debugBreakpoint guifg=#00008b guibg=#ff0000 gui=NONE cterm=NONE
hi debugPC guifg=#00008b guibg=#0000ff gui=NONE cterm=NONE
@@ -170,6 +172,8 @@ if s:t_Co >= 256
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=231 ctermbg=236 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
@@ -204,7 +208,7 @@ if s:t_Co >= 256
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=231 ctermbg=246 cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi WarningMsg ctermfg=88 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=16 ctermbg=226 cterm=bold
hi debugBreakpoint ctermfg=18 ctermbg=196 cterm=NONE
hi debugPC ctermfg=18 ctermbg=21 cterm=NONE
@@ -279,6 +283,8 @@ if s:t_Co >= 16
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
@@ -313,7 +319,7 @@ if s:t_Co >= 16
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=white ctermbg=darkgray cterm=NONE
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=bold
hi debugBreakpoint ctermfg=darkblue ctermbg=red cterm=NONE
hi debugPC ctermfg=darkblue ctermbg=blue cterm=NONE
@@ -494,13 +500,26 @@ endif
" Color: grey30 #4d4d4d 239 darkgray
" Color: grey40 #666666 241 darkgray
" Color: grey60 #999999 246 darkgray
" Color: xtermblue #0087ff 33 blue
" Color: xtermdarkblue #006faf 25 darkblue
" Color: xtermred #ff5f5f 203 red
" Color: comment #80a0ff 111 lightblue
" Color: darkred #8b0000 88 darkred
" Term colors: black orange seagreen yellow xtermdarkblue darkmagenta darkcyan grey
" Term colors: grey30 xtermred green lightyellow xtermblue magenta cyan white
" Color: x_black #000000 16 black
" Color: x_darkred #cd0000 160 darkred
" Color: x_darkgreen #00cd00 40 darkgreen
" Color: x_darkyellow #cdcd00 184 darkyellow
" Color: x_darkblue_m #0087ff 33 darkblue
" Color: x_darkmagenta #cd00cd 164 darkmagenta
" Color: x_darkcyan #00cdcd 44 darkcyan
" Color: x_gray #e5e5e5 254 gray
" Color: x_darkgray #7f7f7f 244 darkgray
" Color: x_red #ff0000 196 red
" Color: x_green #00ff00 46 green
" Color: x_yellow #ffff00 226 yellow
" Color: x_blue #5c5cff 63 blue
" Color: x_magenta #ff00ff 201 magenta
" Color: x_cyan #00ffff 51 cyan
" Color: x_white #ffffff 231 white
" Term colors: x_black x_darkred x_darkgreen x_darkyellow x_darkblue_m x_darkmagenta x_darkcyan x_gray
" Term colors: x_darkgray x_red x_green x_yellow x_blue x_magenta x_cyan x_white
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
+523
View File
@@ -0,0 +1,523 @@
" Name: habamax
" Description: Hubba hubba hubba.
" Author: Maxim Kim <habamax@gmail.com>
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 02 Sep 2022 09:45:11 MSK
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
let g:colors_name = 'habamax'
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#1c1c1c', '#d75f5f', '#87af87', '#afaf87', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d7875f', '#afd7af', '#d7d787', '#87afd7', '#d7afd7', '#87afaf', '#bcbcbc']
endif
hi! link Terminal Normal
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link javaScriptFunction Statement
hi! link javaScriptIdentifier Statement
hi! link sqlKeyword Statement
hi! link yamlBlockMappingKey Statement
hi! link rubyMacro Statement
hi! link rubyDefine Statement
hi! link vimVar Normal
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! link elixirOperator Statement
hi! link elixirKeyword Statement
hi! link elixirBlockDefinition Statement
hi! link elixirDefine Statement
hi! link elixirPrivateDefine Statement
hi! link elixirGuard Statement
hi! link elixirPrivateGuard Statement
hi! link elixirModuleDefine Statement
hi! link elixirProtocolDefine Statement
hi! link elixirImplDefine Statement
hi! link elixirRecordDefine Statement
hi! link elixirPrivateRecordDefine Statement
hi! link elixirMacroDefine Statement
hi! link elixirPrivateMacroDefine Statement
hi! link elixirDelegateDefine Statement
hi! link elixirOverridableDefine Statement
hi! link elixirExceptionDefine Statement
hi! link elixirCallbackDefine Statement
hi! link elixirStructDefine Statement
hi! link elixirExUnitMacro Statement
hi! link elixirInclude Statement
hi! link elixirAtom PreProc
hi! link elixirDocTest String
hi ALEErrorSign guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE
hi ALEInfoSign guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
hi ALEWarningSign guifg=#af87af guibg=NONE gui=NONE cterm=NONE
hi ALEError guifg=#1c1c1c guibg=#d75f5f gui=NONE cterm=NONE
hi ALEVirtualTextError guifg=#1c1c1c guibg=#d75f5f gui=NONE cterm=NONE
hi ALEWarning guifg=#1c1c1c guibg=#af87af gui=NONE cterm=NONE
hi ALEVirtualTextWarning guifg=#1c1c1c guibg=#af87af gui=NONE cterm=NONE
hi ALEInfo guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
hi ALEVirtualTextInfo guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
hi Normal guifg=#bcbcbc guibg=#1c1c1c gui=NONE cterm=NONE
hi Statusline guifg=#1c1c1c guibg=#9e9e9e gui=NONE cterm=NONE
hi StatuslineNC guifg=#1c1c1c guibg=#767676 gui=NONE cterm=NONE
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=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=#9e9e9e guibg=#1c1c1c gui=bold,reverse cterm=bold,reverse
hi QuickFixLine guifg=#1c1c1c guibg=#5f87af gui=NONE cterm=NONE
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
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=#1c1c1c guibg=#87afaf gui=NONE cterm=NONE
hi VisualNOS guifg=#1c1c1c guibg=#5f8787 gui=NONE cterm=NONE
hi Pmenu guifg=NONE guibg=#262626 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#767676 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel guifg=#1c1c1c guibg=#afaf87 gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error guifg=#d75f5f guibg=#1c1c1c gui=reverse cterm=reverse
hi ErrorMsg guifg=#d75f5f guibg=#1c1c1c gui=reverse cterm=reverse
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=#5f8787 guibg=#1c1c1c gui=reverse cterm=reverse
hi Search guifg=#1c1c1c guibg=#87af87 gui=NONE cterm=NONE
hi IncSearch guifg=#1c1c1c guibg=#ffaf5f gui=NONE cterm=NONE
hi CurSearch guifg=#1c1c1c guibg=#afaf87 gui=NONE cterm=NONE
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=#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=#262626 gui=NONE cterm=NONE
hi SpellBad guifg=NONE guibg=NONE guisp=#d75f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
hi SpellCap guifg=NONE guibg=NONE guisp=#5f87af gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
hi SpellLocal guifg=NONE guibg=NONE guisp=#87af87 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=underline
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=#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=#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=#d7d787 guibg=NONE gui=bold cterm=bold
hi Directory guifg=#87afaf guibg=NONE gui=bold cterm=bold
hi Conceal guifg=#767676 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Debug guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE
hi DiffAdd guifg=#000000 guibg=#87af87 gui=NONE cterm=NONE
hi DiffDelete guifg=#af875f guibg=NONE gui=NONE cterm=NONE
hi diffAdded guifg=#87af87 guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE
hi diffSubname guifg=#af87af guibg=NONE gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#d7d7d7 gui=NONE cterm=NONE
hi DiffChange guifg=#000000 guibg=#afafaf gui=NONE cterm=NONE
if s:t_Co >= 256
hi! link Terminal Normal
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link javaScriptFunction Statement
hi! link javaScriptIdentifier Statement
hi! link sqlKeyword Statement
hi! link yamlBlockMappingKey Statement
hi! link rubyMacro Statement
hi! link rubyDefine Statement
hi! link vimVar Normal
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! link elixirOperator Statement
hi! link elixirKeyword Statement
hi! link elixirBlockDefinition Statement
hi! link elixirDefine Statement
hi! link elixirPrivateDefine Statement
hi! link elixirGuard Statement
hi! link elixirPrivateGuard Statement
hi! link elixirModuleDefine Statement
hi! link elixirProtocolDefine Statement
hi! link elixirImplDefine Statement
hi! link elixirRecordDefine Statement
hi! link elixirPrivateRecordDefine Statement
hi! link elixirMacroDefine Statement
hi! link elixirPrivateMacroDefine Statement
hi! link elixirDelegateDefine Statement
hi! link elixirOverridableDefine Statement
hi! link elixirExceptionDefine Statement
hi! link elixirCallbackDefine Statement
hi! link elixirStructDefine Statement
hi! link elixirExUnitMacro Statement
hi! link elixirInclude Statement
hi! link elixirAtom PreProc
hi! link elixirDocTest String
hi ALEErrorSign ctermfg=167 ctermbg=NONE cterm=NONE
hi ALEInfoSign ctermfg=186 ctermbg=NONE cterm=NONE
hi ALEWarningSign ctermfg=139 ctermbg=NONE cterm=NONE
hi ALEError ctermfg=234 ctermbg=167 cterm=NONE
hi ALEVirtualTextError ctermfg=234 ctermbg=167 cterm=NONE
hi ALEWarning ctermfg=234 ctermbg=139 cterm=NONE
hi ALEVirtualTextWarning ctermfg=234 ctermbg=139 cterm=NONE
hi ALEInfo ctermfg=186 ctermbg=NONE cterm=NONE
hi ALEVirtualTextInfo ctermfg=186 ctermbg=NONE cterm=NONE
hi Normal ctermfg=250 ctermbg=234 cterm=NONE
hi Statusline ctermfg=234 ctermbg=247 cterm=NONE
hi StatuslineNC ctermfg=234 ctermbg=243 cterm=NONE
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=NONE ctermbg=NONE cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=247 ctermbg=234 cterm=bold,reverse
hi QuickFixLine ctermfg=234 ctermbg=67 cterm=NONE
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
hi NonText ctermfg=240 ctermbg=NONE cterm=NONE
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=234 ctermbg=109 cterm=NONE
hi VisualNOS ctermfg=234 ctermbg=66 cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=235 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=234 ctermbg=144 cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
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=66 ctermbg=234 cterm=reverse
hi Search ctermfg=234 ctermbg=108 cterm=NONE
hi IncSearch ctermfg=234 ctermbg=215 cterm=NONE
hi CurSearch ctermfg=234 ctermbg=144 cterm=NONE
hi WildMenu ctermfg=234 ctermbg=186 cterm=NONE
hi debugPC ctermfg=234 ctermbg=67 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=235 cterm=NONE
hi SpellBad ctermfg=167 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=67 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=108 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=182 ctermbg=NONE cterm=underline
hi Comment ctermfg=243 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=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=186 ctermbg=NONE cterm=bold
hi Directory ctermfg=109 ctermbg=NONE cterm=bold
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=16 ctermbg=108 cterm=NONE
hi DiffDelete ctermfg=137 ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=108 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=167 ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=139 ctermbg=NONE cterm=NONE
hi DiffText ctermfg=16 ctermbg=188 cterm=NONE
hi DiffChange ctermfg=16 ctermbg=145 cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 16
hi ALEErrorSign ctermfg=darkred ctermbg=NONE cterm=NONE
hi ALEInfoSign ctermfg=yellow ctermbg=NONE cterm=NONE
hi ALEWarningSign ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi ALEError ctermfg=black ctermbg=darkred cterm=NONE
hi ALEVirtualTextError ctermfg=black ctermbg=darkred cterm=NONE
hi ALEWarning ctermfg=black ctermbg=darkmagenta cterm=NONE
hi ALEVirtualTextWarning ctermfg=black ctermbg=darkmagenta cterm=NONE
hi ALEInfo ctermfg=yellow ctermbg=NONE cterm=NONE
hi ALEVirtualTextInfo ctermfg=yellow ctermbg=NONE cterm=NONE
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi Statusline ctermfg=black ctermbg=gray cterm=NONE
hi StatuslineNC ctermfg=black ctermbg=darkgray cterm=NONE
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=NONE ctermbg=NONE cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
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
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
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=black ctermbg=cyan cterm=NONE
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgray cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi 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=black ctermbg=yellow cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi Todo ctermfg=yellow ctermbg=black cterm=reverse
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
hi IncSearch ctermfg=black ctermbg=red cterm=NONE
hi CurSearch ctermfg=black ctermbg=darkyellow cterm=NONE
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=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
hi Constant ctermfg=red ctermbg=NONE cterm=NONE
hi String ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Character ctermfg=green ctermbg=NONE cterm=NONE
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=blue ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Title ctermfg=yellow ctermbg=NONE cterm=bold
hi Directory ctermfg=cyan ctermbg=NONE cterm=bold
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=black ctermbg=darkgreen cterm=NONE
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi DiffText ctermfg=black ctermbg=lightgrey cterm=NONE
hi DiffChange ctermfg=black ctermbg=darkgray cterm=NONE
unlet s:t_Co
finish
endif
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=black cterm=reverse
hi TabLine ctermfg=black ctermbg=gray cterm=NONE
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=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
hi LineNrBelow ctermfg=gray ctermbg=NONE cterm=bold
hi NonText ctermfg=gray ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=gray ctermbg=NONE cterm=bold
hi SpecialKey ctermfg=gray ctermbg=NONE cterm=bold
hi FoldColumn ctermfg=gray ctermbg=NONE cterm=bold
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=reverse
hi Pmenu ctermfg=black ctermbg=gray cterm=NONE
hi PmenuThumb ctermfg=gray ctermbg=black cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=gray cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi 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=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=darkyellow ctermbg=black cterm=reverse
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkyellow cterm=NONE
hi CurSearch ctermfg=black ctermbg=darkyellow cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow 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=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=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=blue ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
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=black ctermbg=darkgreen cterm=NONE
hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi DiffText ctermfg=white ctermbg=black cterm=bold,reverse
hi DiffChange ctermfg=black ctermbg=white cterm=NONE
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: color00 #1C1C1C 234 black
" Color: color08 #767676 243 darkgray
" 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 #262626 235 darkgrey
" Color: colorNonT #585858 240 darkgrey
" Color: colorC #FFAF5F 215 red
" Color: colorlC #5FFF00 82 green
" Color: colorV #1F3F5F 109 cyan
" Color: diffAdd #87AF87 108 darkgreen
" Color: diffDelete #af875f 137 darkyellow
" Color: diffChange #AFAFAF 145 darkgray
" Color: diffText #D7D7D7 188 lightgrey
" Color: black #000000 16 black
" Color: white #FFFFFF 231 white
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" vim: et ts=2 sw=2
+11 -5
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Shian Lee.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:53:58 2022
" Last Updated: Sun 04 Sep 2022 09:50:04 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=dark
hi clear
let g:colors_name = 'industry'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#303030', '#870000', '#5fd75f', '#afaf00', '#87afff', '#af00af', '#00afaf', '#6c6c6c', '#444444', '#ff0000', '#00ff00', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
@@ -51,7 +51,7 @@ hi Underlined guifg=#87afff guibg=NONE gui=underline cterm=underline
hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
hi ModeMsg guifg=#ffffff guibg=NONE gui=bold cterm=bold
hi WarningMsg guifg=#870000 guibg=NONE gui=bold cterm=bold
hi WarningMsg guifg=#ff0000 guibg=NONE gui=bold cterm=bold
hi MoreMsg guifg=#5fd75f guibg=NONE gui=bold cterm=bold
hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
hi Todo guifg=#005fff guibg=#ffff00 gui=NONE cterm=NONE
@@ -84,6 +84,8 @@ hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
@@ -123,7 +125,7 @@ if s:t_Co >= 256
hi Error ctermfg=231 ctermbg=196 cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
hi ModeMsg ctermfg=231 ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=88 ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=77 ctermbg=NONE cterm=bold
hi Question ctermfg=46 ctermbg=NONE cterm=bold
hi Todo ctermfg=27 ctermbg=226 cterm=NONE
@@ -156,6 +158,8 @@ if s:t_Co >= 256
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@@ -198,7 +202,7 @@ if s:t_Co >= 16
hi Error ctermfg=white ctermbg=red cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
hi ModeMsg ctermfg=white ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=red ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=green ctermbg=NONE cterm=bold
hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
@@ -231,6 +235,8 @@ if s:t_Co >= 16
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+4 -2
View File
@@ -3,7 +3,7 @@
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" Website: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sat 11 Jun 2022 11:24:58 MSK
" Last Updated: Fri 02 Sep 2022 09:23:56 MSK
" Generated by Colortemplate v2.2.0
@@ -12,7 +12,7 @@ set background=dark
hi clear
let g:colors_name = 'koehler'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
hi! link Terminal Normal
hi! link Boolean Constant
@@ -49,6 +49,8 @@ hi! link lCursor Cursor
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+962
View File
@@ -0,0 +1,962 @@
" Name: Perchè il sole a Milano? Portofino? Dimmi la luna perchè?
" Description: White(perchè il sole)/Black(la luna perchè?) background colorscheme.
" Author: Maxim Kim <habamax@gmail.com>
" Maintainer: Maxim Kim <habamax@gmail.com>
" Website: https://www.github.com/vim/colorschemes
" License: Vim License (see `:help license`)
" Last Updated: Sat 03 Sep 2022 14:31:51 MSK
" Generated by Colortemplate v2.2.0
hi clear
let g:colors_name = 'lunaperche'
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
hi! link helpVim Title
hi! link helpHeader Title
hi! link helpHyperTextJump Underlined
hi! link fugitiveSymbolicRef PreProc
hi! link fugitiveHeading Statement
hi! link fugitiveStagedHeading Statement
hi! link fugitiveUnstagedHeading Statement
hi! link fugitiveUntrackedHeading Statement
hi! link fugitiveStagedModifier PreProc
hi! link fugitiveUnstagedModifier PreProc
hi! link fugitiveHash Constant
hi! link diffFile PreProc
hi! link markdownHeadingDelimiter Special
hi! link rstSectionDelimiter PreProc
hi! link rstDirective Special
hi! link rstHyperlinkReference Special
hi! link rstFieldName Special
hi! link rstDelimiter Special
hi! link rstInterpretedText Special
hi! link colortemplateKey Statement
hi! link xmlTagName Statement
hi! link javaScriptFunction Statement
hi! link javaScriptIdentifier Statement
hi! link sqlKeyword Statement
hi! link yamlBlockMappingKey Statement
hi! link rubyMacro Statement
hi! link rubyDefine Statement
hi! link vimGroup Normal
hi! link vimVar Normal
hi! link vimOper Normal
hi! link vimSep Normal
hi! link vimParenSep Normal
hi! link vimOption Normal
hi! link vimCommentString Comment
hi! link pythonInclude Statement
hi! link elixirOperator Statement
hi! link elixirKeyword Statement
hi! link elixirBlockDefinition Statement
hi! link elixirDefine Statement
hi! link elixirPrivateDefine Statement
hi! link elixirGuard Statement
hi! link elixirPrivateGuard Statement
hi! link elixirModuleDefine Statement
hi! link elixirProtocolDefine Statement
hi! link elixirImplDefine Statement
hi! link elixirRecordDefine Statement
hi! link elixirPrivateRecordDefine Statement
hi! link elixirMacroDefine Statement
hi! link elixirPrivateMacroDefine Statement
hi! link elixirDelegateDefine Statement
hi! link elixirOverridableDefine Statement
hi! link elixirExceptionDefine Statement
hi! link elixirCallbackDefine Statement
hi! link elixirStructDefine Statement
hi! link elixirExUnitMacro Statement
hi! link elixirInclude Statement
hi! link elixirVariable Special
hi! link elixirAtom Constant
hi! link elixirDocTest String
hi! link shQuote Constant
hi! link shNoQuote Normal
hi! link shTestOpr Normal
hi! link shOperator Normal
hi! link shSetOption Normal
hi! link shOption Normal
hi! link shCommandSub Normal
hi! link shDerefPattern shQuote
hi! link shDerefOp Special
hi! link phpStorageClass Statement
hi! link phpStructure Statement
hi! link phpInclude Statement
hi! link phpDefine Statement
hi! link phpSpecialFunction Normal
hi! link phpParent Normal
hi! link phpComparison Normal
hi! link phpOperator Normal
hi! link phpVarSelector Special
hi! link phpMemberSelector Special
hi! link phpDocCustomTags phpDocTags
hi! link Terminal Normal
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
if &background ==# 'dark'
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#d787af', '#5fafaf', '#c6c6c6', '#767676', '#ff5f5f', '#5fd75f', '#ffd787', '#87afd7', '#ffafd7', '#5fd7d7', '#ffffff']
endif
hi Normal guifg=#c6c6c6 guibg=#000000 gui=NONE cterm=NONE
hi Statusline guifg=#c6c6c6 guibg=#000000 gui=bold,reverse cterm=bold,reverse
hi StatuslineNC guifg=#767676 guibg=#000000 gui=reverse cterm=reverse
hi VertSplit guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#767676 gui=NONE cterm=NONE
hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=bold
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi QuickFixLine guifg=#000000 guibg=#87afd7 gui=NONE cterm=NONE
hi CursorLineNr guifg=#ffffff guibg=NONE gui=bold cterm=bold
hi LineNr guifg=#585858 guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#585858 guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#585858 guibg=NONE gui=NONE cterm=NONE
hi EndOfBuffer guifg=#585858 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#585858 guibg=NONE gui=NONE cterm=NONE
hi Pmenu guifg=NONE guibg=#1c1c1c gui=NONE cterm=NONE
hi PmenuSel guifg=NONE guibg=#444444 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi 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
hi ModeMsg guifg=#ffd787 guibg=NONE gui=reverse cterm=reverse
hi MoreMsg guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE
hi Question guifg=#ffafd7 guibg=NONE gui=NONE cterm=NONE
hi WarningMsg guifg=#ff5f5f guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#5fd7d7 guibg=#000000 gui=reverse cterm=reverse
hi Search guifg=#000000 guibg=#ffd787 gui=NONE cterm=NONE
hi IncSearch guifg=#000000 guibg=#5fd75f gui=NONE cterm=NONE
hi CurSearch guifg=#000000 guibg=#5fd75f gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#ffd787 gui=bold cterm=bold
hi debugPC guifg=#5f87af guibg=NONE gui=reverse cterm=reverse
hi debugBreakpoint guifg=#5fafaf guibg=NONE gui=reverse cterm=reverse
hi Cursor guifg=#ffffff guibg=#000000 gui=reverse cterm=reverse
hi lCursor guifg=#ff5fff guibg=#000000 gui=reverse cterm=reverse
hi Visual guifg=#ffffff guibg=#005f87 gui=NONE cterm=NONE
hi MatchParen guifg=#c5e7c5 guibg=#000000 gui=reverse cterm=reverse
hi VisualNOS guifg=#000000 guibg=#5fafaf gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#262626 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
hi Folded guifg=#767676 guibg=#1c1c1c gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#1c1c1c gui=NONE cterm=NONE
hi SpellBad guifg=NONE guibg=NONE guisp=#ff5f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpellCap guifg=NONE guibg=NONE guisp=#5fafaf gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpellLocal guifg=NONE guibg=NONE guisp=#5faf5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpellRare guifg=NONE guibg=NONE guisp=#ffafd7 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi Comment guifg=#87afd7 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffd787 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement guifg=#eeeeee guibg=NONE gui=bold cterm=bold
hi Type guifg=#5fd75f guibg=NONE gui=bold cterm=bold
hi PreProc guifg=#af875f guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#5fafaf 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 Directory guifg=#5fd7d7 guibg=NONE gui=bold cterm=bold
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd guifg=#000000 guibg=#af87af gui=NONE cterm=NONE
hi DiffChange guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#5fd7d7 gui=NONE cterm=NONE
hi DiffDelete guifg=#d78787 guibg=NONE gui=NONE cterm=NONE
hi diffAdded guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d78787 guibg=NONE gui=NONE cterm=NONE
hi diffSubname guifg=#ffafd7 guibg=NONE gui=NONE cterm=NONE
hi dirType guifg=#d787af guibg=NONE gui=NONE cterm=NONE
hi dirPermissionUser guifg=#5faf5f guibg=NONE gui=NONE cterm=NONE
hi dirPermissionGroup guifg=#af875f guibg=NONE gui=NONE cterm=NONE
hi dirPermissionOther guifg=#5fafaf guibg=NONE gui=NONE cterm=NONE
hi dirOwner guifg=#767676 guibg=NONE gui=NONE cterm=NONE
hi dirGroup guifg=#767676 guibg=NONE gui=NONE cterm=NONE
hi dirTime guifg=#767676 guibg=NONE gui=NONE cterm=NONE
hi dirSize guifg=#ffd787 guibg=NONE gui=NONE cterm=NONE
hi dirSizeMod guifg=#d787af guibg=NONE gui=NONE cterm=NONE
hi FilterMenuDirectorySubtle guifg=#878787 guibg=NONE gui=NONE cterm=NONE
hi dirFilterMenuBookmarkPath guifg=#878787 guibg=NONE gui=NONE cterm=NONE
hi dirFilterMenuHistoryPath guifg=#878787 guibg=NONE gui=NONE cterm=NONE
hi FilterMenuLineNr guifg=#878787 guibg=NONE gui=NONE cterm=NONE
hi CocSearch guifg=#ffd787 guibg=NONE gui=NONE cterm=NONE
else
" Light background
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#870000', '#008700', '#875f00', '#005faf', '#870087', '#005f5f', '#808080', '#767676', '#d70000', '#87d787', '#d7d787', '#0087d7', '#af00af', '#00afaf', '#ffffff']
endif
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Statusline guifg=#ffffff guibg=#000000 gui=bold cterm=bold
hi StatuslineNC guifg=#ffffff guibg=#767676 gui=NONE cterm=NONE
hi VertSplit guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
hi TabLine guifg=#000000 guibg=#bcbcbc gui=NONE cterm=NONE
hi TabLineFill guifg=NONE guibg=#767676 gui=NONE cterm=NONE
hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold,reverse cterm=bold,reverse
hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi QuickFixLine guifg=#ffffff guibg=#0087d7 gui=NONE cterm=NONE
hi CursorLineNr guifg=#000000 guibg=NONE gui=bold cterm=bold
hi LineNr guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
hi FoldColumn guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
hi EndOfBuffer guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
hi Pmenu guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
hi PmenuSel guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
hi PmenuThumb guifg=NONE guibg=#767676 gui=NONE cterm=NONE
hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi 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
hi ModeMsg guifg=#d7d787 guibg=#000000 gui=reverse cterm=reverse
hi MoreMsg guifg=#008700 guibg=NONE gui=bold cterm=bold
hi Question guifg=#870087 guibg=NONE gui=bold cterm=bold
hi WarningMsg guifg=#d70000 guibg=NONE gui=bold cterm=bold
hi Todo guifg=#005f5f guibg=#ffffff gui=reverse cterm=reverse
hi Search guifg=#000000 guibg=#d7d787 gui=NONE cterm=NONE
hi IncSearch guifg=#000000 guibg=#87d787 gui=NONE cterm=NONE
hi CurSearch guifg=#000000 guibg=#87d787 gui=NONE cterm=NONE
hi WildMenu guifg=#000000 guibg=#d7d787 gui=bold cterm=bold
hi debugPC guifg=#005faf guibg=NONE gui=reverse cterm=reverse
hi debugBreakpoint guifg=#005f5f guibg=NONE gui=reverse cterm=reverse
hi Cursor guifg=#000000 guibg=#ffffff gui=reverse cterm=reverse
hi lCursor guifg=#ff00ff guibg=#000000 gui=reverse cterm=reverse
hi Visual guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
hi MatchParen guifg=NONE guibg=#c5e7c5 gui=NONE cterm=NONE
hi VisualNOS guifg=#ffffff guibg=#00afaf gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi CursorColumn guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi Folded guifg=#767676 guibg=#eeeeee gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
hi SpellBad guifg=NONE guibg=NONE guisp=#870000 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpellCap guifg=NONE guibg=NONE guisp=#005f5f gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpellLocal guifg=NONE guibg=NONE guisp=#008700 gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpellRare guifg=NONE guibg=NONE guisp=#af00af gui=undercurl ctermfg=NONE ctermbg=NONE cterm=NONE
hi Comment guifg=#005faf guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#870000 guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement guifg=#000000 guibg=NONE gui=bold cterm=bold
hi Type guifg=#008700 guibg=NONE gui=bold cterm=bold
hi PreProc guifg=#875f00 guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#005f5f 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 Directory guifg=#005faf guibg=NONE gui=bold cterm=bold
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd guifg=#000000 guibg=#d7afd7 gui=NONE cterm=NONE
hi DiffChange guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
hi DiffText guifg=#000000 guibg=#5fd7d7 gui=NONE cterm=NONE
hi DiffDelete guifg=#870000 guibg=NONE gui=NONE cterm=NONE
hi diffAdded guifg=#008700 guibg=NONE gui=NONE cterm=NONE
hi diffRemoved guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
hi diffSubname guifg=#870087 guibg=NONE gui=NONE cterm=NONE
hi dirType guifg=#005f5f guibg=NONE gui=NONE cterm=NONE
hi dirPermissionUser guifg=#875f00 guibg=NONE gui=NONE cterm=NONE
hi dirPermissionGroup guifg=#008700 guibg=NONE gui=NONE cterm=NONE
hi dirPermissionOther guifg=#870087 guibg=NONE gui=NONE cterm=NONE
hi dirOwner guifg=#808080 guibg=NONE gui=NONE cterm=NONE
hi dirGroup guifg=#808080 guibg=NONE gui=NONE cterm=NONE
hi dirTime guifg=#808080 guibg=NONE gui=NONE cterm=NONE
hi dirSize guifg=#870000 guibg=NONE gui=NONE cterm=NONE
hi dirSizeMod guifg=#005f5f guibg=NONE gui=NONE cterm=NONE
hi dirLink guifg=#008700 guibg=NONE gui=bold cterm=bold
hi dirFilterMenuBookmarkPath guifg=#626262 guibg=NONE gui=NONE cterm=NONE
hi dirFilterMenuHistoryPath guifg=#626262 guibg=NONE gui=NONE cterm=NONE
hi FilterMenuDirectorySubtle guifg=#626262 guibg=NONE gui=NONE cterm=NONE
hi FilterMenuLineNr guifg=#626262 guibg=NONE gui=NONE cterm=NONE
hi CocSearch guifg=#870000 guibg=NONE gui=NONE cterm=NONE
endif
if s:t_Co >= 256
hi! link helpVim Title
hi! link helpHeader Title
hi! link helpHyperTextJump Underlined
hi! link fugitiveSymbolicRef PreProc
hi! link fugitiveHeading Statement
hi! link fugitiveStagedHeading Statement
hi! link fugitiveUnstagedHeading Statement
hi! link fugitiveUntrackedHeading Statement
hi! link fugitiveStagedModifier PreProc
hi! link fugitiveUnstagedModifier PreProc
hi! link fugitiveHash Constant
hi! link diffFile PreProc
hi! link markdownHeadingDelimiter Special
hi! link rstSectionDelimiter PreProc
hi! link rstDirective Special
hi! link rstHyperlinkReference Special
hi! link rstFieldName Special
hi! link rstDelimiter Special
hi! link rstInterpretedText Special
hi! link colortemplateKey Statement
hi! link xmlTagName Statement
hi! link javaScriptFunction Statement
hi! link javaScriptIdentifier Statement
hi! link sqlKeyword Statement
hi! link yamlBlockMappingKey Statement
hi! link rubyMacro Statement
hi! link rubyDefine Statement
hi! link vimGroup Normal
hi! link vimVar Normal
hi! link vimOper Normal
hi! link vimSep Normal
hi! link vimParenSep Normal
hi! link vimOption Normal
hi! link vimCommentString Comment
hi! link pythonInclude Statement
hi! link elixirOperator Statement
hi! link elixirKeyword Statement
hi! link elixirBlockDefinition Statement
hi! link elixirDefine Statement
hi! link elixirPrivateDefine Statement
hi! link elixirGuard Statement
hi! link elixirPrivateGuard Statement
hi! link elixirModuleDefine Statement
hi! link elixirProtocolDefine Statement
hi! link elixirImplDefine Statement
hi! link elixirRecordDefine Statement
hi! link elixirPrivateRecordDefine Statement
hi! link elixirMacroDefine Statement
hi! link elixirPrivateMacroDefine Statement
hi! link elixirDelegateDefine Statement
hi! link elixirOverridableDefine Statement
hi! link elixirExceptionDefine Statement
hi! link elixirCallbackDefine Statement
hi! link elixirStructDefine Statement
hi! link elixirExUnitMacro Statement
hi! link elixirInclude Statement
hi! link elixirVariable Special
hi! link elixirAtom Constant
hi! link elixirDocTest String
hi! link shQuote Constant
hi! link shNoQuote Normal
hi! link shTestOpr Normal
hi! link shOperator Normal
hi! link shSetOption Normal
hi! link shOption Normal
hi! link shCommandSub Normal
hi! link shDerefPattern shQuote
hi! link shDerefOp Special
hi! link phpStorageClass Statement
hi! link phpStructure Statement
hi! link phpInclude Statement
hi! link phpDefine Statement
hi! link phpSpecialFunction Normal
hi! link phpParent Normal
hi! link phpComparison Normal
hi! link phpOperator Normal
hi! link phpVarSelector Special
hi! link phpMemberSelector Special
hi! link phpDocCustomTags phpDocTags
hi! link Terminal Normal
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link MessageWindow PMenu
hi! link PopupNotification Todo
if &background ==# 'dark'
hi Normal ctermfg=251 ctermbg=16 cterm=NONE
hi Statusline ctermfg=251 ctermbg=16 cterm=bold,reverse
hi StatuslineNC ctermfg=243 ctermbg=16 cterm=reverse
hi VertSplit ctermfg=243 ctermbg=243 cterm=NONE
hi TabLine ctermfg=16 ctermbg=251 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=243 cterm=NONE
hi TabLineSel ctermfg=231 ctermbg=16 cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=16 ctermbg=231 cterm=NONE
hi QuickFixLine ctermfg=16 ctermbg=110 cterm=NONE
hi CursorLineNr ctermfg=231 ctermbg=NONE cterm=bold
hi LineNr ctermfg=240 ctermbg=NONE cterm=NONE
hi NonText ctermfg=240 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=240 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=240 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=240 ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=234 cterm=NONE
hi PmenuSel ctermfg=NONE ctermbg=238 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=251 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=231 ctermbg=203 cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=203 cterm=NONE
hi ModeMsg ctermfg=222 ctermbg=NONE cterm=reverse
hi MoreMsg ctermfg=77 ctermbg=NONE cterm=NONE
hi Question ctermfg=218 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=203 ctermbg=NONE cterm=NONE
hi Todo ctermfg=116 ctermbg=16 cterm=reverse
hi Search ctermfg=16 ctermbg=222 cterm=NONE
hi IncSearch ctermfg=16 ctermbg=77 cterm=NONE
hi CurSearch ctermfg=16 ctermbg=77 cterm=NONE
hi WildMenu ctermfg=16 ctermbg=222 cterm=bold
hi debugPC ctermfg=67 ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=73 ctermbg=NONE cterm=reverse
hi Visual ctermfg=231 ctermbg=24 cterm=NONE
hi MatchParen ctermfg=30 ctermbg=16 cterm=reverse
hi VisualNOS ctermfg=16 ctermbg=73 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=235 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=235 cterm=NONE
hi Folded ctermfg=243 ctermbg=234 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=234 cterm=NONE
hi SpellBad ctermfg=203 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=73 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=77 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=218 ctermbg=NONE cterm=underline
hi Comment ctermfg=110 ctermbg=NONE cterm=NONE
hi Constant ctermfg=222 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=255 ctermbg=NONE cterm=bold
hi Type ctermfg=77 ctermbg=NONE cterm=bold
hi PreProc ctermfg=137 ctermbg=NONE cterm=NONE
hi Special ctermfg=73 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Directory ctermfg=116 ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=16 ctermbg=139 cterm=NONE
hi DiffChange ctermfg=16 ctermbg=252 cterm=NONE
hi DiffText ctermfg=16 ctermbg=80 cterm=NONE
hi DiffDelete ctermfg=174 ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=77 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=174 ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=218 ctermbg=NONE cterm=NONE
hi dirType ctermfg=175 ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=71 ctermbg=NONE cterm=NONE
hi dirPermissionGroup ctermfg=137 ctermbg=NONE cterm=NONE
hi dirPermissionOther ctermfg=73 ctermbg=NONE cterm=NONE
hi dirOwner ctermfg=243 ctermbg=NONE cterm=NONE
hi dirGroup ctermfg=243 ctermbg=NONE cterm=NONE
hi dirTime ctermfg=243 ctermbg=NONE cterm=NONE
hi dirSize ctermfg=222 ctermbg=NONE cterm=NONE
hi dirSizeMod ctermfg=175 ctermbg=NONE cterm=NONE
hi FilterMenuDirectorySubtle ctermfg=102 ctermbg=NONE cterm=NONE
hi dirFilterMenuBookmarkPath ctermfg=102 ctermbg=NONE cterm=NONE
hi dirFilterMenuHistoryPath ctermfg=102 ctermbg=NONE cterm=NONE
hi FilterMenuLineNr ctermfg=102 ctermbg=NONE cterm=NONE
hi CocSearch ctermfg=222 ctermbg=NONE cterm=NONE
else
" Light background
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi Statusline ctermfg=231 ctermbg=16 cterm=bold
hi StatuslineNC ctermfg=231 ctermbg=243 cterm=NONE
hi VertSplit ctermfg=243 ctermbg=243 cterm=NONE
hi TabLine ctermfg=16 ctermbg=250 cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=243 cterm=NONE
hi TabLineSel ctermfg=231 ctermbg=16 cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=231 ctermbg=16 cterm=NONE
hi QuickFixLine ctermfg=231 ctermbg=32 cterm=NONE
hi CursorLineNr ctermfg=16 ctermbg=NONE cterm=bold
hi LineNr ctermfg=247 ctermbg=NONE cterm=NONE
hi NonText ctermfg=247 ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=247 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=247 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=247 ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=255 cterm=NONE
hi PmenuSel ctermfg=NONE ctermbg=251 cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=231 ctermbg=160 cterm=NONE
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
hi ModeMsg ctermfg=186 ctermbg=16 cterm=reverse
hi MoreMsg ctermfg=28 ctermbg=NONE cterm=bold
hi Question ctermfg=90 ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=160 ctermbg=NONE cterm=bold
hi Todo ctermfg=23 ctermbg=231 cterm=reverse
hi Search ctermfg=16 ctermbg=186 cterm=NONE
hi IncSearch ctermfg=16 ctermbg=114 cterm=NONE
hi CurSearch ctermfg=16 ctermbg=114 cterm=NONE
hi WildMenu ctermfg=16 ctermbg=186 cterm=bold
hi debugPC ctermfg=25 ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=23 ctermbg=NONE cterm=reverse
hi Visual ctermfg=231 ctermbg=67 cterm=NONE
hi MatchParen ctermfg=30 ctermbg=231 cterm=reverse
hi VisualNOS ctermfg=231 ctermbg=37 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
hi Folded ctermfg=243 ctermbg=255 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
hi SpellBad ctermfg=88 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=23 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=28 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=133 ctermbg=NONE cterm=underline
hi Comment ctermfg=25 ctermbg=NONE cterm=NONE
hi Constant ctermfg=88 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=16 ctermbg=NONE cterm=bold
hi Type ctermfg=28 ctermbg=NONE cterm=bold
hi PreProc ctermfg=94 ctermbg=NONE cterm=NONE
hi Special ctermfg=23 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Title ctermfg=NONE ctermbg=NONE cterm=bold
hi Directory ctermfg=25 ctermbg=NONE cterm=bold
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
hi DiffText ctermfg=16 ctermbg=80 cterm=NONE
hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=28 ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=160 ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=90 ctermbg=NONE cterm=NONE
hi dirType ctermfg=23 ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=94 ctermbg=NONE cterm=NONE
hi dirPermissionGroup ctermfg=28 ctermbg=NONE cterm=NONE
hi dirPermissionOther ctermfg=90 ctermbg=NONE cterm=NONE
hi dirOwner ctermfg=244 ctermbg=NONE cterm=NONE
hi dirGroup ctermfg=244 ctermbg=NONE cterm=NONE
hi dirTime ctermfg=244 ctermbg=NONE cterm=NONE
hi dirSize ctermfg=88 ctermbg=NONE cterm=NONE
hi dirSizeMod ctermfg=23 ctermbg=NONE cterm=NONE
hi dirLink ctermfg=28 ctermbg=NONE cterm=bold
hi dirFilterMenuBookmarkPath ctermfg=241 ctermbg=NONE cterm=NONE
hi dirFilterMenuHistoryPath ctermfg=241 ctermbg=NONE cterm=NONE
hi FilterMenuDirectorySubtle ctermfg=241 ctermbg=NONE cterm=NONE
hi FilterMenuLineNr ctermfg=241 ctermbg=NONE cterm=NONE
hi CocSearch ctermfg=88 ctermbg=NONE cterm=NONE
endif
unlet s:t_Co
finish
endif
if s:t_Co >= 16
if &background ==# 'dark'
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi Statusline ctermfg=grey ctermbg=black cterm=bold,reverse
hi StatuslineNC ctermfg=darkgrey ctermbg=black cterm=reverse
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=bold
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=black ctermbg=white cterm=NONE
hi QuickFixLine ctermfg=black ctermbg=blue cterm=NONE
hi CursorLineNr ctermfg=white ctermbg=NONE cterm=bold
hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=grey ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=grey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=white ctermbg=red cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
hi ModeMsg ctermfg=yellow ctermbg=NONE cterm=reverse
hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE
hi Question ctermfg=magenta ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi Todo ctermfg=cyan ctermbg=black cterm=reverse
hi Search ctermfg=black ctermbg=yellow cterm=NONE
hi IncSearch ctermfg=black ctermbg=green cterm=NONE
hi CurSearch ctermfg=black ctermbg=green cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=bold
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi Visual ctermfg=white ctermbg=darkblue cterm=NONE
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE
hi Folded ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=green ctermbg=NONE cterm=underline
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
hi Constant ctermfg=yellow ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=grey ctermbg=NONE cterm=bold
hi Type ctermfg=green ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkyellow 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 Directory ctermfg=cyan ctermbg=NONE cterm=bold
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
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=green ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=magenta ctermbg=NONE cterm=NONE
hi dirType ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi dirPermissionGroup ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi dirPermissionOther ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi dirOwner ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi dirGroup ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi dirTime ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi dirSize ctermfg=yellow ctermbg=NONE cterm=NONE
hi dirSizeMod ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi FilterMenuDirectorySubtle ctermfg=grey ctermbg=NONE cterm=NONE
hi dirFilterMenuBookmarkPath ctermfg=grey ctermbg=NONE cterm=NONE
hi dirFilterMenuHistoryPath ctermfg=grey ctermbg=NONE cterm=NONE
hi FilterMenuLineNr ctermfg=grey ctermbg=NONE cterm=NONE
hi CocSearch ctermfg=yellow ctermbg=NONE cterm=NONE
else
" Light background
hi Normal ctermfg=black ctermbg=white cterm=NONE
hi Statusline ctermfg=white ctermbg=black cterm=bold
hi StatuslineNC ctermfg=white ctermbg=darkgrey cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
hi TabLine ctermfg=black ctermbg=lightgrey cterm=NONE
hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=white ctermbg=black cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=white ctermbg=black cterm=NONE
hi QuickFixLine ctermfg=white ctermbg=blue cterm=NONE
hi CursorLineNr ctermfg=black ctermbg=NONE cterm=bold
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=white ctermbg=red cterm=NONE
hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
hi ModeMsg ctermfg=yellow ctermbg=black cterm=reverse
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=bold
hi WarningMsg ctermfg=red ctermbg=NONE cterm=bold
hi Todo ctermfg=darkcyan ctermbg=white cterm=reverse
hi Search ctermfg=black ctermbg=yellow cterm=NONE
hi IncSearch ctermfg=black ctermbg=green cterm=NONE
hi CurSearch ctermfg=black ctermbg=green cterm=NONE
hi WildMenu ctermfg=black ctermbg=yellow cterm=bold
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi Visual ctermfg=white ctermbg=darkblue cterm=NONE
hi MatchParen ctermfg=darkcyan ctermbg=white cterm=reverse
hi VisualNOS ctermfg=black ctermbg=cyan cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE
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=darkcyan ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkgreen ctermbg=NONE cterm=underline
hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=black ctermbg=NONE cterm=bold
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkyellow 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 Directory ctermfg=darkblue ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE
hi DiffText ctermfg=black ctermbg=cyan cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi diffRemoved ctermfg=red ctermbg=NONE cterm=NONE
hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi dirType ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi dirPermissionUser ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi dirPermissionGroup ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi dirPermissionOther ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi dirOwner ctermfg=grey ctermbg=NONE cterm=NONE
hi dirGroup ctermfg=grey ctermbg=NONE cterm=NONE
hi dirTime ctermfg=grey ctermbg=NONE cterm=NONE
hi dirSize ctermfg=darkred ctermbg=NONE cterm=NONE
hi dirSizeMod ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi dirLink ctermfg=darkgreen ctermbg=NONE cterm=bold
hi dirFilterMenuBookmarkPath ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi dirFilterMenuHistoryPath ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi FilterMenuDirectorySubtle ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi FilterMenuLineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi CocSearch ctermfg=darkred ctermbg=NONE cterm=NONE
endif
unlet s:t_Co
finish
endif
if s:t_Co >= 8
if &background ==# 'dark'
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi Statusline ctermfg=grey ctermbg=black cterm=bold,reverse
hi StatuslineNC ctermfg=black ctermbg=grey cterm=NONE
hi VertSplit ctermfg=grey ctermbg=grey cterm=NONE
hi TabLine ctermfg=grey ctermbg=black cterm=reverse
hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
hi TabLineSel ctermfg=grey ctermbg=black cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold,reverse
hi QuickFixLine ctermfg=grey ctermbg=darkblue cterm=bold
hi CursorLineNr ctermfg=black ctermbg=NONE cterm=bold
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi NonText ctermfg=black ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=black ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=black ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=black ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
hi ModeMsg ctermfg=darkyellow ctermbg=black cterm=reverse
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkcyan ctermbg=black cterm=reverse
hi Search ctermfg=darkyellow ctermbg=black cterm=reverse
hi IncSearch ctermfg=darkgreen ctermbg=black cterm=reverse
hi CurSearch ctermfg=darkgreen ctermbg=black cterm=reverse
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=bold
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi Visual ctermfg=black ctermbg=darkblue cterm=NONE
hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=black ctermbg=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=reverse,underline
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=reverse,underline
hi SpellLocal ctermfg=darkgreen ctermbg=black cterm=reverse,underline
hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=reverse,underline
hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=grey ctermbg=NONE cterm=bold
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkyellow 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 Directory ctermfg=darkcyan ctermbg=NONE cterm=bold
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=darkcyan cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
else
" Light background
hi Normal ctermfg=black ctermbg=grey cterm=NONE
hi Statusline ctermfg=grey ctermbg=black cterm=bold
hi StatuslineNC ctermfg=grey ctermbg=darkgrey cterm=NONE
hi VertSplit ctermfg=black ctermbg=black cterm=NONE
hi TabLine ctermfg=black ctermbg=grey cterm=reverse
hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
hi TabLineSel ctermfg=black ctermbg=grey cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarButton ctermfg=grey ctermbg=black cterm=bold
hi QuickFixLine ctermfg=grey ctermbg=darkblue cterm=bold
hi CursorLineNr ctermfg=black ctermbg=NONE cterm=bold
hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi NonText ctermfg=black ctermbg=NONE cterm=NONE
hi FoldColumn ctermfg=black ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=black ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=black ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=grey ctermbg=black cterm=NONE
hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=grey ctermbg=darkred cterm=NONE
hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
hi ModeMsg ctermfg=darkyellow ctermbg=black cterm=reverse
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkcyan ctermbg=black cterm=reverse
hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
hi CurSearch ctermfg=black ctermbg=darkgreen cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=bold
hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse
hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi Visual ctermfg=grey ctermbg=darkblue cterm=NONE
hi MatchParen ctermfg=darkcyan ctermbg=grey cterm=reverse
hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi Folded ctermfg=black ctermbg=darkyellow cterm=NONE
hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse,underline
hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=reverse,underline
hi SpellLocal ctermfg=darkgreen ctermbg=black cterm=reverse,underline
hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=reverse,underline
hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=black ctermbg=NONE cterm=bold
hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi Title ctermfg=black 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 DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE
hi DiffChange ctermfg=black ctermbg=darkcyan cterm=NONE
hi DiffText ctermfg=grey ctermbg=black cterm=NONE
hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE
endif
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: any
" Background: dark
" Color: color00 #000000 16 black
" Color: color08 #767676 243 darkgrey
" Color: color01 #AF5F5F 131 darkred
" Color: color09 #FF5F5F 203 red
" Color: color02 #5FAF5F 71 darkgreen
" Color: color10 #5FD75F 77 green
" Color: color03 #AF875F 137 darkyellow
" Color: color11 #FFD787 222 yellow
" Color: color04 #5F87AF 67 darkblue
" Color: color12 #87AFD7 110 blue
" Color: color05 #D787AF 175 darkmagenta
" Color: color13 #FFAFD7 218 magenta
" Color: color06 #5FAFAF 73 darkcyan
" Color: color14 #5FD7D7 116 cyan
" Color: color07 #C6C6C6 251 grey
" Color: color15 #FFFFFF 231 white
" Color: colorDimWhite #EEEEEE 255 grey
" Color: colorLine #262626 235 darkgrey
" Color: colorB #1C1C1C 234 darkgrey
" Color: colorNonT #585858 240 grey
" Color: colorTab #585858 240 grey
" Color: colorC #FFFFFF 231 white
" Color: colorlC #FF5FFF 207 magenta
" Color: colorV #005F87 24 darkblue
" Color: colorMP #C5E7C5 30 darkcyan
" Color: colorPMenuSel #444444 238 darkcyan
" Color: colorDim #878787 102 grey
" Color: diffAdd #AF87AF 139 darkmagenta
" Color: diffDelete #D78787 174 darkred
" Color: diffChange #D0D0D0 252 lightgray
" Color: diffText #5FD7D7 80 cyan
" Color: fgDiff #000000 16 black
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Background: light
" Color: color00 #000000 16 black
" Color: color08 #767676 243 darkgrey
" Color: color01 #870000 88 darkred
" Color: color09 #D70000 160 red
" Color: color02 #008700 28 darkgreen
" Color: color10 #87D787 114 green
" Color: color03 #875F00 94 darkyellow
" Color: color11 #D7D787 186 yellow
" Color: color04 #005FAF 25 darkblue
" Color: color12 #0087D7 32 blue
" Color: color05 #870087 90 darkmagenta
" Color: color13 #AF00AF 133 magenta
" Color: color06 #005F5F 23 darkcyan
" Color: color14 #00AFAF 37 cyan
" Color: color07 #808080 244 grey
" Color: color15 #FFFFFF 231 white
" Color: colorLine #E4E4E4 254 grey
" Color: colorB #EEEEEE 255 grey
" Color: colorNonT #9E9E9E 247 darkgrey
" Color: colorTab #BCBCBC 250 lightgrey
" Color: colorC #000000 16 black
" Color: colorlC #FF00FF 201 magenta
" Color: colorV #5F87AF 67 darkblue
" Color: colorMP #C5E7C5 30 darkcyan
" Color: colorPMenuSel #C6C6C6 251 darkcyan
" Color: colorDim #626262 241 darkgrey
" Color: diffAdd #D7AFD7 182 darkmagenta
" Color: diffDelete #870000 88 darkred
" Color: diffChange #D0D0D0 252 lightgray
" Color: diffText #5FD7D7 80 cyan
" Color: fgDiff #000000 16 black
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Background: any
" vim: et ts=2 sw=2
+6 -2
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:55:30 2022
" Last Updated: Fri 02 Sep 2022 09:46:24 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=light
hi clear
let g:colors_name = 'morning'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#e4e4e4', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#bcbcbc', '#0000ff', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#000000']
@@ -26,6 +26,8 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
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
@@ -96,6 +98,8 @@ if s:t_Co >= 256
hi! link CursorLineSign CursorLine
hi! link StatuslineTerm Statusline
hi! link StatuslineTermNC StatuslineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=16 ctermbg=254 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=bold
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+6 -2
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:56:21 2022
" Last Updated: Fri 02 Sep 2022 09:47:20 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=dark
hi clear
let g:colors_name = 'murphy'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#303030', '#ffa700', '#005f00', '#ffd7af', '#87afff', '#ffafaf', '#00afaf', '#bcbcbc', '#444444', '#ff0000', '#00875f', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
@@ -26,6 +26,8 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
@@ -96,6 +98,8 @@ if s:t_Co >= 256
hi! link CursorLineSign CursorLine
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=120 ctermbg=16 cterm=NONE
hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE
+11 -13
View File
@@ -3,7 +3,7 @@
" Maintainer: Original maintainerRon Aaron <ron@ronware.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:57:11 2022
" Last Updated: Sun 04 Sep 2022 09:53:40 MSK
" Generated by Colortemplate v2.2.0
@@ -12,18 +12,20 @@ set background=dark
hi clear
let g:colors_name = 'pablo'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi! link Terminal Normal
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
hi Comment guifg=#808080 guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#00c0c0 guibg=NONE gui=NONE cterm=NONE
@@ -88,13 +90,15 @@ hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
if s:t_Co >= 256
hi Normal ctermfg=231 ctermbg=16 cterm=NONE
hi! link Terminal Normal
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=231 ctermbg=16 cterm=NONE
hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
hi Identifier ctermfg=37 ctermbg=NONE cterm=NONE
@@ -117,7 +121,7 @@ if s:t_Co >= 256
hi NonText ctermfg=63 ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=63 ctermbg=NONE cterm=bold
hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
hi WarningMsg ctermfg=224 ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=51 ctermbg=248 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=239 cterm=NONE
hi FoldColumn ctermfg=102 ctermbg=236 cterm=NONE
@@ -163,12 +167,6 @@ endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi! link Terminal Normal
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
@@ -191,7 +189,7 @@ if s:t_Co >= 16
hi NonText ctermfg=blue ctermbg=NONE cterm=bold
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=bold
hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
hi SignColumn ctermfg=cyan ctermbg=black cterm=NONE
hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -405,7 +403,7 @@ endif
" Color: SpecialKey #00ffff 81 cyan
" Color: StatusLineTerm #90ee90 121 darkgreen
" Color: Title #ff00ff 225 magenta
" Color: WarningMsg #ff0000 224 darkred
" Color: WarningMsg #ff0000 196 red
" Color: ToolbarLine #7f7f7f 242 darkgrey
" Color: ToolbarButton #d3d3d3 254 grey
" Color: Underlined #80a0ff 111 darkgreen
+6 -2
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 10:58:17 2022
" Last Updated: Fri 02 Sep 2022 09:50:02 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=light
hi clear
let g:colors_name = 'peachpuff'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#ffdab9', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#737373', '#406090', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#000000']
@@ -24,6 +24,8 @@ hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#000000 guibg=#ffdab9 gui=NONE cterm=NONE
hi Folded guifg=#000000 guibg=#e3c1a5 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
@@ -94,6 +96,8 @@ if s:t_Co >= 256
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=16 ctermbg=223 cterm=NONE
hi Folded ctermfg=16 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=180 cterm=NONE
+702
View File
@@ -0,0 +1,702 @@
" Name: quiet
" Description: `monochrome`, but less ugly, with diffs, searches, a few other niceties, and both light and dark versions.
" Author: neutaaaaan <neutaaaaan-gh@protonmail.com>
" Maintainer: neutaaaaan <neutaaaaan-gh@protonmail.com>
" Website: https://github.com/vim/colorschemes
" License: Vim License (see `:help license`)`
" Last Updated: Fri 02 Sep 2022 09:55:30 MSK
" Generated by Colortemplate v2.2.0
hi clear
let g:colors_name = 'quiet'
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
hi! link Terminal Normal
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi! link Boolean Constant
hi! link Character Constant
hi! link Conditional Statement
hi! link Define PreProc
hi! link Debug Special
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link Number Constant
hi! link Operator Statement
hi! link PreCondit PreProc
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Typedef Type
hi! link lCursor Cursor
hi! link debugBreakpoint ModeMsg
hi! link debugPC CursorLine
if &background ==# 'dark'
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#080808', '#d7005f', '#00af5f', '#d78700', '#0087d7', '#d787d7', '#00afaf', '#dadada', '#707070', '#ff005f', '#00d75f', '#ffaf00', '#5fafff', '#ff87ff', '#00d7d7', '#ffffff']
endif
hi Normal guifg=#dadada guibg=#080808 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#1c1c1c gui=NONE cterm=NONE
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn guifg=NONE guibg=#303030 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
hi CursorLineNr guifg=#dadada guibg=#303030 gui=NONE cterm=NONE
hi DiffAdd guifg=#00af00 guibg=#080808 gui=reverse cterm=reverse
hi DiffChange guifg=#87afd7 guibg=#080808 gui=reverse cterm=reverse
hi DiffDelete guifg=#d75f5f guibg=#080808 gui=reverse cterm=reverse
hi DiffText guifg=#d787d7 guibg=#080808 gui=reverse cterm=reverse
hi Directory guifg=#dadada guibg=#080808 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#dadada guibg=#080808 gui=NONE cterm=NONE
hi ErrorMsg guifg=#dadada guibg=#080808 gui=reverse cterm=reverse
hi FoldColumn guifg=#707070 guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#707070 guibg=#080808 gui=NONE cterm=NONE
hi IncSearch guifg=#ffaf00 guibg=#080808 gui=reverse cterm=reverse
hi LineNr guifg=#444444 guibg=NONE gui=NONE cterm=NONE
hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold
hi ModeMsg guifg=#dadada guibg=NONE gui=bold cterm=bold
hi MoreMsg guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#707070 guibg=NONE gui=NONE cterm=NONE
hi Pmenu guifg=#080808 guibg=#87afd7 gui=NONE cterm=NONE
hi PmenuSbar guifg=#dadada guibg=#707070 gui=NONE cterm=NONE
hi PmenuSel guifg=#080808 guibg=#d787d7 gui=NONE cterm=NONE
hi PmenuThumb guifg=#dadada guibg=#d787d7 gui=NONE cterm=NONE
hi Question guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi QuickFixLine guifg=#d787d7 guibg=#080808 gui=reverse cterm=reverse
hi Search guifg=#00afff guibg=#080808 gui=reverse cterm=reverse
hi SignColumn guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#d7005f guibg=NONE guisp=#d7005f gui=undercurl cterm=underline
hi SpellCap guifg=#0087d7 guibg=NONE guisp=#0087d7 gui=undercurl cterm=underline
hi SpellLocal guifg=#d787d7 guibg=NONE guisp=#d787d7 gui=undercurl cterm=underline
hi SpellRare guifg=#00afaf guibg=NONE guisp=#00afaf gui=undercurl cterm=underline
hi StatusLine guifg=#080808 guibg=#dadada gui=bold cterm=bold
hi StatusLineNC guifg=#707070 guibg=#080808 gui=underline cterm=underline
hi TabLine guifg=#707070 guibg=#080808 gui=underline cterm=underline
hi TabLineFill guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi TabLineSel guifg=#080808 guibg=#dadada gui=bold cterm=bold
hi Title guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi VertSplit guifg=#707070 guibg=#080808 gui=NONE cterm=NONE
hi Visual guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS guifg=NONE guibg=#303030 gui=NONE cterm=NONE
hi WarningMsg guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#00afff guibg=#080808 gui=bold cterm=bold
hi Comment guifg=#707070 guibg=NONE gui=bold cterm=bold
hi Constant guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi Error guifg=#ff005f guibg=#080808 gui=bold,reverse cterm=bold,reverse
hi Identifier guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#00ffaf guibg=NONE gui=bold,reverse cterm=bold,reverse
hi Type guifg=#dadada guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#dadada guibg=NONE gui=underline cterm=underline
hi CursorIM guifg=#080808 guibg=#afff00 gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=#080808 gui=NONE cterm=NONE
hi ToolbarButton guifg=#dadada guibg=#080808 gui=bold cterm=bold
else
" Light background
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#080808', '#af0000', '#005f00', '#af5f00', '#005faf', '#870087', '#008787', '#d7d7d7', '#626262', '#d70000', '#008700', '#d78700', '#0087d7', '#af00af', '#00afaf', '#ffffff']
endif
hi Normal guifg=#080808 guibg=#d7d7d7 gui=NONE cterm=NONE
hi ColorColumn guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
hi CursorLineNr guifg=#080808 guibg=#eeeeee gui=NONE cterm=NONE
hi DiffAdd guifg=#87d787 guibg=#080808 gui=reverse cterm=reverse
hi DiffChange guifg=#afafd7 guibg=#080808 gui=reverse cterm=reverse
hi DiffDelete guifg=#d78787 guibg=#080808 gui=reverse cterm=reverse
hi DiffText guifg=#d787d7 guibg=#080808 gui=reverse cterm=reverse
hi Directory guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi EndOfBuffer guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi ErrorMsg guifg=#080808 guibg=#d7d7d7 gui=reverse cterm=reverse
hi FoldColumn guifg=#626262 guibg=NONE gui=NONE cterm=NONE
hi Folded guifg=#626262 guibg=#d7d7d7 gui=NONE cterm=NONE
hi IncSearch guifg=#ffaf00 guibg=#080808 gui=reverse cterm=reverse
hi LineNr guifg=#a8a8a8 guibg=NONE gui=NONE cterm=NONE
hi MatchParen guifg=#ff00af guibg=#d7d7d7 gui=bold cterm=bold
hi ModeMsg guifg=#080808 guibg=NONE gui=bold cterm=bold
hi MoreMsg guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi NonText guifg=#626262 guibg=NONE gui=NONE cterm=NONE
hi Pmenu guifg=#080808 guibg=#afafd7 gui=NONE cterm=NONE
hi PmenuSbar guifg=#080808 guibg=#626262 gui=NONE cterm=NONE
hi PmenuSel guifg=#080808 guibg=#d787d7 gui=NONE cterm=NONE
hi PmenuThumb guifg=#080808 guibg=#d787d7 gui=NONE cterm=NONE
hi Question guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi QuickFixLine guifg=#d787d7 guibg=#080808 gui=reverse cterm=reverse
hi Search guifg=#00afff guibg=#080808 gui=reverse cterm=reverse
hi SignColumn guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi SpecialKey guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#af0000 guibg=#d7d7d7 guisp=#af0000 gui=undercurl cterm=underline
hi SpellCap guifg=#005faf guibg=#d7d7d7 guisp=#005faf gui=undercurl cterm=underline
hi SpellLocal guifg=#870087 guibg=#d7d7d7 guisp=#870087 gui=undercurl cterm=underline
hi SpellRare guifg=#008787 guibg=#d7d7d7 guisp=#008787 gui=undercurl cterm=underline
hi StatusLine guifg=#eeeeee guibg=#080808 gui=bold cterm=bold
hi StatusLineNC guifg=#080808 guibg=#a8a8a8 gui=NONE cterm=NONE
hi TabLine guifg=#080808 guibg=#a8a8a8 gui=NONE cterm=NONE
hi TabLineFill guifg=#080808 guibg=#d7d7d7 gui=NONE cterm=NONE
hi TabLineSel guifg=#eeeeee guibg=#080808 gui=bold cterm=bold
hi Title guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi VertSplit guifg=#626262 guibg=#d7d7d7 gui=NONE cterm=NONE
hi Visual guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
hi WarningMsg guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi WildMenu guifg=#080808 guibg=#eeeeee gui=bold cterm=bold
hi Comment guifg=#080808 guibg=NONE gui=bold cterm=bold
hi Constant guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi Error guifg=#ff005f guibg=#080808 gui=bold,reverse cterm=bold,reverse
hi Identifier guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi Special guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi Statement guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#00ffaf guibg=#080808 gui=bold,reverse cterm=bold,reverse
hi Type guifg=#080808 guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#080808 guibg=NONE gui=underline cterm=underline
hi CursorIM guifg=#080808 guibg=#afff00 gui=NONE cterm=NONE
hi ToolbarLine guifg=NONE guibg=#d7d7d7 gui=NONE cterm=NONE
hi ToolbarButton guifg=#080808 guibg=#d7d7d7 gui=bold cterm=bold
endif
if s:t_Co >= 256
if &background ==# 'dark'
hi Normal ctermfg=253 ctermbg=232 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=234 cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=236 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=236 cterm=NONE
hi CursorLineNr ctermfg=253 ctermbg=236 cterm=NONE
hi DiffAdd ctermfg=34 ctermbg=232 cterm=reverse
hi DiffChange ctermfg=110 ctermbg=232 cterm=reverse
hi DiffDelete ctermfg=167 ctermbg=232 cterm=reverse
hi DiffText ctermfg=176 ctermbg=232 cterm=reverse
hi Directory ctermfg=253 ctermbg=232 cterm=NONE
hi EndOfBuffer ctermfg=253 ctermbg=232 cterm=NONE
hi ErrorMsg ctermfg=253 ctermbg=232 cterm=reverse
hi FoldColumn ctermfg=242 ctermbg=NONE cterm=NONE
hi Folded ctermfg=242 ctermbg=232 cterm=NONE
hi IncSearch ctermfg=214 ctermbg=232 cterm=reverse
hi LineNr ctermfg=238 ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold
hi ModeMsg ctermfg=253 ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=253 ctermbg=NONE cterm=NONE
hi NonText ctermfg=242 ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=232 ctermbg=110 cterm=NONE
hi PmenuSbar ctermfg=253 ctermbg=242 cterm=NONE
hi PmenuSel ctermfg=232 ctermbg=176 cterm=NONE
hi PmenuThumb ctermfg=253 ctermbg=176 cterm=NONE
hi Question ctermfg=253 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=176 ctermbg=232 cterm=reverse
hi Search ctermfg=39 ctermbg=232 cterm=reverse
hi SignColumn ctermfg=253 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=253 ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=161 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=32 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=176 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=37 ctermbg=NONE cterm=underline
hi StatusLine ctermfg=232 ctermbg=253 cterm=bold
hi StatusLineNC ctermfg=242 ctermbg=232 cterm=underline
hi TabLine ctermfg=242 ctermbg=232 cterm=underline
hi TabLineFill ctermfg=253 ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=232 ctermbg=253 cterm=bold
hi Title ctermfg=253 ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=242 ctermbg=232 cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=236 cterm=NONE
hi WarningMsg ctermfg=253 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=39 ctermbg=232 cterm=bold
hi Comment ctermfg=242 ctermbg=NONE cterm=bold
hi Constant ctermfg=253 ctermbg=NONE cterm=NONE
hi Error ctermfg=197 ctermbg=232 cterm=bold,reverse
hi Identifier ctermfg=253 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=253 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=253 ctermbg=NONE cterm=NONE
hi Special ctermfg=253 ctermbg=NONE cterm=NONE
hi Statement ctermfg=253 ctermbg=NONE cterm=NONE
hi Todo ctermfg=49 ctermbg=NONE cterm=bold,reverse
hi Type ctermfg=253 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=253 ctermbg=NONE cterm=underline
hi CursorIM ctermfg=232 ctermbg=154 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=232 cterm=NONE
hi ToolbarButton ctermfg=253 ctermbg=232 cterm=bold
else
" Light background
hi Normal ctermfg=232 ctermbg=188 cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=254 cterm=NONE
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=255 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=255 cterm=NONE
hi CursorLineNr ctermfg=232 ctermbg=255 cterm=NONE
hi DiffAdd ctermfg=114 ctermbg=232 cterm=reverse
hi DiffChange ctermfg=146 ctermbg=232 cterm=reverse
hi DiffDelete ctermfg=174 ctermbg=232 cterm=reverse
hi DiffText ctermfg=176 ctermbg=232 cterm=reverse
hi Directory ctermfg=232 ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=232 ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=232 ctermbg=188 cterm=reverse
hi FoldColumn ctermfg=241 ctermbg=NONE cterm=NONE
hi Folded ctermfg=241 ctermbg=188 cterm=NONE
hi IncSearch ctermfg=214 ctermbg=232 cterm=reverse
hi LineNr ctermfg=248 ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=199 ctermbg=188 cterm=bold
hi ModeMsg ctermfg=232 ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=232 ctermbg=NONE cterm=NONE
hi NonText ctermfg=241 ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=232 ctermbg=146 cterm=NONE
hi PmenuSbar ctermfg=232 ctermbg=241 cterm=NONE
hi PmenuSel ctermfg=232 ctermbg=176 cterm=NONE
hi PmenuThumb ctermfg=232 ctermbg=176 cterm=NONE
hi Question ctermfg=232 ctermbg=NONE cterm=NONE
hi QuickFixLine ctermfg=176 ctermbg=232 cterm=reverse
hi Search ctermfg=39 ctermbg=232 cterm=reverse
hi SignColumn ctermfg=232 ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=232 ctermbg=NONE cterm=NONE
hi SpellBad ctermfg=124 ctermbg=188 cterm=underline
hi SpellCap ctermfg=25 ctermbg=188 cterm=underline
hi SpellLocal ctermfg=90 ctermbg=188 cterm=underline
hi SpellRare ctermfg=30 ctermbg=188 cterm=underline
hi StatusLine ctermfg=255 ctermbg=232 cterm=bold
hi StatusLineNC ctermfg=232 ctermbg=248 cterm=NONE
hi TabLine ctermfg=232 ctermbg=248 cterm=NONE
hi TabLineFill ctermfg=232 ctermbg=188 cterm=NONE
hi TabLineSel ctermfg=255 ctermbg=232 cterm=bold
hi Title ctermfg=232 ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=241 ctermbg=188 cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=255 cterm=NONE
hi WarningMsg ctermfg=232 ctermbg=NONE cterm=NONE
hi WildMenu ctermfg=232 ctermbg=255 cterm=bold
hi Comment ctermfg=232 ctermbg=NONE cterm=bold
hi Constant ctermfg=232 ctermbg=NONE cterm=NONE
hi Error ctermfg=197 ctermbg=232 cterm=bold,reverse
hi Identifier ctermfg=232 ctermbg=NONE cterm=NONE
hi Ignore ctermfg=232 ctermbg=NONE cterm=NONE
hi PreProc ctermfg=232 ctermbg=NONE cterm=NONE
hi Special ctermfg=232 ctermbg=NONE cterm=NONE
hi Statement ctermfg=232 ctermbg=NONE cterm=NONE
hi Todo ctermfg=49 ctermbg=232 cterm=bold,reverse
hi Type ctermfg=232 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=232 ctermbg=NONE cterm=underline
hi CursorIM ctermfg=232 ctermbg=154 cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=188 cterm=NONE
hi ToolbarButton ctermfg=232 ctermbg=188 cterm=bold
endif
unlet s:t_Co
finish
endif
if s:t_Co >= 16
if &background ==# 'dark'
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=darkyellow ctermbg=black cterm=bold,reverse,underline
hi LineNr ctermfg=NONE ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=NONE ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=darkcyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi SpecialKey ctermfg=NONE ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLine ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=NONE ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
else
" Light background
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=darkyellow ctermbg=black cterm=bold,reverse,underline
hi LineNr ctermfg=NONE ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=NONE ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=darkcyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi SpecialKey ctermfg=NONE ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLine ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=NONE ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
endif
unlet s:t_Co
finish
endif
if s:t_Co >= 8
if &background ==# 'dark'
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=darkyellow ctermbg=black cterm=bold,reverse,underline
hi LineNr ctermfg=NONE ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=NONE ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=darkcyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi SpecialKey ctermfg=NONE ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLine ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=NONE ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
else
" Light background
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=darkyellow ctermbg=black cterm=bold,reverse,underline
hi LineNr ctermfg=NONE ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=NONE ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=darkcyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi SpecialKey ctermfg=NONE ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLine ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi VertSplit ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi Statement ctermfg=NONE ctermbg=NONE cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
endif
unlet s:t_Co
finish
endif
if s:t_Co >= 0
hi Normal term=NONE
hi ColorColumn term=reverse
hi Conceal term=NONE
hi Cursor term=reverse
hi CursorColumn term=NONE
hi CursorLine term=underline
hi CursorLineNr term=bold
hi DiffAdd term=reverse
hi DiffChange term=NONE
hi DiffDelete term=reverse
hi DiffText term=reverse
hi Directory term=NONE
hi EndOfBuffer term=NONE
hi ErrorMsg term=bold,reverse
hi FoldColumn term=NONE
hi Folded term=NONE
hi IncSearch term=bold,reverse,underline
hi LineNr term=NONE
hi MatchParen term=bold,underline
hi ModeMsg term=bold
hi MoreMsg term=NONE
hi NonText term=NONE
hi Pmenu term=reverse
hi PmenuSbar term=reverse
hi PmenuSel term=bold
hi PmenuThumb term=NONE
hi Question term=standout
hi Search term=reverse
hi SignColumn term=reverse
hi SpecialKey term=bold
hi SpellBad term=underline
hi SpellCap term=underline
hi SpellLocal term=underline
hi SpellRare term=underline
hi StatusLine term=bold,reverse
hi StatusLineNC term=bold,underline
hi TabLine term=bold,underline
hi TabLineFill term=NONE
hi Terminal term=NONE
hi TabLineSel term=bold,reverse
hi Title term=NONE
hi VertSplit term=NONE
hi Visual term=reverse
hi VisualNOS term=NONE
hi WarningMsg term=standout
hi WildMenu term=bold
hi CursorIM term=NONE
hi ToolbarLine term=reverse
hi ToolbarButton term=bold,reverse
hi CurSearch term=reverse
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Comment term=bold
hi Constant term=NONE
hi Error term=bold,reverse
hi Identifier term=NONE
hi Ignore term=NONE
hi PreProc term=NONE
hi Special term=NONE
hi Statement term=NONE
hi Todo term=bold,reverse
hi Type term=NONE
hi Underlined term=underline
unlet s:t_Co
finish
endif
" Background: dark
" Color: dark0 #080808 232 black
" Color: dark1 #d7005f 161 darkred
" Color: dark2 #00af5f 35 darkgreen
" Color: dark3 #d78700 172 darkyellow
" Color: dark4 #0087d7 32 darkblue
" Color: dark5 #d787d7 176 darkmagenta
" Color: dark6 #00afaf 37 darkcyan
" Color: dark7 #dadada 253 grey
" Color: dark8 #707070 242 darkgrey
" Color: dark9 #ff005f 197 red
" Color: dark10 #00d75f 41 green
" Color: dark11 #ffaf00 214 yellow
" Color: dark12 #5fafff 75 blue
" Color: dark13 #ff87ff 213 magenta
" Color: dark14 #00d7d7 44 cyan
" Color: dark15 #ffffff 231 white
" Color: diffred #d75f5f 167 darkred
" Color: diffgreen #00af00 34 darkgreen
" Color: diffblue #87afd7 110 darkblue
" Color: diffpink #d787d7 176 darkmagenta
" Color: uipink #ff00af 199 magenta
" Color: uilime #afff00 154 green
" Color: uiteal #00ffaf 49 green
" Color: uiblue #00afff 39 blue
" Color: uipurple #af00ff 129 darkmagenta
" Color: uiamber #ffaf00 214 darkyellow
" Color: uiblack #303030 236 darkgrey
" Color: yasogrey #1c1c1c 234 black
" Color: linenrblack #444444 238 darkgrey
" Color: errorred #ff005f 197 red
" Term colors: dark0 dark1 dark2 dark3 dark4 dark5 dark6 dark7
" Term colors: dark8 dark9 dark10 dark11 dark12 dark13 dark14 dark15
" Background: light
" Color: brightwhite #eeeeee 255 grey
" Color: light0 #080808 232 black
" Color: light1 #af0000 124 darkred
" Color: light2 #005f00 22 darkgreen
" Color: light3 #af5f00 130 darkyellow
" Color: light4 #005faf 25 darkblue
" Color: light5 #870087 90 darkmagenta
" Color: light6 #008787 30 darkcyan
" Color: light7 #d7d7d7 188 grey
" Color: light8 #626262 241 darkgrey
" Color: light9 #d70000 160 red
" Color: light10 #008700 28 green
" Color: light11 #d78700 172 yellow
" Color: light12 #0087d7 32 blue
" Color: light13 #af00af 127 magenta
" Color: light14 #00afaf 37 cyan
" Color: light15 #ffffff 231 white
" Color: diffred #d78787 174 red
" Color: diffgreen #87d787 114 green
" Color: diffblue #afafd7 146 blue
" Color: diffpink #d787d7 176 magenta
" Color: uipink #ff00af 199 magenta
" Color: uilime #afff00 154 green
" Color: uiteal #00ffaf 49 cyan
" Color: uiblue #00afff 39 blue
" Color: uipurple #af00ff 129 darkmagenta
" Color: uiamber #ffaf00 214 yellow
" Color: invisigrey #a8a8a8 248 darkgrey
" Color: yasogrey #e4e4e4 254 grey
" Color: errorred #ff005f 197 red
" Term colors: light0 light1 light2 light3 light4 light5 light6 light7
" Term colors: light8 light9 light10 light11 light12 light13 light14 light15
" Background: any
" vim: et ts=2 sw=2
+4 -2
View File
@@ -3,7 +3,7 @@
" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
" Website: https://www.github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sat 11 Jun 2022 11:29:07 MSK
" Last Updated: Fri 02 Sep 2022 09:50:56 MSK
" Generated by Colortemplate v2.2.0
@@ -12,7 +12,7 @@ set background=dark
hi clear
let g:colors_name = 'ron'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
hi! link Terminal Normal
hi! link Boolean Constant
@@ -46,6 +46,8 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+6 -2
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 11:02:11 2022
" Last Updated: Fri 02 Sep 2022 09:51:42 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=light
hi clear
let g:colors_name = 'shine'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#8b0000', '#006400', '#ffff00', '#00008b', '#6a0dad', '#008b8b', '#dadada', '#767676', '#ffafaf', '#90ee90', '#ffff60', '#add8e6', '#ff00ff', '#00ffff', '#ffffff']
@@ -28,6 +28,8 @@ hi! link EndOfBuffer NonText
hi! link ErrorMsg Error
hi! link Tag Special
hi! link Operator Statement
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#dadada gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#dadada gui=NONE cterm=NONE
@@ -104,6 +106,8 @@ if s:t_Co >= 256
hi! link ErrorMsg Error
hi! link Tag Special
hi! link Operator Statement
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi Folded ctermfg=18 ctermbg=253 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=253 cterm=NONE
+80 -59
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ralph Amissah <ralph@amissah.com>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 11:03:10 2022
" Last Updated: Fri 02 Sep 2022 09:52:25 MSK
" Generated by Colortemplate v2.2.0
@@ -13,10 +13,10 @@ set background=dark
hi clear
let g:colors_name = 'slate'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#ff0000', '#5f8700', '#ffff00', '#87d7ff', '#d7d787', '#ffd7af', '#666666', '#333333', '#ffafaf', '#00875f', '#ffd700', '#5f87d7', '#afaf87', '#ff8787', '#ffffff']
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
hi! link Terminal Normal
hi! link LineNrAbove LineNr
@@ -24,6 +24,8 @@ hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#ffffff guibg=#262626 gui=NONE cterm=NONE
hi EndOfBuffer guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
hi StatusLine guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
@@ -53,18 +55,18 @@ hi Visual guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
hi SignColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
hi VisualNOS guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
hi LineNr guifg=#666666 guibg=NONE gui=NONE cterm=NONE
hi Underlined guifg=#5f87d7 guibg=NONE gui=underline cterm=underline
hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
hi ErrorMsg guifg=#ff0000 guibg=#000000 gui=reverse cterm=reverse
hi ModeMsg guifg=#262626 guibg=#ffd700 gui=NONE cterm=NONE
hi WarningMsg guifg=#ff8787 guibg=NONE gui=NONE cterm=NONE
hi MoreMsg guifg=#00875f guibg=NONE gui=NONE cterm=NONE
hi Question guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
hi Todo guifg=#ff0000 guibg=#ffff00 gui=NONE cterm=NONE
hi MatchParen guifg=#000000 guibg=#ffd700 gui=NONE cterm=NONE
hi Search guifg=#000000 guibg=#d7875f gui=NONE cterm=NONE
hi IncSearch guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
hi Todo guifg=#ff0000 guibg=#ffff00 gui=NONE cterm=NONE
hi WildMenu guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
hi Underlined guifg=#5f87d7 guibg=NONE gui=underline cterm=underline
hi Cursor guifg=#333333 guibg=#d7d787 gui=NONE cterm=NONE
hi lCursor guifg=#262626 guibg=#ffafaf gui=NONE cterm=NONE
hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
@@ -99,6 +101,8 @@ if s:t_Co >= 256
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=231 ctermbg=235 cterm=NONE
hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
@@ -128,18 +132,18 @@ if s:t_Co >= 256
hi SignColumn ctermfg=NONE ctermbg=235 cterm=NONE
hi VisualNOS ctermfg=186 ctermbg=64 cterm=NONE
hi LineNr ctermfg=241 ctermbg=NONE cterm=NONE
hi Underlined ctermfg=68 ctermbg=NONE cterm=underline
hi Error ctermfg=196 ctermbg=231 cterm=reverse
hi ErrorMsg ctermfg=196 ctermbg=16 cterm=reverse
hi ModeMsg ctermfg=235 ctermbg=220 cterm=NONE
hi WarningMsg ctermfg=210 ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
hi Question ctermfg=220 ctermbg=NONE cterm=NONE
hi Todo ctermfg=196 ctermbg=226 cterm=NONE
hi MatchParen ctermfg=16 ctermbg=220 cterm=NONE
hi Search ctermfg=16 ctermbg=173 cterm=NONE
hi IncSearch ctermfg=16 ctermbg=46 cterm=NONE
hi Todo ctermfg=196 ctermbg=226 cterm=NONE
hi WildMenu ctermfg=235 ctermbg=186 cterm=NONE
hi Underlined ctermfg=68 ctermbg=NONE cterm=underline
hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=226 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=217 ctermbg=NONE cterm=underline
@@ -169,12 +173,12 @@ if s:t_Co >= 256
endif
if s:t_Co >= 16
hi Normal ctermfg=white ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineNC ctermfg=darkgrey ctermbg=grey cterm=NONE
hi StatusLineTerm ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineTermNC ctermfg=darkgrey ctermbg=grey cterm=NONE
hi Normal ctermfg=grey ctermbg=black cterm=NONE
hi EndOfBuffer ctermfg=darkblue ctermbg=NONE cterm=bold
hi StatusLine ctermfg=white ctermbg=black cterm=bold,reverse
hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
hi StatusLineTerm ctermfg=white ctermbg=black cterm=bold,reverse
hi StatusLineTermNC ctermfg=black ctermbg=grey cterm=NONE
hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
@@ -198,38 +202,38 @@ if s:t_Co >= 16
hi SignColumn ctermfg=NONE ctermbg=black cterm=NONE
hi VisualNOS ctermfg=darkmagenta ctermbg=darkgreen cterm=NONE
hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi Error ctermfg=darkred ctermbg=white cterm=reverse
hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
hi ModeMsg ctermfg=black ctermbg=yellow cterm=NONE
hi WarningMsg ctermfg=cyan ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE
hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkred ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=yellow cterm=NONE
hi Search ctermfg=black ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=red ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi String ctermfg=cyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkred ctermbg=NONE cterm=NONE
hi Function ctermfg=yellow ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=blue ctermbg=NONE cterm=bold
hi Constant ctermfg=red ctermbg=NONE cterm=NONE
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=red ctermbg=NONE cterm=bold
hi Comment ctermfg=darkgray ctermbg=NONE cterm=NONE
hi Operator ctermfg=red ctermbg=NONE cterm=NONE
hi PreProc ctermfg=red ctermbg=NONE cterm=NONE
hi Structure ctermfg=green ctermbg=NONE cterm=NONE
hi Function ctermfg=yellow ctermbg=NONE cterm=NONE
hi Type ctermfg=blue ctermbg=NONE cterm=bold
hi Operator ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Define ctermfg=yellow ctermbg=NONE cterm=bold
hi Structure ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Directory ctermfg=green ctermbg=NONE cterm=bold
hi Constant ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi String ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi Title ctermfg=yellow ctermbg=NONE cterm=bold
hi Title ctermfg=darkyellow ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@@ -274,27 +278,28 @@ if s:t_Co >= 8
hi WarningMsg ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Question ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Todo ctermfg=darkred ctermbg=darkyellow cterm=NONE
hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
hi Search ctermfg=black ctermbg=darkmagenta cterm=NONE
hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
hi Todo ctermfg=black ctermbg=yellow cterm=NONE
hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
hi SpellBad ctermfg=darkred ctermbg=darkyellow cterm=reverse
hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=reverse
hi SpellLocal ctermfg=darkmagenta ctermbg=darkyellow cterm=reverse
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=reverse
hi Comment ctermfg=grey ctermbg=NONE cterm=bold
hi String ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkred ctermbg=NONE cterm=NONE
hi Function ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Statement ctermfg=darkblue ctermbg=NONE cterm=bold
hi Constant ctermfg=darkred ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Identifier ctermfg=darkred ctermbg=NONE cterm=bold
hi Comment ctermfg=darkgray ctermbg=NONE cterm=bold
hi Operator ctermfg=darkred ctermbg=NONE cterm=bold
hi PreProc ctermfg=darkred ctermbg=NONE cterm=bold
hi Structure ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Function ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Type ctermfg=darkblue ctermbg=NONE cterm=bold
hi Operator ctermfg=darkmagenta ctermbg=NONE cterm=NONE
hi Define ctermfg=darkyellow ctermbg=NONE cterm=bold
hi Structure ctermfg=darkgreen ctermbg=NONE cterm=NONE
hi Constant ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi String ctermfg=darkcyan ctermbg=NONE cterm=NONE
hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
hi Directory ctermfg=darkgreen ctermbg=NONE cterm=bold
hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -376,29 +381,45 @@ if s:t_Co >= 0
endif
" Background: dark
" Color: foreground #FFFFFF 231 white
" Color: background #262626 235 black
" Color: color00 #000000 16 black
" Color: color08 #333333 236 darkgrey
" Color: color01 #FF0000 196 darkred
" Color: color09 #FFAFAF 217 red
" Color: color02 #5F8700 64 darkgreen
" Color: color10 #00875F 29 green
" Color: color03 #ffff00 226 darkyellow
" Color: color11 #FFD700 220 yellow
" Color: color04 #87d7FF 117 darkblue
" Color: color12 #5F87D7 68 blue
" Color: color05 #d7d787 186 darkmagenta
" Color: color13 #AFAF87 144 magenta
" Color: color06 #FFD7AF 223 darkcyan
" Color: color14 #FF8787 210 cyan
" Color: color07 #666666 241 grey
" Color: color15 #FFFFFF 231 white
" Color: color16 #D7875F 173 darkmagenta
" Color: color17 #00FF00 46 darkgreen
" Color: Pmenu #4A4A4A 239 darkgrey
" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
" Color: x_black #000000 16 black
" Color: x_darkred #cd0000 160 darkred
" Color: x_darkgreen #00cd00 40 darkgreen
" Color: x_darkyellow #cdcd00 184 darkyellow
" Color: x_darkblue #0000ee 21 darkblue
" Color: x_darkmagenta #cd00cd 164 darkmagenta
" Color: x_darkcyan #00cdcd 44 darkcyan
" Color: x_gray #e5e5e5 254 gray
" Color: x_darkgray #7f7f7f 244 darkgray
" Color: x_red #ff0000 196 red
" Color: x_green #00ff00 46 green
" Color: x_yellow #ffff00 226 yellow
" Color: x_blue #5c5cff 63 blue
" Color: x_magenta #ff00ff 201 magenta
" Color: x_cyan #00ffff 51 cyan
" Color: x_white #ffffff 231 white
" Color: foreground #FFFFFF 231 white
" Color: background #262626 235 black
" Color: color00 #000000 16 black
" Color: color08 #333333 236 darkgrey
" Color: color01 #FF0000 196 darkred
" Color: color09 #FFAFAF 217 red
" Color: color02 #5F8700 64 darkgreen
" Color: color10 #00875F 29 green
" Color: color03 #ffff00 226 darkyellow
" Color: color11 #FFD700 220 yellow
" Color: color04 #87d7FF 117 darkblue
" Color: color12 #5F87D7 68 blue
" Color: color05 #d7d787 186 darkmagenta
" Color: color13 #AFAF87 144 magenta
" Color: color06 #FFD7AF 223 darkcyan
" Color: color14 #FF8787 210 cyan
" Color: color07 #666666 241 grey
" Color: color15 #FFFFFF 231 white
" Color: color16 #D7875F 173 darkmagenta
" Color: color17 #00FF00 46 darkgreen
" Color: Pmenu #4A4A4A 239 darkgrey
" Term colors: x_black x_darkred x_darkgreen x_darkyellow x_darkblue x_darkmagenta x_darkcyan x_gray
" Term colors: x_darkgray x_red x_green x_yellow x_blue x_magenta x_cyan x_white
" Color: bgDiffA #5F875F 65 darkgreen
" Color: bgDiffC #5F87AF 67 blue
" Color: bgDiffD #AF5FAF 133 magenta
+18 -4
View File
@@ -6,10 +6,23 @@ vim9script
def Test_check_colors()
const savedview = winsaveview()
cursor(1, 1)
var err = {}
# err is
# {
# colors_name: "message",
# init: "message",
# background: "message",
# ....etc
# highlight: {
# 'Normal': "Missing ...",
# 'Conceal': "Missing ..."
# ....etc
# }
# }
var err: dict<any> = {}
# 1) Check g:colors_name is existing
if !search('\<\%(g:\)\?colors_name\>', 'cnW')
if search('\<\%(g:\)\?colors_name\>', 'cnW') == 0
err['colors_name'] = 'g:colors_name not set'
else
err['colors_name'] = 'OK'
@@ -180,11 +193,12 @@ def Test_check_colors()
Result(err)
enddef
def Result(err: any)
def Result(err: dict<any>)
var do_groups: bool = v:false
echohl Title | echomsg "---------------" | echohl Normal
for key in sort(keys(err))
if key is 'highlight'
if key == 'highlight'
do_groups = !empty(err[key])
continue
else
+6 -2
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Thorsten Maerz <info@netztorte.de>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 11:04:48 2022
" Last Updated: Fri 02 Sep 2022 09:53:21 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=dark
hi clear
let g:colors_name = 'torte'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
@@ -26,6 +26,8 @@ hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#cccccc guibg=#000000 gui=NONE cterm=NONE
hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
@@ -97,6 +99,8 @@ if s:t_Co >= 256
hi! link CursorLineSign CursorLine
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=251 ctermbg=16 cterm=NONE
hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+6 -2
View File
@@ -4,7 +4,7 @@
" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Sun Jun 12 11:05:43 2022
" Last Updated: Fri 02 Sep 2022 09:54:15 MSK
" Generated by Colortemplate v2.2.0
@@ -13,7 +13,7 @@ set background=light
hi clear
let g:colors_name = 'zellner'
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
if (has('termguicolors') && &termguicolors) || has('gui_running')
let g:terminal_ansi_colors = ['#ffffff', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#a9a9a9', '#ff0000', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#000000']
@@ -24,6 +24,8 @@ hi! link LineNrBelow LineNr
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
hi CursorLine guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
@@ -95,6 +97,8 @@ if s:t_Co >= 256
hi! link CurSearch Search
hi! link CursorLineFold CursorLine
hi! link CursorLineSign CursorLine
hi! link MessageWindow Pmenu
hi! link PopupNotification Todo
hi Normal ctermfg=16 ctermbg=231 cterm=NONE
hi Folded ctermfg=18 ctermbg=252 cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
+35 -41
View File
@@ -1,54 +1,48 @@
" Vim compiler file
" Compiler: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 21
vim9script
if exists("current_compiler")
# Language: ConTeXt typesetting engine
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
# Former Maintainers: Nikolai Weibull <now@bitwi.se>
# Latest Revision: 2022 Aug 12
if exists("g:current_compiler")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
import autoload '../autoload/context.vim'
if exists(":CompilerSet") != 2 # Older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" If makefile exists and we are not asked to ignore it, we use standard make
" (do not redefine makeprg)
g:current_compiler = 'context'
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
\ (!filereadable('Makefile') && !filereadable('makefile'))
let current_compiler = 'context'
" The following assumes that the current working directory is set to the
" directory of the file to be typeset
let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode --synctex='
\ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
\ . ' ' . shellescape(expand('%:p:t'))
(!filereadable('Makefile') && !filereadable('makefile'))
&l:makeprg = join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ')
else
let current_compiler = 'make'
g:current_compiler = 'make'
endif
let b:context_errorformat = ''
\ . '%-Popen source%.%#> %f,'
\ . '%-Qclose source%.%#> %f,'
\ . "%-Popen source%.%#name '%f',"
\ . "%-Qclose source%.%#name '%f',"
\ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
\ . 'tex %trror%.%#error on line %l in file %f: %m,'
\ . '%Elua %trror%.%#error on line %l in file %f:,'
\ . '%+Emetapost %#> error: %#,'
\ . '! error: %#%m,'
\ . '%-C %#,'
\ . '%C! %m,'
\ . '%Z[ctxlua]%m,'
\ . '%+C<*> %.%#,'
\ . '%-C%.%#,'
\ . '%Z...%m,'
\ . '%-Zno-error,'
\ . '%-G%.%#' " Skip remaining lines
const context_errorformat = join([
"%-Popen source%.%#> %f",
"%-Qclose source%.%#> %f",
"%-Popen source%.%#name '%f'",
"%-Qclose source%.%#name '%f'",
"tex %trror%.%#error on line %l in file %f: %m",
"%Elua %trror%.%#error on line %l in file %f:",
"%+Emetapost %#> error: %#",
"%Emetafun%.%#error: %m",
"! error: %#%m",
"%-C %#",
"%C! %m",
"%Z[ctxlua]%m",
"%+C<*> %.%#",
"%-C%.%#",
"%Z...%m",
"%-Zno-error",
"%-G%.%#"], ",")
execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
execute 'CompilerSet errorformat=' .. escape(context_errorformat, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo
# vim: sw=2 fdm=marker
+14
View File
@@ -0,0 +1,14 @@
" Vim compiler file
" Compiler: raco (Racket command-line tools)
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" URL: https://github.com/benknoble/vim-racket
" Last Change: 2022 Aug 12
let current_compiler = 'raco'
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=raco
CompilerSet errorformat=%f:%l:%c:%m
+14
View File
@@ -0,0 +1,14 @@
" Vim compiler file
" Compiler: raco make (Racket command-line tools)
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" URL: https://github.com/benknoble/vim-racket
" Last Change: 2022 Aug 12
let current_compiler = 'racomake'
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=raco\ make\ --\ %
CompilerSet errorformat=%f:%l:%c:%m
+14
View File
@@ -0,0 +1,14 @@
" Vim compiler file
" Compiler: raco setup (Racket command-line tools)
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" URL: https://github.com/benknoble/vim-racket
" Last Change: 2022 Aug 12
let current_compiler = 'racosetup'
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=raco\ setup
CompilerSet errorformat=%f:%l:%c:%m
+14
View File
@@ -0,0 +1,14 @@
" Vim compiler file
" Compiler: raco test (Racket command-line tools)
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" URL: https://github.com/benknoble/vim-racket
" Last Change: 2022 Aug 12
let current_compiler = 'racotest'
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=raco\ test\ %
CompilerSet errorformat=location:%f:%l:%c
+25
View File
@@ -7,6 +7,31 @@
aunmenu *
tlunmenu *
if exists('#SetupLazyloadMenus')
au! SetupLazyloadMenus
augroup! SetupLazyloadMenus
endif
if exists('#buffer_list')
au! buffer_list
augroup! buffer_list
endif
if exists('#LoadBufferMenu')
au! LoadBufferMenu
augroup! LoadBufferMenu
endif
if exists('#spellmenu')
au! spellmenu
augroup! spellmenu
endif
if exists('#SpellPopupMenu')
au! SpellPopupMenu
augroup! SpellPopupMenu
endif
unlet! g:did_install_default_menus
unlet! g:did_install_syntax_menu
+6
View File
@@ -31,6 +31,8 @@ DOCS = \
filetype.txt \
fold.txt \
ft_ada.txt \
ft_context.txt \
ft_mp.txt \
ft_ps1.txt \
ft_raku.txt \
ft_rust.txt \
@@ -114,6 +116,7 @@ DOCS = \
todo.txt \
uganda.txt \
undo.txt \
userfunc.txt \
usr_01.txt \
usr_02.txt \
usr_03.txt \
@@ -181,6 +184,8 @@ HTMLS = \
filetype.html \
fold.html \
ft_ada.html \
ft_context.html \
ft_mp.html \
ft_ps1.html \
ft_raku.html \
ft_rust.html \
@@ -262,6 +267,7 @@ HTMLS = \
todo.html \
uganda.html \
undo.html \
userfunc.html \
usr_01.html \
usr_02.html \
usr_03.html \
+3 -1
View File
@@ -642,6 +642,8 @@ CmdwinLeave Before leaving the command-line window.
|cmdwin-char|
*ColorScheme*
ColorScheme After loading a color scheme. |:colorscheme|
Not triggered if the color scheme is not
found.
The pattern is matched against the
colorscheme name. <afile> can be used for the
name of the actual file where this option was
@@ -1282,7 +1284,7 @@ User Never executed automatically. To be used for
if exists('#User#MyEvent')
doautocmd User MyEvent
endif
<
*SigUSR1*
SigUSR1 After the SIGUSR1 signal has been detected.
Could be used if other ways of notifying Vim
+219 -60
View File
@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.0. Last change: 2022 Jun 27
*builtin.txt* For Vim version 9.0. Last change: 2022 Sep 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -253,6 +253,7 @@ getreg([{regname} [, 1 [, {list}]]])
String or List contents of a register
getreginfo([{regname}]) Dict information about a register
getregtype([{regname}]) String type of a register
getscriptinfo([{opts}]) List list of sourced scripts
gettabinfo([{expr}]) List list of tab pages
gettabvar({nr}, {varname} [, {def}])
any variable {varname} in tab {nr} or {def}
@@ -291,9 +292,11 @@ iconv({expr}, {from}, {to}) String convert encoding of {expr}
indent({lnum}) Number indent of line {lnum}
index({object}, {expr} [, {start} [, {ic}]])
Number index in {object} where {expr} appears
indexof({object}, {expr} [, {opts}]])
Number index in {object} where {expr} is true
input({prompt} [, {text} [, {completion}]])
String get input from the user
inputdialog({prompt} [, {text} [, {completion}]])
inputdialog({prompt} [, {text} [, {cancelreturn}]])
String like input() but in a GUI dialog
inputlist({textlist}) Number let the user pick from a choice list
inputrestore() Number restore typeahead
@@ -322,6 +325,8 @@ js_encode({expr}) String encode JS style JSON
json_decode({string}) any decode JSON
json_encode({expr}) String encode JSON
keys({dict}) List keys in {dict}
keytrans({string}) String translate internal keycodes to a form
that can be used by |:map|
len({expr}) Number the length of {expr}
libcall({lib}, {func}, {arg}) String call {func} in library {lib} with {arg}
libcallnr({lib}, {func}, {arg}) Number idem, but return a Number
@@ -468,7 +473,8 @@ remove({blob}, {idx} [, {end}]) Number/Blob
remove bytes {idx}-{end} from {blob}
remove({dict}, {key}) any remove entry {key} from {dict}
rename({from}, {to}) Number rename (move) file from {from} to {to}
repeat({expr}, {count}) String repeat {expr} {count} times
repeat({expr}, {count}) List/Blob/String
repeat {expr} {count} times
resolve({filename}) String get filename a shortcut points to
reverse({list}) List reverse {list} in-place
round({expr}) Float round off {expr}
@@ -502,6 +508,7 @@ setbufvar({buf}, {varname}, {val})
setcellwidths({list}) none set character cell width overrides
setcharpos({expr}, {list}) Number set the {expr} position to {list}
setcharsearch({dict}) Dict set character search from {dict}
setcmdline({str} [, {pos}]) Number set command-line
setcmdpos({pos}) Number set cursor position in command-line
setcursorcharpos({list}) Number move cursor to position in {list}
setenv({name}, {val}) none set environment variable
@@ -1149,7 +1156,7 @@ blob2list({blob}) *blob2list()*
Can also be used as a |method|: >
GetBlob()->blob2list()
<
*browse()*
browse({save}, {title}, {initdir}, {default})
Put up a file requester. This only works when "has("browse")"
@@ -1176,7 +1183,8 @@ browsedir({title}, {initdir})
browsing is not possible, an empty string is returned.
bufadd({name}) *bufadd()*
Add a buffer to the buffer list with String {name}.
Add a buffer to the buffer list with name {name} (must be a
String).
If a buffer for file {name} already exists, return that buffer
number. Otherwise return the buffer number of the newly
created buffer. When {name} is an empty string then a new
@@ -1229,7 +1237,8 @@ bufload({buf}) *bufload()*
Ensure the buffer {buf} is loaded. When the buffer name
refers to an existing file then the file is read. Otherwise
the buffer will be empty. If the buffer was already loaded
then there is no change.
then there is no change. If the buffer is not related to a
file the no file is read (e.g., when 'buftype' is "nofile").
If there is an existing swap file for the file of the buffer,
there will be no dialog, the buffer will be loaded anyway.
The {buf} argument is used like with |bufexists()|.
@@ -1665,7 +1674,7 @@ complete_info([{what}]) *complete_info()*
typed text only, or the last completion after
no item is selected when using the <Up> or
<Down> keys)
inserted Inserted string. [NOT IMPLEMENT YET]
inserted Inserted string. [NOT IMPLEMENTED YET]
*complete_info_mode*
mode values are:
@@ -2316,7 +2325,9 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined,
To check for a supported command
always check the return value to be 2.
:2match The |:2match| command.
:3match The |:3match| command.
:3match The |:3match| command (but you
probably should not use it, it is
reserved for internal usage)
#event autocommand defined for this event
#event#pattern autocommand defined for this event and
pattern (the pattern is taken
@@ -2729,8 +2740,6 @@ finddir({name} [, {path} [, {count}]]) *finddir()*
Returns an empty string if the directory is not found.
This is quite similar to the ex-command `:find`.
{only available when compiled with the |+file_in_path|
feature}
Can also be used as a |method|: >
GetName()->finddir()
@@ -3032,10 +3041,10 @@ function({name} [, {arglist}] [, {dict}])
Funcref. The extra arguments are appended to the list of
arguments. Example: >
func Callback(arg1, arg2, name)
...
"...
let Func = function('Callback', ['one'])
let Func2 = function(Func, ['two'])
...
"...
call Func2('name')
< Invokes the function as with: >
call Callback('one', 'two', 'name')
@@ -3045,22 +3054,23 @@ function({name} [, {arglist}] [, {dict}])
function Callback() dict
echo "called for " .. self.name
endfunction
...
"...
let context = {"name": "example"}
let Func = function('Callback', context)
...
"...
call Func() " will echo: called for example
< The use of function() is not needed when there are no extra
arguments, these two are equivalent: >
arguments, these two are equivalent, if Callback() is defined
as context.Callback(): >
let Func = function('Callback', context)
let Func = context.Callback
< The argument list and the Dictionary can be combined: >
function Callback(arg1, count) dict
...
"...
let context = {"name": "example"}
let Func = function('Callback', ['one'], context)
...
"...
call Func(500)
< Invokes the function as with: >
call context.Callback('one', 500)
@@ -3420,7 +3430,8 @@ getcmdcompltype() *getcmdcompltype()*
Only works when the command line is being edited, thus
requires use of |c_CTRL-\_e| or |c_CTRL-R_=|.
See |:command-completion| for the return string.
Also see |getcmdtype()|, |setcmdpos()| and |getcmdline()|.
Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()| and
|setcmdline()|.
Returns an empty string when completion is not defined.
getcmdline() *getcmdline()*
@@ -3429,7 +3440,8 @@ getcmdline() *getcmdline()*
|c_CTRL-R_=|.
Example: >
:cmap <F7> <C-\>eescape(getcmdline(), ' \')<CR>
< Also see |getcmdtype()|, |getcmdpos()| and |setcmdpos()|.
< Also see |getcmdtype()|, |getcmdpos()|, |setcmdpos()| and
|setcmdline()|.
Returns an empty string when entering a password or using
|inputsecret()|.
@@ -3439,7 +3451,8 @@ getcmdpos() *getcmdpos()*
Only works when editing the command line, thus requires use of
|c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
Returns 0 otherwise.
Also see |getcmdtype()|, |setcmdpos()| and |getcmdline()|.
Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()| and
|setcmdline()|.
getcmdscreenpos() *getcmdscreenpos()*
Return the screen position of the cursor in the command line
@@ -3448,7 +3461,8 @@ getcmdscreenpos() *getcmdscreenpos()*
Only works when editing the command line, thus requires use of
|c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
Returns 0 otherwise.
Also see |getcmdpos()|, |setcmdpos()|.
Also see |getcmdpos()|, |setcmdpos()|, |getcmdline()| and
|setcmdline()|.
getcmdtype() *getcmdtype()*
Return the current command-line type. Possible return values
@@ -4084,6 +4098,47 @@ getregtype([{regname}]) *getregtype()*
Can also be used as a |method|: >
GetRegname()->getregtype()
getscriptinfo([{opts}) *getscriptinfo()*
Returns a |List| with information about all the sourced Vim
scripts in the order they were sourced, like what
`:scriptnames` shows.
The optional Dict argument {opts} supports the following
optional items:
name Script name match pattern. If specified,
and "sid" is not specified, information about
scripts with name that match the pattern
"name" are returned.
sid Script ID |<SID>|. If specified, only
information about the script with ID "sid" is
returned and "name" is ignored.
Each item in the returned List is a |Dict| with the following
items:
autoload Set to TRUE for a script that was used with
`import autoload` but was not actually sourced
yet (see |import-autoload|).
functions List of script-local function names defined in
the script. Present only when a particular
script is specified using the "sid" item in
{opts}.
name Vim script file name.
sid Script ID |<SID>|.
sourced Script ID of the actually sourced script that
this script name links to, if any, otherwise
zero
variables A dictionary with the script-local variables.
Present only when the a particular script is
specified using the "sid" item in {opts}.
Note that this is a copy, the value of
script-local variables cannot be changed using
this dictionary.
version Vimscript version (|scriptversion|)
Examples: >
:echo getscriptinfo({'name': 'myscript'})
:echo getscriptinfo({'sid': 15}).variables
<
gettabinfo([{tabnr}]) *gettabinfo()*
If {tabnr} is not specified, then information about all the
tab pages is returned as a |List|. Each List item is a
@@ -4395,8 +4450,11 @@ has({feature} [, {check}])
has_key({dict}, {key}) *has_key()*
The result is a Number, which is TRUE if |Dictionary| {dict}
has an entry with key {key}. FALSE otherwise. The {key}
argument is a string.
has an entry with key {key}. FALSE otherwise.
The {key} argument is a string. In |Vim9| script a number is
also accepted (and converted to a string) but no other types.
In legacy script the usual automatic conversion to string is
done.
Can also be used as a |method|: >
mydict->has_key(key)
@@ -4728,19 +4786,25 @@ indent({lnum}) The result is a Number, which is indent of line {lnum} in the
GetLnum()->indent()
index({object}, {expr} [, {start} [, {ic}]]) *index()*
Find {expr} in {object} and return its index. See
|indexof()| for using a lambda to select the item.
If {object} is a |List| return the lowest index where the item
has a value equal to {expr}. There is no automatic
conversion, so the String "4" is different from the Number 4.
And the number 4 is different from the Float 4.0. The value
of 'ignorecase' is not used here, case always matters.
of 'ignorecase' is not used here, case matters as indicated by
the {ic} argument.
If {object} is |Blob| return the lowest index where the byte
value is equal to {expr}.
If {start} is given then start looking at the item with index
{start} (may be negative for an item relative to the end).
When {ic} is given and it is |TRUE|, ignore case. Otherwise
case must match.
-1 is returned when {expr} is not found in {object}.
Example: >
:let idx = index(words, "the")
@@ -4749,6 +4813,47 @@ index({object}, {expr} [, {start} [, {ic}]]) *index()*
< Can also be used as a |method|: >
GetObject()->index(what)
indexof({object}, {expr} [, {opts}]) *indexof()*
Returns the index of an item in {object} where {expr} is
v:true. {object} must be a |List| or a |Blob|.
If {object} is a |List|, evaluate {expr} for each item in the
List until the expression is v:true and return the index of
this item.
If {object} is a |Blob| evaluate {expr} for each byte in the
Blob until the expression is v:true and return the index of
this byte.
{expr} must be a |string| or |Funcref|.
If {expr} is a |string|: If {object} is a |List|, inside
{expr} |v:key| has the index of the current List item and
|v:val| has the value of the item. If {object} is a |Blob|,
inside {expr} |v:key| has the index of the current byte and
|v:val| has the byte value.
If {expr} is a |Funcref| it must take two arguments:
1. the key or the index of the current item.
2. the value of the current item.
The function must return |TRUE| if the item is found and the
search should stop.
The optional argument {opts} is a Dict and supports the
following items:
startidx start evaluating {expr} at the item with this
index; may be negative for an item relative to
the end
Returns -1 when {expr} evaluates to v:false for all the items.
Example: >
:let l = [#{n: 10}, #{n: 20}, #{n: 30}]
:echo indexof(l, "v:val.n == 20")
:echo indexof(l, {i, v -> v.n == 30})
:echo indexof(l, "v:val.n == 20", #{startidx: 1})
< Can also be used as a |method|: >
mylist->indexof(expr)
input({prompt} [, {text} [, {completion}]]) *input()*
The result is a String, which is whatever the user typed on
the command-line. The {prompt} argument is either a prompt
@@ -5102,6 +5207,16 @@ keys({dict}) *keys()*
Can also be used as a |method|: >
mydict->keys()
keytrans({string}) *keytrans()*
Turn the internal byte representation of keys into a form that
can be used for |:map|. E.g. >
:let xx = "\<C-Home>"
:echo keytrans(xx)
< <C-Home>
Can also be used as a |method|: >
"\<C-Home>"->keytrans()
< *len()* *E701*
len({expr}) The result is a Number, which is the length of the argument.
When {expr} is a String or a Number the length in bytes is
@@ -5773,8 +5888,10 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
message will appear and the match will not be added. An ID
is specified as a positive integer (zero excluded). IDs 1, 2
and 3 are reserved for |:match|, |:2match| and |:3match|,
respectively. If the {id} argument is not specified or -1,
|matchadd()| automatically chooses a free ID.
respectively. 3 is reserved for use by the |matchparen|
plugin.
If the {id} argument is not specified or -1, |matchadd()|
automatically chooses a free ID.
The optional {dict} argument allows for further custom
values. Currently this is used to specify a match specific
@@ -6135,8 +6252,26 @@ min({expr}) Return the minimum value of all items in {expr}. Example: >
mkdir({name} [, {path} [, {prot}]])
Create directory {name}.
If {path} is "p" then intermediate directories are created as
necessary. Otherwise it must be "".
If {path} contains "p" then intermediate directories are
created as necessary. Otherwise it must be "".
If {path} contains "D" then {name} is deleted at the end of
the current function, as with: >
defer delete({name}, 'd')
<
If {path} contains "R" then {name} is deleted recursively at
the end of the current function, as with: >
defer delete({name}, 'rf')
< Note that when {name} has more than one part and "p" is used
some directories may already exist. Only the first one that
is created and what it contains is scheduled to be deleted.
E.g. when using: >
call mkdir('subdir/tmp/autoload', 'pR')
< and "subdir" already exists then "subdir/tmp" will be
scheduled for deletion, like with: >
defer delete('subdir/tmp', 'rf')
< Note that if scheduling the defer fails the directory is not
deleted. This should only happen when out of memory.
If {prot} is given it is used to set the protection bits of
the new directory. The default is 0o755 (rwxr-xr-x: r/w for
@@ -7172,8 +7307,8 @@ repeat({expr}, {count}) *repeat()*
result. Example: >
:let separator = repeat('-', 80)
< When {count} is zero or negative the result is empty.
When {expr} is a |List| the result is {expr} concatenated
{count} times. Example: >
When {expr} is a |List| or a |Blob| the result is {expr}
concatenated {count} times. Example: >
:let longlist = repeat(['a', 'b'], 3)
< Results in ['a', 'b', 'a', 'b', 'a', 'b'].
@@ -7368,8 +7503,10 @@ search({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
starts in column zero and then matches before the cursor are
skipped. When the 'c' flag is present in 'cpo' the next
search starts after the match. Without the 'c' flag the next
search starts one column further. This matters for
overlapping matches.
search starts one column after the start of the match. This
matters for overlapping matches. See |cpo-c|. You can also
insert "\ze" to change where the match ends, see |/\ze|.
When searching backwards and the 'z' flag is given then the
search starts in column zero, thus no match in the current
line will be found (unless wrapping around the end of the
@@ -7383,7 +7520,7 @@ search({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
< When {stopline} is used and it is not zero this also implies
that the search does not wrap around the end of the file.
A zero value is equal to not giving the argument.
*E1285* *E1286* *E1287* *E1288* *E1289*
When the {timeout} argument is given the search stops when
more than this many milliseconds have passed. Thus when
{timeout} is 500 the search stops after half a second.
@@ -7475,7 +7612,7 @@ searchcount([{options}]) *searchcount()*
" to 1)
let result = searchcount()
<
The function is useful to add the count to |statusline|: >
The function is useful to add the count to 'statusline': >
function! LastSearchCount() abort
let result = searchcount(#{recompute: 0})
if empty(result)
@@ -7843,6 +7980,16 @@ setcharsearch({dict}) *setcharsearch()*
Can also be used as a |method|: >
SavedSearch()->setcharsearch()
setcmdline({str} [, {pos}]) *setcmdline()*
Set the command line to {str} and set the cursor position to
{pos}.
If {pos} is omitted, the cursor is positioned after the text.
Returns 0 when successful, 1 when not editing the command
line.
Can also be used as a |method|: >
GetText()->setcmdline()
setcmdpos({pos}) *setcmdpos()*
Set the cursor position in the command line to byte position
{pos}. The first position is 1.
@@ -7855,8 +8002,8 @@ setcmdpos({pos}) *setcmdpos()*
before inserting the resulting text.
When the number is too big the cursor is put at the end of the
line. A number smaller than one has undefined results.
Returns FALSE when successful, TRUE when not editing the
command line.
Returns 0 when successful, 1 when not editing the command
line.
Can also be used as a |method|: >
GetPos()->setcmdpos()
@@ -9229,6 +9376,7 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
"underline" "1" if underlined
"undercurl" "1" if undercurled
"strike" "1" if strikethrough
"nocombine" "1" if nocombine
Returns an empty string on error.
@@ -10332,34 +10480,43 @@ writefile({object}, {fname} [, {flags}])
When {object} is a |List| write it to file {fname}. Each list
item is separated with a NL. Each list item must be a String
or Number.
When {flags} contains "b" then binary mode is used: There will
not be a NL after the last list item. An empty item at the
end does cause the last line in the file to end in a NL.
When {object} is a |Blob| write the bytes to file {fname}
unmodified.
When {flags} contains "a" then append mode is used, lines are
appended to the file: >
:call writefile(["foo"], "event.log", "a")
:call writefile(["bar"], "event.log", "a")
<
When {flags} contains "s" then fsync() is called after writing
the file. This flushes the file to disk, if possible. This
takes more time but avoids losing the file if the system
crashes.
When {flags} does not contain "S" or "s" then fsync() is
called if the 'fsync' option is set.
When {flags} contains "S" then fsync() is not called, even
when 'fsync' is set.
All NL characters are replaced with a NUL character.
Inserting CR characters needs to be done before passing {list}
to writefile().
When {object} is a |Blob| write the bytes to file {fname}
unmodified, also when binary mode is not specified.
{flags} must be a String. These characters are recognized:
'b' Binary mode is used: There will not be a NL after the
last list item. An empty item at the end does cause the
last line in the file to end in a NL.
'a' Append mode is used, lines are appended to the file: >
:call writefile(["foo"], "event.log", "a")
:call writefile(["bar"], "event.log", "a")
<
'D' Delete the file when the current function ends. This
works like: >
:defer delete({fname})
< Fails when not in a function. Also see |:defer|.
's' fsync() is called after writing the file. This flushes
the file to disk, if possible. This takes more time but
avoids losing the file if the system crashes.
'S' fsync() is not called, even when 'fsync' is set.
When {flags} does not contain "S" or "s" then fsync() is
called if the 'fsync' option is set.
An existing file is overwritten, if possible.
When the write fails -1 is returned, otherwise 0. There is an
error message if the file can't be created or when writing
fails.
Also see |readfile()|.
To copy a file byte for byte: >
:let fl = readfile("foo", "b")
@@ -10408,7 +10565,8 @@ use: `if exists('+shellslash')`
acl Compiled with |ACL| support.
all_builtin_terms Compiled with all builtin terminals enabled.
all_builtin_terms Compiled with all builtin terminals enabled. (always
true)
amiga Amiga version of Vim.
arabic Compiled with Arabic support |Arabic|.
arp Compiled with ARP support (Amiga).
@@ -10422,7 +10580,7 @@ browse Compiled with |:browse| support, and browse() will
work.
browsefilter Compiled with support for |browsefilter|.
bsd Compiled on an OS in the BSD family (excluding macOS).
builtin_terms Compiled with some builtin terminals.
builtin_terms Compiled with some builtin terminals. (always true)
byte_offset Compiled with support for 'o' in 'statusline'
channel Compiled with support for |channel| and |job|
cindent Compiled with 'cindent' support. (always true)
@@ -10454,7 +10612,8 @@ ex_extra |+ex_extra| (always true)
extra_search Compiled with support for |'incsearch'| and
|'hlsearch'|
farsi Support for Farsi was removed |farsi|.
file_in_path Compiled with support for |gf| and |<cfile>|
file_in_path Compiled with support for |gf| and |<cfile>| (always
true)
filterpipe When 'shelltemp' is off pipes are used for shell
read/write/filter commands
find_in_path Compiled with support for include file searches
+2
View File
@@ -802,6 +802,8 @@ When the {string} starts with "\=" it is evaluated as an expression, see
|sub-replace-expression|. You can use that for complex replacement or special
characters.
The substitution is limited in recursion to 4 levels. *E1290*
Otherwise these characters in {string} have a special meaning:
*:s%*
When {string} is equal to "%" and '/' is included with the 'cpoptions' option,
+1
View File
@@ -27,6 +27,7 @@ The Netbeans interface also uses a channel. |netbeans|
14. Using a prompt buffer |prompt-buffer|
15. Language Server Protocol |language-server-protocol|
*E1277*
{only when compiled with the |+channel| feature for channel stuff}
You can check this with: `has('channel')`
{only when compiled with the |+job| feature for job stuff}
+2 -3
View File
@@ -199,9 +199,6 @@ CTRL-R CTRL-L *c_CTRL-R_CTRL-L* *c_<C-R>_<C-L>*
currently displayed match is used. With CTRL-W the part of
the word that was already typed is not inserted again.
CTRL-F and CTRL-P: {only when |+file_in_path| feature is
included}
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
CTRL-R CTRL-R {register CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
@@ -1147,6 +1144,8 @@ character that indicates the type of command-line being edited, see
Vim will be in Normal mode when the editor is opened, except when 'insertmode'
is set.
*E1292*
Once a command-line window is open it is not possible to open another one.
The height of the window is specified with 'cmdwinheight' (or smaller if there
is no room). The window is always full width and is positioned just above the
+22 -10
View File
@@ -21,6 +21,8 @@ main(int argc, char **argv)
char *p1, *p2;
char *p;
FILE *fd;
int len;
int in_example;
if (argc <= 1)
{
@@ -37,22 +39,28 @@ main(int argc, char **argv)
fprintf(stderr, "Unable to open %s for reading\n", argv[0]);
continue;
}
in_example = 0;
while (fgets(line, LINELEN, fd) != NULL)
{
p1 = strchr(line, '*'); /* find first '*' */
if (in_example)
{
// skip over example; non-blank in first column ends example
if (strchr(" \t\n\r", line[0]) != NULL)
continue;
in_example = 0;
}
p1 = strchr(line, '*'); // find first '*'
while (p1 != NULL)
{
p2 = strchr(p1 + 1, '*'); /* find second '*' */
if (p2 != NULL && p2 > p1 + 1) /* skip "*" and "**" */
p2 = strchr(p1 + 1, '*'); // find second '*'
if (p2 != NULL && p2 > p1 + 1) // skip "*" and "**"
{
for (p = p1 + 1; p < p2; ++p)
if (*p == ' ' || *p == '\t' || *p == '|')
break;
/*
* Only accept a *tag* when it consists of valid
* characters, there is white space before it and is
* followed by a white character or end-of-line.
*/
// Only accept a *tag* when it consists of valid
// characters, there is white space before it and is
// followed by a white character or end-of-line.
if (p == p2
&& (p1 == line || p1[-1] == ' ' || p1[-1] == '\t')
&& (strchr(" \t\n\r", p[1]) != NULL
@@ -63,18 +71,22 @@ main(int argc, char **argv)
printf("%s\t%s\t/*", p1, argv[0]);
while (*p1)
{
/* insert backslash before '\\' and '/' */
// insert backslash before '\\' and '/'
if (*p1 == '\\' || *p1 == '/')
putchar('\\');
putchar(*p1);
++p1;
}
printf("*\n");
p2 = strchr(p2 + 1, '*'); /* find next '*' */
p2 = strchr(p2 + 1, '*'); // find next '*'
}
}
p1 = p2;
}
len = strlen(line);
if ((len == 2 && strcmp(&line[len - 2], ">\n") == 0)
|| (len >= 3 && strcmp(&line[len - 3], " >\n") == 0))
in_example = 1;
}
fclose(fd);
}
-6
View File
@@ -247,8 +247,6 @@ If you want to keep the changed buffer without saving it, switch on the
*:fin* *:find*
:fin[d][!] [++opt] [+cmd] {file}
Find {file} in 'path' and then |:edit| it.
{not available when the |+file_in_path| feature was
disabled at compile time}
:{count}fin[d][!] [++opt] [+cmd] {file}
Just like ":find", but use the {count} match in
@@ -322,8 +320,6 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
For Unix the '~' character is expanded, like in
"~user/file". Environment variables are expanded too
|expand-env|.
{not available when the |+file_in_path| feature was
disabled at compile time}
*v_gf*
{Visual}[count]gf Same as "gf", but the highlighted text is used as the
@@ -1707,8 +1703,6 @@ problem goes away the next day.
==============================================================================
11. File Searching *file-searching*
{not available when compiled without the |+path_extra| feature}
The file searching is currently used for the 'path', 'cdpath' and 'tags'
options, for |finddir()| and |findfile()|. Other commands use |wildcards|
which is slightly different.
+31 -444
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.0. Last change: 2022 Jun 17
*eval.txt* For Vim version 9.0. Last change: 2022 Sep 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1098,6 +1098,7 @@ a different type means the values are different: >
echo 0 is []
0
"is#"/"isnot#" and "is?"/"isnot?" can be used to match and ignore case.
In |Vim9| script this doesn't work, two strings are never identical.
In legacy script, when comparing a String with a Number, the String is
converted to a Number, and the comparison is done on Numbers. This means
@@ -1399,7 +1400,7 @@ parenthesis), or any expression in parentheses: >
base->alist[idx](args)
base->(getFuncRef())(args)
Note that in the last call the base is passed to the function resulting from
"(getFuncRef())", inserted before "args".
"(getFuncRef())", inserted before "args". *E1275*
*E274*
"->name(" must not contain white space. There can be white space before the
@@ -1549,7 +1550,7 @@ to be doubled. These two commands are equivalent: >
if a =~ '\s*'
interpolated-string *$quote* *interp-string* *E256*
interpolated-string *$quote* *interp-string*
--------------------
$"string" interpolated string constant *expr-$quote*
$'string' interpolated literal string constant *expr-$'*
@@ -1559,7 +1560,7 @@ allowing the inclusion of Vim script expressions (see |expr1|). Any
expression returning a value can be enclosed between curly braces. The value
is converted to a string. All the text and results of the expressions
are concatenated to make a new string.
*E1278*
*E1278* *E1279*
To include an opening brace '{' or closing brace '}' in the string content
double it. For double quoted strings using a backslash also works. A single
closing brace '}' will result in an error.
@@ -1717,6 +1718,9 @@ Recommendation: don't do this.
Notice how execute() is used to execute an Ex command. That's ugly though.
In Vim9 script you can use a command block, see |inline-function|.
Although you can use the loop variable of a `for` command, it must still exist
when the closure is called, otherwise you get an error. *E1302*
Lambda expressions have internal names like '<lambda>42'. If you get an error
for a lambda expression, you can find what it is with the following command: >
:function <lambda>42
@@ -2005,6 +2009,8 @@ v:completed_item
|Dictionary| containing the |complete-items| for the most
recently completed word after |CompleteDone|. The
|Dictionary| is empty if the completion failed.
Note: Plugins can modify the value to emulate the builtin
|CompleteDone| event behavior.
*v:count* *count-variable*
v:count The count given for the last Normal mode command. Can be used
@@ -2638,447 +2644,12 @@ help file: |builtin-functions|.
5. Defining functions *user-functions*
New functions can be defined. These can be called just like builtin
functions. The function executes a sequence of Ex commands. Normal mode
commands can be executed with the |:normal| command.
functions. The function takes arguments, executes a sequence of Ex commands
and can return a value.
This section is about the legacy functions. For the Vim9 functions, which
execute much faster, support type checking and more, see |vim9.txt|.
The function name must start with an uppercase letter, to avoid confusion with
builtin functions. To prevent from using the same name in different scripts
avoid obvious, short names. A good habit is to start the function name with
the name of the script, e.g., "HTMLcolor()".
In legacy script it is also possible to use curly braces, see
|curly-braces-names|.
The |autoload| facility is useful to define a function only when it's called.
*local-function*
A function local to a legacy script must start with "s:". A local script
function can only be called from within the script and from functions, user
commands and autocommands defined in the script. It is also possible to call
the function from a mapping defined in the script, but then |<SID>| must be
used instead of "s:" when the mapping is expanded outside of the script.
There are only script-local functions, no buffer-local or window-local
functions.
In |Vim9| script functions are local to the script by default, prefix "g:" to
define a global function.
*:fu* *:function* *E128* *E129* *E123* *E454*
:fu[nction] List all functions and their arguments.
:fu[nction] {name} List function {name}.
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
:function dict.init
:fu[nction] /{pattern} List functions with a name matching {pattern}.
Example that lists all functions ending with "File": >
:function /File$
<
*:function-verbose*
When 'verbose' is non-zero, listing a function will also display where it was
last defined. Example: >
:verbose function SetFileTypeSH
function SetFileTypeSH(name)
Last set from /usr/share/vim/vim-7.0/filetype.vim
<
See |:verbose-cmd| for more information.
*E124* *E125* *E853* *E884*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
Define a new function by the name {name}. The body of
the function follows in the next lines, until the
matching |:endfunction|.
The name must be made of alphanumeric characters and
'_', and must start with a capital or "s:" (see
above). Note that using "b:" or "g:" is not allowed.
(since patch 7.4.260 E884 is given if the function
name has a colon in the name, e.g. for "foo:bar()".
Before that patch no error was given).
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
:function dict.init(arg)
< "dict" must be an existing dictionary. The entry
"init" is added if it didn't exist yet. Otherwise [!]
is required to overwrite an existing function. The
result is a |Funcref| to a numbered function. The
function can only be used with a |Funcref| and will be
deleted if there are no more references to it.
*E127* *E122*
When a function by this name already exists and [!] is
not used an error message is given. There is one
exception: When sourcing a script again, a function
that was previously defined in that script will be
silently replaced.
When [!] is used, an existing function is silently
replaced. Unless it is currently being executed, that
is an error.
NOTE: Use ! wisely. If used without care it can cause
an existing function to be replaced unexpectedly,
which is hard to debug.
NOTE: In Vim9 script script-local functions cannot be
deleted or redefined.
For the {arguments} see |function-argument|.
*:func-range* *a:firstline* *a:lastline*
When the [range] argument is added, the function is
expected to take care of a range itself. The range is
passed as "a:firstline" and "a:lastline". If [range]
is excluded, ":{range}call" will call the function for
each line in the range, with the cursor on the start
of each line. See |function-range-example|.
The cursor is still moved to the first line of the
range, as is the case with all Ex commands.
*:func-abort*
When the [abort] argument is added, the function will
abort as soon as an error is detected.
*:func-dict*
When the [dict] argument is added, the function must
be invoked through an entry in a |Dictionary|. The
local variable "self" will then be set to the
dictionary. See |Dictionary-function|.
*:func-closure* *E932*
When the [closure] argument is added, the function
can access variables and arguments from the outer
scope. This is usually called a closure. In this
example Bar() uses "x" from the scope of Foo(). It
remains referenced even after Foo() returns: >
:function! Foo()
: let x = 0
: function! Bar() closure
: let x += 1
: return x
: endfunction
: return funcref('Bar')
:endfunction
:let F = Foo()
:echo F()
< 1 >
:echo F()
< 2 >
:echo F()
< 3
*function-search-undo*
The last used search pattern and the redo command "."
will not be changed by the function. This also
implies that the effect of |:nohlsearch| is undone
when the function returns.
*:endf* *:endfunction* *E126* *E193* *W22* *E1151*
:endf[unction] [argument]
The end of a function definition. Best is to put it
on a line by its own, without [argument].
[argument] can be:
| command command to execute next
\n command command to execute next
" comment always ignored
anything else ignored, warning given when
'verbose' is non-zero
The support for a following command was added in Vim
8.0.0654, before that any argument was silently
ignored.
To be able to define a function inside an `:execute`
command, use line breaks instead of |:bar|: >
:exe "func Foo()\necho 'foo'\nendfunc"
<
*:delf* *:delfunction* *E131* *E933* *E1084*
:delf[unction][!] {name}
Delete function {name}.
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
:delfunc dict.init
< This will remove the "init" entry from "dict". The
function is deleted if there are no more references to
it.
With the ! there is no error if the function does not
exist.
*:retu* *:return* *E133*
:retu[rn] [expr] Return from a function. When "[expr]" is given, it is
evaluated and returned as the result of the function.
If "[expr]" is not given, the number 0 is returned.
When a function ends without an explicit ":return",
the number 0 is returned.
In a :def function *E1095* is given if unreachable
code follows after the `:return`.
In legacy script there is no check for unreachable
lines, thus there is no warning if commands follow
`:return`.
If the ":return" is used after a |:try| but before the
matching |:finally| (if present), the commands
following the ":finally" up to the matching |:endtry|
are executed first. This process applies to all
nested ":try"s inside the function. The function
returns at the outermost ":endtry".
*function-argument* *a:var*
An argument can be defined by giving its name. In the function this can then
be used as "a:name" ("a:" for argument).
*a:0* *a:1* *a:000* *E740* *...*
Up to 20 arguments can be given, separated by commas. After the named
arguments an argument "..." can be specified, which means that more arguments
may optionally be following. In the function the extra arguments can be used
as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which
can be 0). "a:000" is set to a |List| that contains these arguments. Note
that "a:1" is the same as "a:000[0]".
*E742* *E1090*
The a: scope and the variables in it cannot be changed, they are fixed.
However, if a composite type is used, such as |List| or |Dictionary| , you can
change their contents. Thus you can pass a |List| to a function and have the
function add an item to it. If you want to make sure the function cannot
change a |List| or |Dictionary| use |:lockvar|.
It is also possible to define a function without any arguments. You must
still supply the () then.
It is allowed to define another function inside a function body.
*optional-function-argument*
You can provide default values for positional named arguments. This makes
them optional for function calls. When a positional argument is not
specified at a call, the default expression is used to initialize it.
This only works for functions declared with `:function` or `:def`, not for
lambda expressions |expr-lambda|.
Example: >
function Something(key, value = 10)
echo a:key .. ": " .. a:value
endfunction
call Something('empty') "empty: 10"
call Something('key', 20) "key: 20"
The argument default expressions are evaluated at the time of the function
call, not definition. Thus it is possible to use an expression which is
invalid the moment the function is defined. The expressions are also only
evaluated when arguments are not specified during a call.
*none-function_argument*
You can pass |v:none| to use the default expression. Note that this means you
cannot pass v:none as an ordinary value when an argument has a default
expression.
Example: >
function Something(a = 10, b = 20, c = 30)
endfunction
call Something(1, v:none, 3) " b = 20
<
*E989*
Optional arguments with default expressions must occur after any mandatory
arguments. You can use "..." after all optional named arguments.
It is possible for later argument defaults to refer to prior arguments,
but not the other way around. They must be prefixed with "a:", as with all
arguments.
Example that works: >
:function Okay(mandatory, optional = a:mandatory)
:endfunction
Example that does NOT work: >
:function NoGood(first = a:second, second = 10)
:endfunction
<
When not using "...", the number of arguments in a function call must be at
least equal to the number of mandatory named arguments. When using "...", the
number of arguments may be larger than the total of mandatory and optional
arguments.
*local-variables*
Inside a function local variables can be used. These will disappear when the
function returns. Global variables need to be accessed with "g:".
Example: >
:function Table(title, ...)
: echohl Title
: echo a:title
: echohl None
: echo a:0 .. " items:"
: for s in a:000
: echon ' ' .. s
: endfor
:endfunction
This function can then be called with: >
call Table("Table", "line1", "line2")
call Table("Empty Table")
To return more than one value, return a |List|: >
:function Compute(n1, n2)
: if a:n2 == 0
: return ["fail", 0]
: endif
: return ["ok", a:n1 / a:n2]
:endfunction
This function can then be called with: >
:let [success, div] = Compute(102, 6)
:if success == "ok"
: echo div
:endif
<
*:cal* *:call* *E107*
:[range]cal[l] {name}([arguments])
Call a function. The name of the function and its arguments
are as specified with `:function`. Up to 20 arguments can be
used. The returned value is discarded.
In |Vim9| script using `:call` is optional, these two lines do
the same thing: >
call SomeFunc(arg)
SomeFunc(arg)
< Without a range and for functions that accept a range, the
function is called once. When a range is given the cursor is
positioned at the start of the first line before executing the
function.
When a range is given and the function doesn't handle it
itself, the function is executed for each line in the range,
with the cursor in the first column of that line. The cursor
is left at the last line (possibly moved by the last function
call). The arguments are re-evaluated for each line. Thus
this works:
*function-range-example* >
:function Mynumber(arg)
: echo line(".") .. " " .. a:arg
:endfunction
:1,5call Mynumber(getline("."))
<
The "a:firstline" and "a:lastline" are defined anyway, they
can be used to do something different at the start or end of
the range.
Example of a function that handles the range itself: >
:function Cont() range
: execute (a:firstline + 1) .. "," .. a:lastline .. 's/^/\t\\ '
:endfunction
:4,8call Cont()
<
This function inserts the continuation character "\" in front
of all the lines in the range, except the first one.
When the function returns a composite value it can be further
dereferenced, but the range will not be used then. Example: >
:4,8call GetDict().method()
< Here GetDict() gets the range but method() does not.
*E117*
When a function cannot be found the error "E117: Unknown function" will be
given. If the function was using an autoload path or an autoload import and
the script is a |Vim9| script, this may also be caused by the function not
being exported.
*E132*
The recursiveness of user functions is restricted with the |'maxfuncdepth'|
option.
It is also possible to use `:eval`. It does not support a range, but does
allow for method chaining, e.g.: >
eval GetList()->Filter()->append('$')
A function can also be called as part of evaluating an expression or when it
is used as a method: >
let x = GetList()
let y = GetList()->Filter()
AUTOMATICALLY LOADING FUNCTIONS ~
*autoload-functions*
When using many or large functions, it's possible to automatically define them
only when they are used. There are two methods: with an autocommand and with
the "autoload" directory in 'runtimepath'.
Using an autocommand ~
This is introduced in the user manual, section |51.4|.
The autocommand is useful if you have a plugin that is a long Vim script file.
You can define the autocommand and quickly quit the script with `:finish`.
That makes Vim startup faster. The autocommand should then load the same file
again, setting a variable to skip the `:finish` command.
Use the FuncUndefined autocommand event with a pattern that matches the
function(s) to be defined. Example: >
:au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
The file "~/vim/bufnetfuncs.vim" should then define functions that start with
"BufNet". Also see |FuncUndefined|.
Using an autoload script ~
*autoload* *E746*
This is introduced in the user manual, section |52.2|.
Using a script in the "autoload" directory is simpler, but requires using
exactly the right file name. A function that can be autoloaded has a name
like this: >
:call filename#funcname()
These functions are always global, in Vim9 script "g:" needs to be used: >
:call g:filename#funcname()
When such a function is called, and it is not defined yet, Vim will search the
"autoload" directories in 'runtimepath' for a script file called
"filename.vim". For example "~/.vim/autoload/filename.vim". That file should
then define the function like this: >
function filename#funcname()
echo "Done!"
endfunction
The file name and the name used before the # in the function must match
exactly, and the defined function must have the name exactly as it will be
called. In Vim9 script the "g:" prefix must be used: >
function g:filename#funcname()
or for a compiled function: >
def g:filename#funcname()
It is possible to use subdirectories. Every # in the function name works like
a path separator. Thus when calling a function: >
:call foo#bar#func()
Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
This also works when reading a variable that has not been set yet: >
:let l = foo#bar#lvar
However, when the autoload script was already loaded it won't be loaded again
for an unknown variable.
When assigning a value to such a variable nothing special happens. This can
be used to pass settings to the autoload script before it's loaded: >
:let foo#bar#toggle = 1
:call foo#bar#func()
Note that when you make a mistake and call a function that is supposed to be
defined in an autoload script, but the script doesn't actually define the
function, you will get an error message for the missing function. If you fix
the autoload script it won't be automatically loaded again. Either restart
Vim or manually source the script.
Also note that if you have two script files, and one calls a function in the
other and vice versa, before the used function is defined, it won't work.
Avoid using the autoload functionality at the toplevel.
In |Vim9| script you will get error *E1263* if you define a function with
a "#" character in the name. You should use a name without "#" and use
`:export`.
Hint: If you distribute a bunch of scripts you can pack them together with the
|vimball| utility. Also read the user manual |distribute-script|.
You can find most information about defining functions in |userfunc.txt|.
For Vim9 functions, which execute much faster, support type checking and more,
see |vim9.txt|.
==============================================================================
6. Curly braces names *curly-braces-names*
@@ -3617,6 +3188,9 @@ text...
iterate over. Unlike with |List|, modifying the
|Blob| does not affect the iteration.
When {object} is a |String| each item is a string with
one character, plus any combining characters.
In |Vim9| script `:endfor` cannot be shortened, to
improve script readability.
@@ -3830,6 +3404,19 @@ text...
:echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see."
< See |:echo-redraw| to avoid the message disappearing
when the screen is redrawn.
*:echow* *:echowin* *:echowindow*
:echow[indow] {expr1} ..
Like |:echomsg| but when the messages popup window is
available the message is displayed there. This means
it will show for three seconds and avoid a
|hit-enter| prompt. If you want to hide it before
that, press Esc in Normal mode (when it would
otherwise beep). If it disappears too soon you can
use `:messages` to see the text.
The message window is available when Vim was compiled
with the +timer and the +popupwin features.
*:echoe* *:echoerr*
:echoe[rr] {expr1} .. Echo the expression(s) as an error message, saving the
message in the |message-history|. When used in a
+152
View File
@@ -0,0 +1,152 @@
*ft_context.txt* For Vim version 9.0. Last change: 2022 Aug 12
This is the documentation for the ConTeXt filetype plugin.
NOTE: the plugin requires +vim9script.
==============================================================================
CONTENTS *context.vim* *ft-context*
1. Introduction |ft-context-intro|
2. Commands |ft-context-commands|
3. Settings |ft-context-settings|
4. Mappings |ft-context-mappings|
==============================================================================
*ft-context-intro*
Introduction ~
ConTeXt, similarly to LaTeX, is a macro-based typesetting system built on TeX:
>
https://wiki.contextgarden.net
https://wiki.contextgarden.net/Vim
<
The ConTeXt plugin provides syntax highlighting, completion and support for
typesetting ConTeXt documents. The recommended way to typeset a document is to
use |:ConTeXt|. This will invoke the `mtxrun` script that is found in $PATH.
For more fine grained control over the command and its environment, you may
invoke `context.Typeset()` directly (or `context#Typeset()` from legacy Vim
script). For instance, if you have installed a version of ConTeXt in
`~/context`, you may define a function to use it (you may put the following
code in `~/.vim/after/ftplugin/context.vim`) similar to the following:
>
import autoload 'context.vim'
def MyConTeXt()
const env = {'PATH':
printf("%s/context/tex/texmf-<os>-<arch>/bin:%s", $HOME, $PATH)}
context.Typeset("%", env)
enddef
<
and perhaps use it with a mapping:
>
nnoremap <silent><buffer><leader>t <scriptcmd>MyConTeXt()<cr>
<
`context.Typeset()` accepts a third optional argument to specify a custom
typesetting command. Such argument must be a function that takes a path and
returns the command as a List. For example:
>
def ConTeXtCustomCommand(path: string): list<string>
return ['mtxrun', '--script', 'context', '--nonstopmode, path]
enddef
context.ConTeXtTypeset("%", v:none, ConTeXtCustomCommand)
<
Large projects are often organized as a root document and various chapter
files. When editing a chapter file, it is convenient to invoke |:ConTeXt|
directly on it, rather than having to switch to the root file. A "magic line"
can be added at the beginning of each chapter file, which specifies the
relative path to the root file. For instance:
>
% !TEX root = ../MyRoot.tex
<
Vim searches for the magic line in the first ten lines of the current buffer:
if it is found, the document specified by that line is typeset rather than the
one in the current buffer. The root document does not have to be opened in
Vim.
To extend completion and syntax highlighting, you may generate supporting
files using ConTeXt and add them to your configuration. If you configuration
resides in `~/.vim`, you may use these commands:
>
mkdir -p ~/.vim/syntax/shared
cd ~/.vim/syntax/shared
mtxrun --script interface --vim
<
The last command will create the following syntax files:
- `context-data-context.vim`;
- `context-data-interfaces.vim`;
- `context-data-metafun.vim`;
- `context-data-tex.vim`.
The same command can be used to update those syntax files.
*ft-context-commands*
Commands ~
*:ConTeXt*
Start a background |job| to typeset the document in the current buffer. The
command accepts an optional buffer's name, if you want to typeset a document
that is in a different buffer.
*:ConTeXtLog*
Edit the log file corresponding to the source in the current buffer.
*:ConTeXtJobsStatus*
Echo the number of jobs currently running in the background.
*:ConTeXtStopJobs*
Stop all the ConTeXt jobs currently running in the background.
*ft-context-settings*
Settings ~
*'b:context_ignore_makefile'*
*'g:context_ignore_makefile'*
`make` can be used to (synchronously) typeset a document. If a Makefile exists
and this option is not set, standard `make` is used. If this option is set,
`mtxrun` is invoked instead, even if a Makefile exists.
>
g:context_ignore_makefile = 0
<
NOTE: before using `make`, set the working directory of the buffer to the
directory of the file to be typeset.
*'b:context_include'*
*'g:context_include'*
Dictionary of filetype/GROUP pairs for which syntax highlighting should be
activated between \startGROUP and \stopGROUP. The default is to highlight XML
between `\startXML` and `\stopXML`.
>
g:context_include = {'xml': 'XML'}
NOTE: Lua and MetaPost are always highlighted within the respective blocks.
*'g:no_context_maps'*
When set, do not define any mappings.
>
g:no_context_maps = 0
<
*ft-context-mappings*
Mappings ~
tp "reflow TeX paragraph".
i$ "inside inline math block".
a$ "around inline math block".
]] [count] start of sections forward.
[[ [count] start of sections backward.
][ [count] end sections forward.
[] [count] end of sections backward.
]} [count] end of blocks (\stop..., \setup...,
\define...) forward.
[{ [count] begin of blocks (\start..., \setup...,
\define...) backward.
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+151
View File
@@ -0,0 +1,151 @@
*ft_mp.txt* For Vim version 9.0. Last change: 2022 Aug 12
This is the documentation for the METAFONT and MetaPost filetype plugins.
Unless otherwise specified, the commands, settings and mappings defined below
apply equally to both filetypes.
NOTE: the plugin requires +vim9script.
==============================================================================
CONTENTS *mp.vim* *ft-metapost*
*mf.vim* *ft-metafont*
1. Introduction |ft-metapost-intro|
2. Commands |ft-metapost-commands|
3. Settings |ft-metapost-settings|
4. Mappings |ft-metapost-mappings|
==============================================================================
*ft-metapost-intro*
*ft-metafont-intro*
Introduction ~
This filetype plugin provides extensive support for editing METAFONT and
MetaPost documents, including syntax coloring, indentation, and completion.
Defining indentation rules for METAFONT and MetaPost code is tricky and
somewhat subjective, because the syntax is quite liberal. The plugin uses some
heuristics that work well most of the time, but in particular cases you may
want to to override the automatic rules, so that the manually defined
indentation is preserved by commands like `gg=G`.
This can be achieved by appending `%>`, `%<`, `%=` or `%!` to a line to
explicitly control the indentation of the next line. The `<` and `>` symbols
may be repeated many times: for instance, `%>>` will cause the next line to be
indented twice. Of course, `%<` means that the next line should be
de-indented; `%=` sets the indentation of the next line to be equal to the
indentation of the current line; and `%!` means that the indentation of the
next line should not change from whatever it has been manually set.
For example, this is the default indentation of a simple macro:
>
def foo =
makepen(
subpath(T-n,t) of r
shifted .5down
--subpath(t,T) of r shifted .5up -- cycle
)
withcolor black
enddef
<
By adding the special comments, the indentation can be adjusted arbitrarily:
>
def foo =
makepen(
subpath(T-n,t) of r %>
shifted .5down %>
--subpath(t,T) of r shifted .5up -- cycle %<<<
)
withcolor black
enddef
<
*ft-metapost-commands*
Commands ~
*:FixBeginfigs*
Renumber beginfig() blocks in the current buffer so that the n-th figure has
number n. MetaPost only.
*ft-metapost-settings*
*ft-metafont-settings*
Settings ~
*'g:mf_other_macros'*
Highlight some other basic macro names, e.g., from cmbase, logo, etc. This is
set to 1 by default in METAFONT buffers, and it is set to 0 by default in
MetaPost buffers.
*'g:mf_plain_macros'*
Highlight keywords defined by plain.mf. This is set to 1 by default in
METAFONT buffers, and it is set to 0 by default in MetaPost buffers.
*'g:mf_plain_modes'*
Highlight keywords defined by modes.mf. This is set to 1 by default in
METAFONT buffers, and it is set to 0 by default in MetaPost buffers.
*'g:mp_close_tag'*
Define additional keywords that end indented blocks. For instance, if you
define:
>
g:mp_end_tag = ['\<endfoo\>']
<
any line starting with `endfoo` will be de-indented compared to its previous
line.
>
g:mp_close_tag = []
<
*'b:mp_metafun'*
*'g:mp_metafun'*
If set to 1, highlight ConTeXt's MetaFun keywords. MetaPost only.
>
g:mp_metafun = 0
<
*'g:mp_mfplain_macros'*
Highlight keywords defined by mfplain.mp. MetaPost only.
>
g:mp_mfplain_macros = 1
<
*'g:mp_open_tag'*
Define additional keywords that start indented blocks. For instance, if you
define:
>
g:mp_open_tag = ['\<beginfoo\>']
<
the line following `beginfoo` will be indented.
>
g:mp_open_tag = []
<
*'g:mp_other_macros'*
Highlight keywords defined by all base macro packages (boxes, rboxes, format,
graph, marith, sarith, string, TEX). This option affects only MetaPost
buffers.
>
g:mp_other_macros = 1
<
*'g:mp_plain_macros'*
Highlight keywords defined by plain.mp. MetaPost only.
>
g:mp_plain_macros = 1
<
*'g:no_mp_maps'*
*'g:no_mf_maps'*
When set, do not define any mapping in buffers with the corresponding
filetype.
>
g:no_mp_maps = 0
g:no_mf_maps = 0
<
*ft-metapost-mappings*
*ft-metafont-mappings*
Mappings ~
]] [count] vardefs, macros or figures forward.
[[ [count] vardefs, macros or figures backward.
][ [count] end of vardefs, macros or figures forward.
[] [count] end of vardefs, macros or figures backward.
]} [count] end of blocks (fi, endfor, endgroup) forward.
[{ [count] begin of blocks (if, for, begingroup) backward.
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
+4 -4
View File
@@ -506,7 +506,7 @@ documentation.
Assuming you have followed the dbext-tutorial you can press <C-C>t to
display a list of tables. There is a delay while dbext is creating the table
list. After the list is displayed press <C-W>. This will remove both the
popup window and the table name already chosen when the list became active. >
popup window and the table name already chosen when the list became active.
4.3.1 Table Completion: *sql-completion-tables*
@@ -514,7 +514,7 @@ Press <C-C>t to display a list of tables from within the database you
have connected via the dbext plugin.
NOTE: All of the SQL completion popups support typing a prefix before pressing
the key map. This will limit the contents of the popup window to just items
beginning with those characters. >
beginning with those characters.
4.3.2 Column Completion: *sql-completion-columns*
@@ -587,13 +587,13 @@ popup a list of columns for the customer table. It does this by looking back
to the beginning of the select statement and finding a list of the tables
specified in the FROM clause. In this case it notes that in the string
"customer c", "c" is an alias for the customer table. The optional "AS"
keyword is also supported, "customer AS c". >
keyword is also supported, "customer AS c".
4.3.3 Procedure Completion: *sql-completion-procedures*
Similar to the table list, <C-C>p, will display a list of stored
procedures stored within the database. >
procedures stored within the database.
4.3.4 View Completion: *sql-completion-views*
+11 -3
View File
@@ -256,20 +256,25 @@ Here is a list of relevant dictionary entries:
KEY VALUE ~
*MMCellWidthMultiplier* width of a normal glyph in em units [float]
*MMCmdLineAlignBottom* Pin command-line to bottom of MacVim [bool]
*MMDialogsTrackPwd* open/save dialogs track the Vim pwd [bool]
*MMDisableLaunchAnimation* disable launch animation when opening a new
MacVim window [bool]
*MMFullScreenFadeTime* fade delay for non-native fullscreen [float]
*MMFontPreserveLineSpacing* use the line-spacing as specified by font [bool]
*MMLoginShellArgument* login shell parameter [string]
*MMLoginShellCommand* which shell to use to launch Vim [string]
*MMFullScreenFadeTime* fade delay for non-native fullscreen [float]
*MMNativeFullScreen* use native full screen mode [bool]
*MMNonNativeFullScreenShowMenu* show menus when in non-native full screen [bool]
*MMNonNativeFullScreenSafeAreaBehavior*
behavior for non-native full sreen regarding
the safe area (aka the "notch") [int]
*MMNoFontSubstitution* disable automatic font substitution [bool]
(Deprecated: Non-CoreText renderer only)
*MMFontPreserveLineSpacing* use the line-spacing as specified by font [bool]
*MMNoTitleBarWindow* hide title bar [bool]
*MMTitlebarAppearsTransparent* enable a transparent titlebar [bool]
*MMAppearanceModeSelection* dark mode selection (|macvim-dark-mode|)[bool]
*MMSmoothResize* allow smooth resizing of MacVim window [bool]
*MMShareFindPboard* share search text to Find Pasteboard [bool]
*MMShowAddTabButton* enable "add tab" button on tabline [bool]
*MMTabMaxWidth* maximum width of a tab [int]
@@ -330,7 +335,10 @@ There are two types of full screen modes. By default, MacVim uses macOS'
native full screen functionality, which creates a separate space in Mission
Control. MacVim also provides a non-native full screen mode, which can be set
by disabling native full screen in the preference panel, or by setting
|MMNativeFullScreen| to `NO` manually.
|MMNativeFullScreen| to `NO` manually. If you have a MacBook with a "notch"
at the top of the screen, you can set |MMNonNativeFullScreenShowMenu| to `NO`
and |MMNonNativeFullScreenSafeAreaBehavior| to 1 to utilitize the whole screen
(this will cause some of the content to be obscured by the notch).
==============================================================================
5. Special colors *macvim-colors*
+1 -1
View File
@@ -689,7 +689,7 @@ Of these three, Vim uses PRIMARY when reading and writing the "* register
register. Vim does not access the SECONDARY selection.
This applies both to the GUI and the terminal version. For non-X11 systems
the plus and the star register both us the system clipboard.
the plus and the star register both use the system clipboard.
Examples: (assuming the default option values)
- Select a URL in Visual mode in Vim. Go to your browser and click the
+2
View File
@@ -26,6 +26,7 @@ Get specific help: It is possible to go directly to whatever you want help
Option ' :help 'textwidth'
Regular expression / :help /[
See |help-summary| for more contexts and an explanation.
See |notation| for an explanation of the help syntax.
Search for help: Type ":help word", then hit CTRL-D to see matching
help entries for "word".
@@ -140,6 +141,7 @@ Advanced editing ~
|autocmd.txt| automatically executing commands on an event
|eval.txt| expression evaluation, conditional commands
|builtin.txt| builtin functions
|userfunc.txt| defining user functions
|channel.txt| Jobs, Channels, inter-process communication
|fold.txt| hide (fold) ranges of lines
+20 -7
View File
@@ -983,25 +983,38 @@ indentation: >
PYTHON *ft-python-indent*
The amount of indent can be set for the following situations. The examples
given are the defaults. Note that the variables are set to an expression, so
that you can change the value of 'shiftwidth' later.
given are the defaults. Note that the dictionary values are set to an
expression, so that you can change the value of 'shiftwidth' later.
Indent after an open paren: >
let g:pyindent_open_paren = 'shiftwidth() * 2'
let g:python_indent.open_paren = 'shiftwidth() * 2'
Indent after a nested paren: >
let g:pyindent_nested_paren = 'shiftwidth()'
let g:python_indent.nested_paren = 'shiftwidth()'
Indent for a continuation line: >
let g:pyindent_continue = 'shiftwidth() * 2'
let g:python_indent.continue = 'shiftwidth() * 2'
By default, the closing paren on a multiline construct lines up under the first
non-whitespace character of the previous line.
If you prefer that it's lined up under the first character of the line that
starts the multiline construct, reset this key: >
let g:python_indent.closed_paren_align_last_line = v:false
The method uses |searchpair()| to look back for unclosed parentheses. This
can sometimes be slow, thus it timeouts after 150 msec. If you notice the
indenting isn't correct, you can set a larger timeout in msec: >
let g:pyindent_searchpair_timeout = 500
let g:python_indent.searchpair_timeout = 500
If looking back for unclosed parenthesis is still too slow, especially during
a copy-paste operation, or if you don't need indenting inside multi-line
parentheses, you can completely disable this feature: >
let g:pyindent_disable_parentheses_indenting = 1
let g:python_indent.disable_parentheses_indenting = 1
For backward compatibility, these variables are also supported: >
g:pyindent_open_paren
g:pyindent_nested_paren
g:pyindent_continue
g:pyindent_searchpair_timeout
g:pyindent_disable_parentheses_indenting
R *ft-r-indent*
+9 -9
View File
@@ -388,10 +388,10 @@ CTRL-G CTRL-J cursor one line down, insert start column *i_CTRL-G_CTRL-J*
CTRL-O execute one command, return to Insert mode *i_CTRL-O*
CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
movement, if the cursor stays within the
same line
CTRL-G u close undo sequence, start new change *i_CTRL-G_u*
CTRL-G U don't start a new undo block with the next *i_CTRL-G_U*
left/right cursor movement, if the cursor
stays within the same line
-----------------------------------------------------------------------
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
@@ -428,8 +428,8 @@ that, with CTRL-O u. Another example: >
:inoremap <CR> <C-]><C-G>u<CR>
This breaks undo at each line break. It also expands abbreviations before
this.
This starts a new undo block at each line break. It also expands
abbreviations before this.
An example for using CTRL-G U: >
@@ -443,9 +443,9 @@ An example for using CTRL-G U: >
inoremap <expr> <End> repeat('<C-G>U<Right>', col('$') - col('.'))
inoremap ( ()<C-G>U<Left>
This makes it possible to use the cursor keys in Insert mode, without breaking
the undo sequence and therefore using |.| (redo) will work as expected.
Also entering a text like (with the "(" mapping from above):
This makes it possible to use the cursor keys in Insert mode, without starting
a new undo block and therefore using |.| (redo) will work as expected. Also
entering a text like (with the "(" mapping from above):
Lorem ipsum (dolor
+18 -15
View File
@@ -682,19 +682,22 @@ two bytes 0xc3 0xa1. You don't want the 0xc3 byte to be mapped then or
otherwise it would be impossible to type the á character.
*<Leader>* *mapleader*
To define a mapping which uses the "mapleader" variable, the special string
"<Leader>" can be used. It is replaced with the string value of "mapleader".
If "mapleader" is not set or empty, a backslash is used instead. Example: >
:map <Leader>A oanother line<Esc>
To define a mapping which uses the "g:mapleader" variable, the special string
"<Leader>" can be used. It is replaced with the string value of
"g:mapleader". If "g:mapleader" is not set or empty, a backslash is used
instead. Example: >
map <Leader>A oanother line<Esc>
Works like: >
:map \A oanother line<Esc>
But after: >
:let mapleader = ","
map \A oanother line<Esc>
But after (legacy script): >
let mapleader = ","
Or (Vim9 script): >
g:mapleader = ","
It works like: >
:map ,A oanother line<Esc>
map ,A oanother line<Esc>
Note that the value of "mapleader" is used at the moment the mapping is
defined. Changing "mapleader" after that has no effect for already defined
Note that the value of "g:mapleader" is used at the moment the mapping is
defined. Changing "g:mapleader" after that has no effect for already defined
mappings.
*<LocalLeader>* *maplocalleader*
@@ -1721,11 +1724,11 @@ The valid escape sequences are
*<mods>* *<q-mods>* *:command-modifiers*
<mods> The command modifiers, if specified. Otherwise, expands to
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
|:keepjumps|, |:keepmarks|, |:keeppatterns|, |:leftabove|,
|:lockmarks|, |:noautocmd|, |:noswapfile| |:rightbelow|,
|:sandbox|, |:silent|, |:tab|, |:topleft|, |:unsilent|,
|:verbose|, and |:vertical|.
|:botright|, |:browse|, |:confirm|, |:hide|, |:horizontal|,
|:keepalt|, |:keepjumps|, |:keepmarks|, |:keeppatterns|,
|:leftabove|, |:lockmarks|, |:noautocmd|, |:noswapfile|
|:rightbelow|, |:sandbox|, |:silent|, |:tab|, |:topleft|,
|:unsilent|, |:verbose|, and |:vertical|.
Note that |:filter| is not supported.
Examples: >
command! -nargs=+ -complete=file MyEdit
+3 -3
View File
@@ -532,8 +532,6 @@ including white space, the commands starting with "i" select an "inner" object
without white space, or just the white space. Thus the "inner" commands
always select less text than the "a" commands.
These commands are not available when the |+textobjects| feature has been
disabled at compile time.
Also see `gn` and `gN`, operating on the last search pattern.
*v_aw* *aw*
@@ -612,7 +610,8 @@ i) *v_i)* *i)* *i(*
i( *vib* *v_ib* *v_i(* *ib*
ib "inner block", select [count] blocks, from "[count] [("
to the matching ')', excluding the '(' and ')' (see
|[(|).
|[(|). If the cursor is not inside a () block, then
find the next "(".
When used in Visual mode it is made characterwise.
a> *v_a>* *v_a<* *a>* *a<*
@@ -633,6 +632,7 @@ at "a tag block", select [count] tag blocks, from the
"</aaa>", including the "<aaa>" and "</aaa>".
See |tag-blocks| about the details.
When used in Visual mode it is made characterwise.
Only available when compiled with the |+eval| feature.
*v_it* *it*
it "inner tag block", select [count] tag blocks, from the
+56 -31
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.0. Last change: 2022 Jun 27
*options.txt* For Vim version 9.0. Last change: 2022 Sep 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -796,7 +796,8 @@ A jump table for the options with a short description can be found at |Q_op|.
When on, Vim will change the current working directory whenever you
open a file, switch buffers, delete a buffer or open/close a window.
It will change to the directory containing the file which was opened
or selected.
or selected. When a buffer has no name it also has no directory, thus
the current directory won't change when navigating to it.
Note: When this option is on some plugins may not work.
*'autoshelldir'* *'asd'* *'noautoshelldir'* *'noasd'*
@@ -805,8 +806,33 @@ A jump table for the options with a short description can be found at |Q_op|.
When on, Vim will change the current working directory whenever you
change the directory of the shell running in a terminal window. You
need proper setting-up, so whenever the shell's pwd changes an OSC 7
escape sequence will be emitted. For example, on Linux, you can source
/etc/profile.d/vte.sh in your shell profile if you use bash or zsh.
escape sequence will be emitted. For example, on Linux, you can
source /etc/profile.d/vte.sh in your shell profile if you use bash or
zsh. For bash this should work (put it in a bash init file): >
if [[ -n "$VIM_TERMINAL" ]]; then
PROMPT_COMMAND='_vim_sync_PWD'
function _vim_sync_PWD() {
printf '\033]7;file://%s\033\\' "$PWD"
}
fi
<
Or, in a zsh init file: >
if [[ -n "$VIM_TERMINAL" ]]; then
autoload -Uz add-zsh-hook
add-zsh-hook -Uz chpwd _vim_sync_PWD
function _vim_sync_PWD() {
printf '\033]7;file://%s\033\\' "$PWD"
}
fi
<
In a fish init file: >
if test -n "$VIM_TERMINAL"
function _vim_sync_PWD --on-variable=PWD
printf '\033]7;file://%s\033\\' "$PWD"
end
end
<
You can find an alternative method at |terminal-autoshelldir|.
When the parsing of the OSC sequence fails you get *E1179* .
*'arabic'* *'arab'* *'noarabic'* *'noarab'*
@@ -1148,8 +1174,6 @@ A jump table for the options with a short description can be found at |Q_op|.
Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*"
Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
global
{not available when compiled without the |+wildignore|
feature}
A list of file patterns. When one of the patterns matches with the
name of the file which is written, no backup file is created. Both
the specified file name and the full path name of the file are used.
@@ -1538,8 +1562,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cdpath'* *'cd'* *E344* *E346*
'cdpath' 'cd' string (default: equivalent to $CDPATH or ",,")
global
{not available when compiled without the
|+file_in_path| feature}
This is a list of directories which will be searched when using the
|:cd|, |:tcd| and |:lcd| commands, provided that the directory being
searched for has a relative path, not an absolute part starting with
@@ -1765,9 +1787,9 @@ A jump table for the options with a short description can be found at |Q_op|.
*'cmdheight'* *'ch'*
'cmdheight' 'ch' number (default 1)
global
Number of screen lines to use for the command-line. Helps avoiding
|hit-enter| prompts.
global or local to tab page
Number of screen lines to use for the command-line. A larger value
helps avoiding |hit-enter| prompts.
The value of this option is stored with the tab page, so that each tab
page can have a different value.
@@ -4938,7 +4960,7 @@ A jump table for the options with a short description can be found at |Q_op|.
help. (Note that previously setting the global option to the empty
value did this, which is now deprecated.)
When the first character is ":", the command is invoked as a Vim
Ex command prefixed with [count].
Ex command with [count] added as an argument if it is not zero.
When "man", "man -s" or an Ex command is used, Vim will automatically
translate a count for the "K" command and pass it as the first
argument. For "man -s" the "-s" is removed when there is no count.
@@ -5119,8 +5141,8 @@ A jump table for the options with a short description can be found at |Q_op|.
*'lispwords'* *'lw'*
'lispwords' 'lw' string (default is very long)
global or local to buffer |global-local|
Comma-separated list of words that influence the Lisp indenting.
|'lisp'|
Comma-separated list of words that influence the Lisp indenting when
enabled with the |'lisp'| option.
*'list'* *'nolist'*
'list' boolean (default off)
@@ -6052,7 +6074,6 @@ A jump table for the options with a short description can be found at |Q_op|.
"http://www.vim.org" will make ":find index.html" work.
- Search upwards and downwards in a directory tree using "*", "**" and
";". See |file-searching| for info and syntax.
{not available when compiled without the |+path_extra| feature}
- Careful with '\' characters, type two to get one in the option: >
:set path=.,c:\\include
< Or just use '/' instead: >
@@ -6580,7 +6601,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Each window has its own ruler. If a window has a status line, the
ruler is shown there. Otherwise it is shown in the last line of the
screen. If the statusline is given by 'statusline' (i.e. not empty),
this option takes precedence over 'ruler' and 'rulerformat'
this option takes precedence over 'ruler' and 'rulerformat'.
If the number of characters displayed is different from the number of
bytes in the text (e.g., for a TAB or a multibyte character), both
the text column (byte number) and the screen column are shown,
@@ -7452,6 +7473,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Name of the word list file where words are added for the |zg| and |zw|
commands. It must end in ".{encoding}.add". You need to include the
path, otherwise the file is placed in the current directory.
The path may include characters from 'isfname', space, comma and '@'.
*E765*
It may also be a comma-separated list of names. A count before the
|zg| and |zw| commands can be used to access each. This allows using
@@ -7609,6 +7631,18 @@ A jump table for the options with a short description can be found at |Q_op|.
When on, splitting a window will put the new window right of the
current one. |:vsplit|
*'splitscroll'* *'spsc'* *'nosplitscroll'* *'nospsc'*
'splitscroll' 'spsc' boolean (default on)
global
The value of this option determines the scroll behavior when opening,
closing or resizing horizontal splits. When "on", splitting a window
horizontally will keep the same relative cursor position in the old and
new window, as well windows that are resized. When "off", scrolling
will be avoided to stabilize the window content. Instead, the cursor
position will be changed when necessary. In this case, the jumplist
will be populated with the previous cursor position. Scrolling cannot
be guaranteed to be avoided when 'wrap' is enabled.
*'startofline'* *'sol'* *'nostartofline'* *'nosol'*
'startofline' 'sol' boolean (default on)
global
@@ -7822,8 +7856,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'suffixesadd'* *'sua'*
'suffixesadd' 'sua' string (default "")
local to buffer
{not available when compiled without the
|+file_in_path| feature}
Comma-separated list of suffixes, which are used when searching for a
file for the "gf", "[I", etc. commands. Example: >
:set suffixesadd=.java
@@ -8101,8 +8133,7 @@ A jump table for the options with a short description can be found at |Q_op|.
a directory tree. See |file-searching|. E.g., "/lib/**/tags" will
find all files named "tags" below "/lib". The filename itself cannot
contain wildcards, it is used as-is. E.g., "/lib/**/tags?" will find
files called "tags?". {not available when compiled without the
|+path_extra| feature}
files called "tags?".
The |tagfiles()| function can be used to get a list of the file names
actually used.
If Vim was compiled with the |+emacs_tags| feature, Emacs-style tag
@@ -9139,8 +9170,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'wildignore'* *'wig'*
'wildignore' 'wig' string (default "")
global
{not available when compiled without the |+wildignore|
feature}
A list of file patterns. A file that matches with one of these
patterns is ignored when expanding |wildcards|, completing file or
directory names, and influences the result of |expand()|, |glob()| and
@@ -9166,13 +9195,13 @@ A jump table for the options with a short description can be found at |Q_op|.
*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
'wildmenu' 'wmnu' boolean (default off, set in |defaults.vim|)
global
{not available if compiled without the |+wildmenu|
feature}
When 'wildmenu' is on, command-line completion operates in an enhanced
mode. On pressing 'wildchar' (usually <Tab>) to invoke completion,
the possible matches are shown just above the command line, with the
first match highlighted (overwriting the status line, if there is
one). This is the behavior without "pum" in 'wildoptions'.
the possible matches are shown.
When 'wildoptions' contains "pum", then the completion matches are
shown in a popup menu. Otherwise they are displayed just above the
command line, with the first match highlighted (overwriting the status
line, if there is one).
Keys that show the previous/next match, such as <Tab> or
CTRL-P/CTRL-N, cause the highlight to move to the appropriate match.
When 'wildmode' is used, "wildmenu" mode is used where "full" is
@@ -9181,8 +9210,6 @@ A jump table for the options with a short description can be found at |Q_op|.
If there are more matches than can fit in the line, a ">" is shown on
the right and/or a "<" is shown on the left. The status line scrolls
as needed.
When 'wildoptions' contains "pum", then the completion matches are
shown in a popup menu.
The "wildmenu" mode is abandoned when a key is hit that is not used
for selecting a completion.
While the "wildmenu" is active, not using the popup menu, the
@@ -9271,8 +9298,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'wildoptions'* *'wop'*
'wildoptions' 'wop' string (default "")
global
{not available when compiled without the |+wildignore|
feature}
A list of words that change how |cmdline-completion| is done.
The following values are supported:
fuzzy Use |fuzzy-matching| to find completion matches. When
+1 -1
View File
@@ -928,7 +928,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
becomes invalid. Vim doesn't automatically update the matches.
Similar to moving the cursor for "\%#" |/\%#|.
*/\%l* */\%>l* */\%<l* *E951* *E1204*
*/\%l* */\%>l* */\%<l* *E951* *E1204* *E1273*
\%23l Matches in a specific line.
\%<23l Matches above a specific line (lower line number).
\%>23l Matches below a specific line (higher line number).
+1 -1
View File
@@ -3918,7 +3918,7 @@ netrw:
* Installed |g:netrw_clipboard| setting
* Installed option bypass for |'guioptions'|
a/A settings
* Changed popup_beval() to |popup_atcursor|()
* Changed popup_beval() to |popup_atcursor()|
in netrw#ErrorMsg (lacygoill). Apparently
popup_beval doesn't reliably close the
popup when the mouse is moved.
+1 -1
View File
@@ -591,7 +591,7 @@ POPUP_CREATE() ARGUMENTS *popup_create-arguments*
The first argument of |popup_create()| (and the second argument to
|popup_settext()|) specifies the text to be displayed, and optionally text
properties. It is in one of four forms:
properties. It is in one of four forms: *E1284*
- a buffer number
- a string
- a list of strings
+1
View File
@@ -926,6 +926,7 @@ Short explanation of each option: *option-list*
'spellsuggest' 'sps' method(s) used to suggest spelling corrections
'splitbelow' 'sb' new window from split is below the current one
'splitright' 'spr' new window is put right of the current one
'splitscroll' 'spsc' determines scroll behavior when splitting windows
'startofline' 'sol' commands move cursor to first non-blank in line
'statusline' 'stl' custom format for the status line
'suffixes' 'su' suffixes that are ignored with multiple match
+5 -1
View File
@@ -231,7 +231,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
Examples: >
:4,5source
:10,18source ++clear
<
*:source!*
:so[urce]! {file} Read Vim commands from {file}. These are commands
that are executed from Normal mode, like you type
@@ -417,6 +417,10 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
For a script that was used with `import autoload` but
was not actually sourced yet an "A" is shown after the
script ID.
For a script that was referred to by one name but
after resolving symbolic links got sourced with
another name the other script is after "->". E.g.
"20->22" means script 20 was sourced as script 22.
{not available when compiled without the |+eval|
feature}
+1 -1
View File
@@ -103,7 +103,7 @@ zuW *zuG* *zuW*
zuG Undo |zW| and |zG|, remove the word from the internal
word list. Count used as with |zg|.
*:spe* *:spellgood*
*:spe* *:spellgood* *E1280*
:[count]spe[llgood] {word}
Add {word} as a good word to 'spellfile', like with
|zg|. Without count the first name is used, with a
+8 -1
View File
@@ -4905,6 +4905,7 @@ Before the color scheme will be loaded all default color list scripts
autocommand event is triggered. After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
*colorscheme-override*
If a color scheme is almost right, you can add modifications on top of it by
using the |ColorScheme| autocommand. For example, to remove the background
color (can make it transparent in some terminals): >
@@ -5367,7 +5368,9 @@ CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line.
*hl-MatchParen*
MatchParen Character under the cursor or just before it, if it
is a paired bracket, and its match. |pi_paren.txt|
*hl-MessageWindow*
MessageWindow Messages popup window used when 'cmdheight' is zero. If not
defined |hl-WarningMsg| is used.
*hl-ModeMsg*
ModeMsg 'showmode' message (e.g., "-- INSERT --").
*hl-MoreMsg*
@@ -5387,6 +5390,10 @@ PmenuSel Popup menu: Selected item.
PmenuSbar Popup menu: Scrollbar.
*hl-PmenuThumb*
PmenuThumb Popup menu: Thumb of the scrollbar.
*hl-PopupNotification*
PopupNotification
Popup window created with |popup_notification()|. If not
defined |hl-WarningMsg| is used.
*hl-Question*
Question |hit-enter| prompt and yes/no questions.
*hl-QuickFixLine*
-2
View File
@@ -81,8 +81,6 @@ For the related autocommands see |tabnew-autocmd|.
:[count]tabf[ind] [++opt] [+cmd] {file} *:tabf* *:tabfind*
Open a new tab page and edit {file} in 'path', like with
|:find|. For [count] see |:tabnew| above.
{not available when the |+file_in_path| feature was disabled
at compile time}
:[count]tab {cmd} *:tab*
Execute {cmd} and when it opens a new window open a new tab
+153 -67
View File
@@ -69,6 +69,9 @@ $quote eval.txt /*$quote*
'autowriteall' options.txt /*'autowriteall'*
'aw' options.txt /*'aw'*
'awa' options.txt /*'awa'*
'b:context_ignore_makefile' ft_context.txt /*'b:context_ignore_makefile'*
'b:context_include' ft_context.txt /*'b:context_include'*
'b:mp_metafun' ft_mp.txt /*'b:mp_metafun'*
'background' options.txt /*'background'*
'backspace' options.txt /*'backspace'*
'backup' options.txt /*'backup'*
@@ -307,6 +310,20 @@ $quote eval.txt /*$quote*
'fullscreen' options.txt /*'fullscreen'*
'fuopt' options.txt /*'fuopt'*
'fuoptions' options.txt /*'fuoptions'*
'g:context_ignore_makefile' ft_context.txt /*'g:context_ignore_makefile'*
'g:context_include' ft_context.txt /*'g:context_include'*
'g:mf_other_macros' ft_mp.txt /*'g:mf_other_macros'*
'g:mf_plain_macros' ft_mp.txt /*'g:mf_plain_macros'*
'g:mf_plain_modes' ft_mp.txt /*'g:mf_plain_modes'*
'g:mp_close_tag' ft_mp.txt /*'g:mp_close_tag'*
'g:mp_metafun' ft_mp.txt /*'g:mp_metafun'*
'g:mp_mfplain_macros' ft_mp.txt /*'g:mp_mfplain_macros'*
'g:mp_open_tag' ft_mp.txt /*'g:mp_open_tag'*
'g:mp_other_macros' ft_mp.txt /*'g:mp_other_macros'*
'g:mp_plain_macros' ft_mp.txt /*'g:mp_plain_macros'*
'g:no_context_maps' ft_context.txt /*'g:no_context_maps'*
'g:no_mf_maps' ft_mp.txt /*'g:no_mf_maps'*
'g:no_mp_maps' ft_mp.txt /*'g:no_mp_maps'*
'gcr' options.txt /*'gcr'*
'gd' options.txt /*'gd'*
'gdefault' options.txt /*'gdefault'*
@@ -1321,7 +1338,6 @@ $quote eval.txt /*$quote*
+balloon_eval various.txt /*+balloon_eval*
+balloon_eval_term various.txt /*+balloon_eval_term*
+browse various.txt /*+browse*
+builtin_terms various.txt /*+builtin_terms*
+byte_offset various.txt /*+byte_offset*
+channel various.txt /*+channel*
+cindent various.txt /*+cindent*
@@ -1589,7 +1605,7 @@ $quote eval.txt /*$quote*
-xrm gui_x11.txt /*-xrm*
-y starting.txt /*-y*
. repeat.txt /*.*
... eval.txt /*...*
... userfunc.txt /*...*
.Xdefaults gui_x11.txt /*.Xdefaults*
.aff spell.txt /*.aff*
.dic spell.txt /*.dic*
@@ -2059,12 +2075,17 @@ $quote eval.txt /*$quote*
:Cfilter quickfix.txt /*:Cfilter*
:Clear terminal.txt /*:Clear*
:CompilerSet usr_51.txt /*:CompilerSet*
:ConTeXt ft_context.txt /*:ConTeXt*
:ConTeXtJobsStatus ft_context.txt /*:ConTeXtJobsStatus*
:ConTeXtLog ft_context.txt /*:ConTeXtLog*
:ConTeXtStopJobs ft_context.txt /*:ConTeXtStopJobs*
:Continue terminal.txt /*:Continue*
:DiffOrig diff.txt /*:DiffOrig*
:DoMatchParen pi_paren.txt /*:DoMatchParen*
:Evaluate terminal.txt /*:Evaluate*
:Explore pi_netrw.txt /*:Explore*
:Finish terminal.txt /*:Finish*
:FixBeginfigs ft_mp.txt /*:FixBeginfigs*
:GLVS pi_getscript.txt /*:GLVS*
:Gdb terminal.txt /*:Gdb*
:GetLatestVimScripts_dat pi_getscript.txt /*:GetLatestVimScripts_dat*
@@ -2126,7 +2147,6 @@ $quote eval.txt /*$quote*
:XMLent insert.txt /*:XMLent*
:XMLns insert.txt /*:XMLns*
:[range] motion.txt /*:[range]*
:[vV\x16] autocmd.txt /*:[vV\\x16]*
:\bar cmdline.txt /*:\\bar*
:_! cmdline.txt /*:_!*
:_# cmdline.txt /*:_#*
@@ -2263,8 +2283,8 @@ $quote eval.txt /*$quote*
:caddfile quickfix.txt /*:caddfile*
:caf quickfix.txt /*:caf*
:cafter quickfix.txt /*:cafter*
:cal eval.txt /*:cal*
:call eval.txt /*:call*
:cal userfunc.txt /*:cal*
:call userfunc.txt /*:call*
:cat eval.txt /*:cat*
:catch eval.txt /*:catch*
:cb quickfix.txt /*:cb*
@@ -2408,13 +2428,14 @@ $quote eval.txt /*$quote*
:def vim9.txt /*:def*
:defc vim9.txt /*:defc*
:defcompile vim9.txt /*:defcompile*
:defer userfunc.txt /*:defer*
:del change.txt /*:del*
:delc map.txt /*:delc*
:delcommand map.txt /*:delcommand*
:delcr todo.txt /*:delcr*
:delete change.txt /*:delete*
:delf eval.txt /*:delf*
:delfunction eval.txt /*:delfunction*
:delf userfunc.txt /*:delf*
:delfunction userfunc.txt /*:delfunction*
:delm motion.txt /*:delm*
:delmarks motion.txt /*:delmarks*
:di change.txt /*:di*
@@ -2472,6 +2493,9 @@ $quote eval.txt /*$quote*
:echom eval.txt /*:echom*
:echomsg eval.txt /*:echomsg*
:echon eval.txt /*:echon*
:echow eval.txt /*:echow*
:echowin eval.txt /*:echowin*
:echowindow eval.txt /*:echowindow*
:edit editing.txt /*:edit*
:edit! editing.txt /*:edit!*
:edit!_f editing.txt /*:edit!_f*
@@ -2488,10 +2512,10 @@ $quote eval.txt /*$quote*
:endclass vim9.txt /*:endclass*
:enddef vim9.txt /*:enddef*
:endenum vim9.txt /*:endenum*
:endf eval.txt /*:endf*
:endf userfunc.txt /*:endf*
:endfo eval.txt /*:endfo*
:endfor eval.txt /*:endfor*
:endfunction eval.txt /*:endfunction*
:endfunction userfunc.txt /*:endfunction*
:endif eval.txt /*:endif*
:endinterface vim9.txt /*:endinterface*
:endt eval.txt /*:endt*
@@ -2553,13 +2577,13 @@ $quote eval.txt /*$quote*
:foldo fold.txt /*:foldo*
:foldopen fold.txt /*:foldopen*
:for eval.txt /*:for*
:fu eval.txt /*:fu*
:func-abort eval.txt /*:func-abort*
:func-closure eval.txt /*:func-closure*
:func-dict eval.txt /*:func-dict*
:func-range eval.txt /*:func-range*
:function eval.txt /*:function*
:function-verbose eval.txt /*:function-verbose*
:fu userfunc.txt /*:fu*
:func-abort userfunc.txt /*:func-abort*
:func-closure userfunc.txt /*:func-closure*
:func-dict userfunc.txt /*:func-dict*
:func-range userfunc.txt /*:func-range*
:function userfunc.txt /*:function*
:function-verbose userfunc.txt /*:function-verbose*
:g repeat.txt /*:g*
:global repeat.txt /*:global*
:go motion.txt /*:go*
@@ -2599,6 +2623,8 @@ $quote eval.txt /*$quote*
:his cmdline.txt /*:his*
:history cmdline.txt /*:history*
:history-indexing cmdline.txt /*:history-indexing*
:hor windows.txt /*:hor*
:horizontal windows.txt /*:horizontal*
:i insert.txt /*:i*
:ia map.txt /*:ia*
:iabbrev map.txt /*:iabbrev*
@@ -3053,8 +3079,8 @@ $quote eval.txt /*$quote*
:ret change.txt /*:ret*
:retab change.txt /*:retab*
:retab! change.txt /*:retab!*
:retu eval.txt /*:retu*
:return eval.txt /*:return*
:retu userfunc.txt /*:retu*
:return userfunc.txt /*:return*
:rew editing.txt /*:rew*
:rewind editing.txt /*:rewind*
:ri change.txt /*:ri*
@@ -4109,7 +4135,7 @@ E1066 vim9.txt /*E1066*
E1067 eval.txt /*E1067*
E1068 vim9.txt /*E1068*
E1069 vim9.txt /*E1069*
E107 eval.txt /*E107*
E107 userfunc.txt /*E107*
E1071 vim9.txt /*E1071*
E1072 eval.txt /*E1072*
E1073 vim9.txt /*E1073*
@@ -4122,18 +4148,20 @@ E1079 vim9.txt /*E1079*
E108 eval.txt /*E108*
E1080 vim9.txt /*E1080*
E1081 eval.txt /*E1081*
E1082 vim9.txt /*E1082*
E1083 editing.txt /*E1083*
E1084 eval.txt /*E1084*
E1084 userfunc.txt /*E1084*
E1085 eval.txt /*E1085*
E1087 vim9.txt /*E1087*
E1088 vim9.txt /*E1088*
E1089 eval.txt /*E1089*
E109 eval.txt /*E109*
E1090 eval.txt /*E1090*
E1090 userfunc.txt /*E1090*
E1091 vim9.txt /*E1091*
E1092 various.txt /*E1092*
E1093 eval.txt /*E1093*
E1094 vim9.txt /*E1094*
E1095 eval.txt /*E1095*
E1095 userfunc.txt /*E1095*
E1096 vim9.txt /*E1096*
E1097 vim9.txt /*E1097*
E1098 eval.txt /*E1098*
@@ -4196,7 +4224,7 @@ E1148 eval.txt /*E1148*
E1149 vim9.txt /*E1149*
E115 eval.txt /*E115*
E1150 vim9.txt /*E1150*
E1151 eval.txt /*E1151*
E1151 userfunc.txt /*E1151*
E1152 vim9.txt /*E1152*
E1153 eval.txt /*E1153*
E1154 eval.txt /*E1154*
@@ -4216,7 +4244,7 @@ E1166 eval.txt /*E1166*
E1167 vim9.txt /*E1167*
E1168 vim9.txt /*E1168*
E1169 eval.txt /*E1169*
E117 eval.txt /*E117*
E117 userfunc.txt /*E117*
E1170 vim9.txt /*E1170*
E1171 vim9.txt /*E1171*
E1172 vim9.txt /*E1172*
@@ -4272,7 +4300,7 @@ E1216 builtin.txt /*E1216*
E1217 vim9.txt /*E1217*
E1218 vim9.txt /*E1218*
E1219 vim9.txt /*E1219*
E122 eval.txt /*E122*
E122 userfunc.txt /*E122*
E1220 vim9.txt /*E1220*
E1221 vim9.txt /*E1221*
E1222 vim9.txt /*E1222*
@@ -4283,7 +4311,7 @@ E1226 vim9.txt /*E1226*
E1227 vim9.txt /*E1227*
E1228 vim9.txt /*E1228*
E1229 eval.txt /*E1229*
E123 eval.txt /*E123*
E123 userfunc.txt /*E123*
E1230 options.txt /*E1230*
E1231 map.txt /*E1231*
E1232 builtin.txt /*E1232*
@@ -4293,7 +4321,7 @@ E1236 vim9.txt /*E1236*
E1237 map.txt /*E1237*
E1238 vim9.txt /*E1238*
E1239 builtin.txt /*E1239*
E124 eval.txt /*E124*
E124 userfunc.txt /*E124*
E1240 change.txt /*E1240*
E1241 change.txt /*E1241*
E1242 change.txt /*E1242*
@@ -4304,7 +4332,7 @@ E1246 eval.txt /*E1246*
E1247 cmdline.txt /*E1247*
E1248 vim9.txt /*E1248*
E1249 syntax.txt /*E1249*
E125 eval.txt /*E125*
E125 userfunc.txt /*E125*
E1250 vim9.txt /*E1250*
E1251 vim9.txt /*E1251*
E1252 vim9.txt /*E1252*
@@ -4315,29 +4343,56 @@ E1256 vim9.txt /*E1256*
E1257 vim9.txt /*E1257*
E1258 vim9.txt /*E1258*
E1259 vim9.txt /*E1259*
E126 eval.txt /*E126*
E126 userfunc.txt /*E126*
E1260 vim9.txt /*E1260*
E1261 vim9.txt /*E1261*
E1262 vim9.txt /*E1262*
E1263 eval.txt /*E1263*
E1263 userfunc.txt /*E1263*
E1264 vim9.txt /*E1264*
E1265 eval.txt /*E1265*
E1266 if_pyth.txt /*E1266*
E127 eval.txt /*E127*
E1267 userfunc.txt /*E1267*
E1268 vim9.txt /*E1268*
E1269 vim9.txt /*E1269*
E127 userfunc.txt /*E127*
E1270 change.txt /*E1270*
E1271 vim9.txt /*E1271*
E1272 vim9.txt /*E1272*
E1273 pattern.txt /*E1273*
E1274 cmdline.txt /*E1274*
E1275 eval.txt /*E1275*
E1276 builtin.txt /*E1276*
E1277 channel.txt /*E1277*
E1278 eval.txt /*E1278*
E128 eval.txt /*E128*
E1279 eval.txt /*E1279*
E128 userfunc.txt /*E128*
E1280 spell.txt /*E1280*
E1281 pattern.txt /*E1281*
E1282 eval.txt /*E1282*
E1283 eval.txt /*E1283*
E129 eval.txt /*E129*
E1284 popup.txt /*E1284*
E1285 builtin.txt /*E1285*
E1286 builtin.txt /*E1286*
E1287 builtin.txt /*E1287*
E1288 builtin.txt /*E1288*
E1289 builtin.txt /*E1289*
E129 userfunc.txt /*E129*
E1290 change.txt /*E1290*
E1291 testing.txt /*E1291*
E1292 cmdline.txt /*E1292*
E1293 textprop.txt /*E1293*
E1294 textprop.txt /*E1294*
E1295 textprop.txt /*E1295*
E1296 textprop.txt /*E1296*
E1297 vim9.txt /*E1297*
E1298 vim9.txt /*E1298*
E1299 tagsrch.txt /*E1299*
E13 message.txt /*E13*
E131 eval.txt /*E131*
E132 eval.txt /*E132*
E133 eval.txt /*E133*
E1300 userfunc.txt /*E1300*
E1302 eval.txt /*E1302*
E131 userfunc.txt /*E131*
E132 userfunc.txt /*E132*
E133 userfunc.txt /*E133*
E134 change.txt /*E134*
E135 autocmd.txt /*E135*
E136 starting.txt /*E136*
@@ -4402,7 +4457,7 @@ E19 message.txt /*E19*
E190 message.txt /*E190*
E191 motion.txt /*E191*
E192 message.txt /*E192*
E193 eval.txt /*E193*
E193 userfunc.txt /*E193*
E194 message.txt /*E194*
E195 starting.txt /*E195*
E196 various.txt /*E196*
@@ -4470,7 +4525,6 @@ E252 options.txt /*E252*
E253 mbyte.txt /*E253*
E254 message.txt /*E254*
E255 sign.txt /*E255*
E256 eval.txt /*E256*
E257 if_cscop.txt /*E257*
E258 remote.txt /*E258*
E259 if_cscop.txt /*E259*
@@ -4682,7 +4736,7 @@ E450 popup.txt /*E450*
E451 eval.txt /*E451*
E452 eval.txt /*E452*
E453 syntax.txt /*E453*
E454 eval.txt /*E454*
E454 userfunc.txt /*E454*
E455 print.txt /*E455*
E456 print.txt /*E456*
E457 print.txt /*E457*
@@ -4985,13 +5039,13 @@ E737 builtin.txt /*E737*
E738 eval.txt /*E738*
E739 builtin.txt /*E739*
E74 message.txt /*E74*
E740 eval.txt /*E740*
E740 userfunc.txt /*E740*
E741 eval.txt /*E741*
E742 eval.txt /*E742*
E742 userfunc.txt /*E742*
E743 eval.txt /*E743*
E744 netbeans.txt /*E744*
E745 eval.txt /*E745*
E746 eval.txt /*E746*
E746 userfunc.txt /*E746*
E747 editing.txt /*E747*
E748 repeat.txt /*E748*
E749 various.txt /*E749*
@@ -5093,7 +5147,6 @@ E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
E839 vim9.txt /*E839*
E84 windows.txt /*E84*
E840 insert.txt /*E840*
E841 map.txt /*E841*
@@ -5109,7 +5162,7 @@ E85 options.txt /*E85*
E850 change.txt /*E850*
E851 gui_x11.txt /*E851*
E852 gui_x11.txt /*E852*
E853 eval.txt /*E853*
E853 userfunc.txt /*E853*
E854 options.txt /*E854*
E855 autocmd.txt /*E855*
E856 testing.txt /*E856*
@@ -5143,7 +5196,7 @@ E880 if_pyth.txt /*E880*
E881 autocmd.txt /*E881*
E882 builtin.txt /*E882*
E883 builtin.txt /*E883*
E884 eval.txt /*E884*
E884 userfunc.txt /*E884*
E885 sign.txt /*E885*
E886 starting.txt /*E886*
E887 if_pyth.txt /*E887*
@@ -5196,8 +5249,8 @@ E929 starting.txt /*E929*
E93 windows.txt /*E93*
E930 builtin.txt /*E930*
E931 message.txt /*E931*
E932 eval.txt /*E932*
E933 eval.txt /*E933*
E932 userfunc.txt /*E932*
E933 userfunc.txt /*E933*
E934 sign.txt /*E934*
E935 builtin.txt /*E935*
E936 autocmd.txt /*E936*
@@ -5258,7 +5311,7 @@ E985 eval.txt /*E985*
E986 tagsrch.txt /*E986*
E987 tagsrch.txt /*E987*
E988 gui_w32.txt /*E988*
E989 eval.txt /*E989*
E989 userfunc.txt /*E989*
E99 diff.txt /*E99*
E990 eval.txt /*E990*
E991 eval.txt /*E991*
@@ -5355,6 +5408,7 @@ M motion.txt /*M*
MDI starting.txt /*MDI*
MMAppearanceModeSelection gui_mac.txt /*MMAppearanceModeSelection*
MMCellWidthMultiplier gui_mac.txt /*MMCellWidthMultiplier*
MMCmdLineAlignBottom gui_mac.txt /*MMCmdLineAlignBottom*
MMDialogsTrackPwd gui_mac.txt /*MMDialogsTrackPwd*
MMDisableLaunchAnimation gui_mac.txt /*MMDisableLaunchAnimation*
MMFontPreserveLineSpacing gui_mac.txt /*MMFontPreserveLineSpacing*
@@ -5364,9 +5418,11 @@ MMLoginShellCommand gui_mac.txt /*MMLoginShellCommand*
MMNativeFullScreen gui_mac.txt /*MMNativeFullScreen*
MMNoFontSubstitution gui_mac.txt /*MMNoFontSubstitution*
MMNoTitleBarWindow gui_mac.txt /*MMNoTitleBarWindow*
MMNonNativeFullScreenSafeAreaBehavior gui_mac.txt /*MMNonNativeFullScreenSafeAreaBehavior*
MMNonNativeFullScreenShowMenu gui_mac.txt /*MMNonNativeFullScreenShowMenu*
MMShareFindPboard gui_mac.txt /*MMShareFindPboard*
MMShowAddTabButton gui_mac.txt /*MMShowAddTabButton*
MMSmoothResize gui_mac.txt /*MMSmoothResize*
MMTabMaxWidth gui_mac.txt /*MMTabMaxWidth*
MMTabMinWidth gui_mac.txt /*MMTabMinWidth*
MMTabOptimumWidth gui_mac.txt /*MMTabOptimumWidth*
@@ -5610,7 +5666,7 @@ W18 syntax.txt /*W18*
W19 autocmd.txt /*W19*
W20 if_pyth.txt /*W20*
W21 if_pyth.txt /*W21*
W22 eval.txt /*W22*
W22 userfunc.txt /*W22*
WORD motion.txt /*WORD*
WSL os_win32.txt /*WSL*
WWW intro.txt /*WWW*
@@ -5745,12 +5801,12 @@ a' motion.txt /*a'*
a( motion.txt /*a(*
a) motion.txt /*a)*
a4 print.txt /*a4*
a:0 eval.txt /*a:0*
a:000 eval.txt /*a:000*
a:1 eval.txt /*a:1*
a:firstline eval.txt /*a:firstline*
a:lastline eval.txt /*a:lastline*
a:var eval.txt /*a:var*
a:0 userfunc.txt /*a:0*
a:000 userfunc.txt /*a:000*
a:1 userfunc.txt /*a:1*
a:firstline userfunc.txt /*a:firstline*
a:lastline userfunc.txt /*a:lastline*
a:var userfunc.txt /*a:var*
a< motion.txt /*a<*
a> motion.txt /*a>*
aB motion.txt /*aB*
@@ -5897,8 +5953,8 @@ autocommand-events autocmd.txt /*autocommand-events*
autocommand-pattern autocmd.txt /*autocommand-pattern*
autocommands autocmd.txt /*autocommands*
autoformat change.txt /*autoformat*
autoload eval.txt /*autoload*
autoload-functions eval.txt /*autoload-functions*
autoload userfunc.txt /*autoload*
autoload-functions userfunc.txt /*autoload-functions*
avoid-hit-enter version5.txt /*avoid-hit-enter*
aw motion.txt /*aw*
a{ motion.txt /*a{*
@@ -6298,6 +6354,7 @@ collate-variable eval.txt /*collate-variable*
color-schemes syntax.txt /*color-schemes*
color-xterm syntax.txt /*color-xterm*
coloring syntax.txt /*coloring*
colorscheme-override syntax.txt /*colorscheme-override*
colortest.vim syntax.txt /*colortest.vim*
command-attributes map.txt /*command-attributes*
command-block vim9.txt /*command-block*
@@ -6359,6 +6416,7 @@ conceal syntax.txt /*conceal*
confirm() builtin.txt /*confirm()*
connection-refused message.txt /*connection-refused*
console-menus gui.txt /*console-menus*
context.vim ft_context.txt /*context.vim*
control intro.txt /*control*
conversion-server mbyte.txt /*conversion-server*
convert-to-HTML syntax.txt /*convert-to-HTML*
@@ -6533,6 +6591,7 @@ decada_members ft_ada.txt /*decada_members*
deepcopy() builtin.txt /*deepcopy()*
defaults.vim starting.txt /*defaults.vim*
defaults.vim-explained usr_05.txt /*defaults.vim-explained*
define-function userfunc.txt /*define-function*
definition-search tagsrch.txt /*definition-search*
definitions intro.txt /*definitions*
delete() builtin.txt /*delete()*
@@ -7004,6 +7063,11 @@ ft-clojure-indent indent.txt /*ft-clojure-indent*
ft-clojure-syntax syntax.txt /*ft-clojure-syntax*
ft-cobol-syntax syntax.txt /*ft-cobol-syntax*
ft-coldfusion-syntax syntax.txt /*ft-coldfusion-syntax*
ft-context ft_context.txt /*ft-context*
ft-context-commands ft_context.txt /*ft-context-commands*
ft-context-intro ft_context.txt /*ft-context-intro*
ft-context-mappings ft_context.txt /*ft-context-mappings*
ft-context-settings ft_context.txt /*ft-context-settings*
ft-cpp-syntax syntax.txt /*ft-cpp-syntax*
ft-csh-syntax syntax.txt /*ft-csh-syntax*
ft-css-omni insert.txt /*ft-css-omni*
@@ -7063,6 +7127,15 @@ ft-markdown-syntax syntax.txt /*ft-markdown-syntax*
ft-masm-syntax syntax.txt /*ft-masm-syntax*
ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
ft-matlab-indent indent.txt /*ft-matlab-indent*
ft-metafont ft_mp.txt /*ft-metafont*
ft-metafont-intro ft_mp.txt /*ft-metafont-intro*
ft-metafont-mappings ft_mp.txt /*ft-metafont-mappings*
ft-metafont-settings ft_mp.txt /*ft-metafont-settings*
ft-metapost ft_mp.txt /*ft-metapost*
ft-metapost-commands ft_mp.txt /*ft-metapost-commands*
ft-metapost-intro ft_mp.txt /*ft-metapost-intro*
ft-metapost-mappings ft_mp.txt /*ft-metapost-mappings*
ft-metapost-settings ft_mp.txt /*ft-metapost-settings*
ft-mma-syntax syntax.txt /*ft-mma-syntax*
ft-moo-syntax syntax.txt /*ft-moo-syntax*
ft-msql-syntax syntax.txt /*ft-msql-syntax*
@@ -7141,6 +7214,8 @@ ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
ft-zimbu-plugin filetype.txt /*ft-zimbu-plugin*
ft-zsh-syntax syntax.txt /*ft-zsh-syntax*
ft_ada.txt ft_ada.txt /*ft_ada.txt*
ft_context.txt ft_context.txt /*ft_context.txt*
ft_mp.txt ft_mp.txt /*ft_mp.txt*
ft_ps1.txt ft_ps1.txt /*ft_ps1.txt*
ft_raku.txt ft_raku.txt /*ft_raku.txt*
ft_rust.txt ft_rust.txt /*ft_rust.txt*
@@ -7156,11 +7231,11 @@ ftplugins usr_05.txt /*ftplugins*
fullcommand() builtin.txt /*fullcommand()*
funcref() builtin.txt /*funcref()*
function() builtin.txt /*function()*
function-argument eval.txt /*function-argument*
function-argument userfunc.txt /*function-argument*
function-key intro.txt /*function-key*
function-list usr_41.txt /*function-list*
function-range-example eval.txt /*function-range-example*
function-search-undo eval.txt /*function-search-undo*
function-range-example userfunc.txt /*function-range-example*
function-search-undo userfunc.txt /*function-search-undo*
function_key intro.txt /*function_key*
functions eval.txt /*functions*
fuzzy-matching pattern.txt /*fuzzy-matching*
@@ -7517,6 +7592,7 @@ getscript-data pi_getscript.txt /*getscript-data*
getscript-history pi_getscript.txt /*getscript-history*
getscript-plugins pi_getscript.txt /*getscript-plugins*
getscript-start pi_getscript.txt /*getscript-start*
getscriptinfo() builtin.txt /*getscriptinfo()*
gettabinfo() builtin.txt /*gettabinfo()*
gettabvar() builtin.txt /*gettabvar()*
gettabwinvar() builtin.txt /*gettabwinvar()*
@@ -7768,6 +7844,7 @@ hl-LineNrAbove syntax.txt /*hl-LineNrAbove*
hl-LineNrBelow syntax.txt /*hl-LineNrBelow*
hl-MatchParen syntax.txt /*hl-MatchParen*
hl-Menu syntax.txt /*hl-Menu*
hl-MessageWindow syntax.txt /*hl-MessageWindow*
hl-ModeMsg syntax.txt /*hl-ModeMsg*
hl-MoreMsg syntax.txt /*hl-MoreMsg*
hl-NonText syntax.txt /*hl-NonText*
@@ -7776,6 +7853,7 @@ hl-Pmenu syntax.txt /*hl-Pmenu*
hl-PmenuSbar syntax.txt /*hl-PmenuSbar*
hl-PmenuSel syntax.txt /*hl-PmenuSel*
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
hl-PopupNotification syntax.txt /*hl-PopupNotification*
hl-Question syntax.txt /*hl-Question*
hl-QuickFixLine syntax.txt /*hl-QuickFixLine*
hl-Scrollbar syntax.txt /*hl-Scrollbar*
@@ -7975,7 +8053,9 @@ if_sniff.txt if_sniff.txt /*if_sniff.txt*
if_tcl.txt if_tcl.txt /*if_tcl.txt*
ignore-errors eval.txt /*ignore-errors*
ignore-timestamp editing.txt /*ignore-timestamp*
import-autoload vim9.txt /*import-autoload*
import-legacy vim9.txt /*import-legacy*
import-map vim9.txt /*import-map*
improved-autocmds-5.4 version5.txt /*improved-autocmds-5.4*
improved-quickfix version5.txt /*improved-quickfix*
improved-sessions version5.txt /*improved-sessions*
@@ -8008,6 +8088,7 @@ indentkeys-format indent.txt /*indentkeys-format*
index index.txt /*index*
index() builtin.txt /*index()*
index.txt index.txt /*index.txt*
indexof() builtin.txt /*indexof()*
info-message starting.txt /*info-message*
inform.vim syntax.txt /*inform.vim*
informix ft_sql.txt /*informix*
@@ -8206,10 +8287,10 @@ lnum-variable eval.txt /*lnum-variable*
load-plugins starting.txt /*load-plugins*
load-vim-script repeat.txt /*load-vim-script*
local-additions help.txt /*local-additions*
local-function eval.txt /*local-function*
local-function userfunc.txt /*local-function*
local-options options.txt /*local-options*
local-variable eval.txt /*local-variable*
local-variables eval.txt /*local-variables*
local-variables userfunc.txt /*local-variables*
local_markfilelist pi_netrw.txt /*local_markfilelist*
locale mbyte.txt /*locale*
locale-name mbyte.txt /*locale-name*
@@ -8437,6 +8518,7 @@ message.txt message.txt /*message.txt*
messages message.txt /*messages*
meta intro.txt /*meta*
method eval.txt /*method*
mf.vim ft_mp.txt /*mf.vim*
min() builtin.txt /*min()*
missing-options vi_diff.txt /*missing-options*
mkdir() builtin.txt /*mkdir()*
@@ -8470,6 +8552,7 @@ mouse_lnum-variable eval.txt /*mouse_lnum-variable*
mouse_win-variable eval.txt /*mouse_win-variable*
mouse_winid-variable eval.txt /*mouse_winid-variable*
movement intro.txt /*movement*
mp.vim ft_mp.txt /*mp.vim*
ms-dos os_msdos.txt /*ms-dos*
msdos os_msdos.txt /*msdos*
msql.vim syntax.txt /*msql.vim*
@@ -8870,7 +8953,7 @@ no_plugin_maps filetype.txt /*no_plugin_maps*
nocombine syntax.txt /*nocombine*
non-greedy pattern.txt /*non-greedy*
non-zero-arg eval.txt /*non-zero-arg*
none-function_argument eval.txt /*none-function_argument*
none-function_argument userfunc.txt /*none-function_argument*
none-variable eval.txt /*none-variable*
normal-index index.txt /*normal-index*
not-compatible usr_01.txt /*not-compatible*
@@ -8925,7 +9008,7 @@ option-value-function options.txt /*option-value-function*
option-window options.txt /*option-window*
option_restore() todo.txt /*option_restore()*
option_save() todo.txt /*option_save()*
optional-function-argument eval.txt /*optional-function-argument*
optional-function-argument userfunc.txt /*optional-function-argument*
options options.txt /*options*
options-changed version5.txt /*options-changed*
options-in-terminal terminal.txt /*options-in-terminal*
@@ -9331,6 +9414,7 @@ regexp pattern.txt /*regexp*
regexp-changes-5.4 version5.txt /*regexp-changes-5.4*
register sponsor.txt /*register*
register-faq sponsor.txt /*register-faq*
register-functions usr_41.txt /*register-functions*
register-variable eval.txt /*register-variable*
registers change.txt /*registers*
rego.vim syntax.txt /*rego.vim*
@@ -9512,6 +9596,7 @@ setbufvar() builtin.txt /*setbufvar()*
setcellwidths() builtin.txt /*setcellwidths()*
setcharpos() builtin.txt /*setcharpos()*
setcharsearch() builtin.txt /*setcharsearch()*
setcmdline() builtin.txt /*setcmdline()*
setcmdpos() builtin.txt /*setcmdpos()*
setcursorcharpos() builtin.txt /*setcursorcharpos()*
setenv() builtin.txt /*setenv()*
@@ -10215,6 +10300,7 @@ termdebug_use_prompt terminal.txt /*termdebug_use_prompt*
termdebug_wide terminal.txt /*termdebug_wide*
terminal terminal.txt /*terminal*
terminal-api terminal.txt /*terminal-api*
terminal-autoshelldir terminal.txt /*terminal-autoshelldir*
terminal-client-server terminal.txt /*terminal-client-server*
terminal-close terminal.txt /*terminal-close*
terminal-colors os_unix.txt /*terminal-colors*
@@ -10352,15 +10438,12 @@ try-finally eval.txt /*try-finally*
try-nested eval.txt /*try-nested*
try-nesting eval.txt /*try-nesting*
tutor usr_01.txt /*tutor*
twice if_cscop.txt /*twice*
two-engines pattern.txt /*two-engines*
type() builtin.txt /*type()*
type-casting vim9.txt /*type-casting*
type-checking vim9.txt /*type-checking*
type-inference vim9.txt /*type-inference*
type-mistakes tips.txt /*type-mistakes*
typecorrect-settings usr_51.txt /*typecorrect-settings*
typecorrect.txt usr_51.txt /*typecorrect.txt*
typename() builtin.txt /*typename()*
u undo.txt /*u*
uganda uganda.txt /*uganda*
@@ -10375,6 +10458,7 @@ undo undo.txt /*undo*
undo-blocks undo.txt /*undo-blocks*
undo-branches undo.txt /*undo-branches*
undo-break undo.txt /*undo-break*
undo-close-block undo.txt /*undo-close-block*
undo-commands undo.txt /*undo-commands*
undo-persistence undo.txt /*undo-persistence*
undo-redo undo.txt /*undo-redo*
@@ -10400,6 +10484,7 @@ user-cmd-ambiguous map.txt /*user-cmd-ambiguous*
user-commands map.txt /*user-commands*
user-functions eval.txt /*user-functions*
user-manual usr_toc.txt /*user-manual*
userfunc.txt userfunc.txt /*userfunc.txt*
using-<Plug> usr_51.txt /*using-<Plug>*
using-menus gui.txt /*using-menus*
using-scripts repeat.txt /*using-scripts*
@@ -10842,6 +10927,7 @@ vimscript-versions eval.txt /*vimscript-versions*
vimtutor usr_01.txt /*vimtutor*
virtcol() builtin.txt /*virtcol()*
virtcol2col() builtin.txt /*virtcol2col()*
virtual-text textprop.txt /*virtual-text*
visual-block visual.txt /*visual-block*
visual-change visual.txt /*visual-change*
visual-examples visual.txt /*visual-examples*
+8 -3
View File
@@ -889,13 +889,16 @@ like |CTRL-]|.
The function used for generating the taglist is specified by setting the
'tagfunc' option. The function will be called with three arguments:
a:pattern The tag identifier or pattern used during the tag search.
a:flags String containing flags to control the function behavior.
a:info Dict containing the following entries:
pattern The tag identifier or pattern used during the tag search.
flags String containing flags to control the function behavior.
info Dict containing the following entries:
buf_ffname Full filename which can be used for priority.
user_data Custom data String, if stored in the tag
stack previously by tagfunc.
Note that in a legacy function "a:" needs to be prepended to the argument name
when using it.
Currently up to three flags may be passed to the tag function:
'c' The function was invoked by a normal command being processed
(mnemonic: the tag function may use the context around the
@@ -931,6 +934,8 @@ If the function returns |v:null| instead of a List, a standard tag lookup will
be performed instead.
It is not allowed to change the tagstack from inside 'tagfunc'. *E986*
It is not allowed to close a window or change window from inside 'tagfunc'.
*E1299*
The following is a hypothetical example of a function used for 'tagfunc'. It
uses the output of |taglist()| to generate the result: a list of tags in the
+16 -9
View File
@@ -43,15 +43,10 @@ On non-Unix systems a termcap is only available if Vim was compiled with
TERMCAP defined.
*builtin-terms* *builtin_terms*
Which builtin terminals are available depends on a few defines in feature.h,
which need to be set at compile time:
define output of ":version" terminals builtin ~
NO_BUILTIN_TCAPS -builtin_terms none
SOME_BUILTIN_TCAPS +builtin_terms most common ones (default)
ALL_BUILTIN_TCAPS ++builtin_terms all available
You can see a list of available builtin terminals with ":set term=xxx" (when
not running the GUI). Also see |+builtin_terms|.
A number of builtin terminals are available. Since patch 9.0.0280 there is no
difference between Vim versions. You can see a list of available builtin
terminals in the error message you get for `:set term=xxx` (when not running
the GUI). Also see |++builtin_terms|.
If the termcap code is included Vim will try to get the strings for the
terminal you are using from the termcap file and the builtin termcaps. Both
@@ -648,6 +643,18 @@ Example for an xterm, this changes the color of the cursor: >
endif
NOTE: When Vim exits the shape for Normal mode will remain. The shape from
before Vim started will not be restored.
For Windows Terminal you can use something like this: >
" Note: This should be set after `set termguicolors` or `set t_Co=256`.
if &term =~ 'xterm' || &term == 'win32'
" Use DECSCUSR escape sequences
let &t_SI = "\e[5 q" " blink bar
let &t_SR = "\e[3 q" " blink underline
let &t_EI = "\e[1 q" " blink block
let &t_ti ..= "\e[1 q" " blink block
let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink block)
endif
{not available when compiled without the |+cursorshape| feature}
*termcap-title*
+32
View File
@@ -1019,6 +1019,38 @@ A trick to have Vim send this escape sequence: >
Rationale: Why not allow for any command or expression? Because that might
create a security problem.
*terminal-autoshelldir*
This can be used to pass the current directory from a shell to Vim.
Put this in your .vimrc: >
def g:Tapi_lcd(_, path: string)
if isdirectory(path)
execute 'silent lcd ' .. fnameescape(path)
endif
enddef
<
And, in a bash init file: >
if [[ -n "$VIM_TERMINAL" ]]; then
PROMPT_COMMAND='_vim_sync_PWD'
function _vim_sync_PWD() {
printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD"
}
fi
<
Or, for zsh: >
if [[ -n "$VIM_TERMINAL" ]]; then
autoload -Uz add-zsh-hook
add-zsh-hook -Uz chpwd _vim_sync_PWD
function _vim_sync_PWD() {
printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD"
}
fi
<
Or, for fish: >
if test -n "$VIM_TERMINAL"
function _vim_sync_PWD --on-variable=PWD
printf '\033]51;["call", "Tapi_lcd", "%s"]\007' "$PWD"
end
end
Using the client-server feature ~
+1
View File
@@ -186,6 +186,7 @@ test_gui_event({event}, {args})
keyup generate a keyup event
keydown generate a keydown event
keycode: Keycode to use for a keyup or a keydown event.
*E1291*
"tabline":
Inject a mouse click event on the tabline to select a
+68 -4
View File
@@ -126,6 +126,7 @@ prop_add({lnum}, {col}, {props})
If {col} is invalid an error is given. *E964*
{props} is a dictionary with these fields:
type name of the text property type
length length of text in bytes, can only be used
for a property that does not continue in
another line; can be zero
@@ -137,8 +138,37 @@ prop_add({lnum}, {col}, {props})
bufnr buffer to add the property to; when omitted
the current buffer is used
id user defined ID for the property; must be a
number; when omitted zero is used
type name of the text property type
number, should be positive; when using "text"
then "id" must not be present and will be set
automatically to a negative number; otherwise
zero is used
text text to be displayed before {col}, or after the
line if {col} is zero; prepend and/or append
spaces for padding with highlighting
*E1294*
text_align when "text" is present and {col} is zero;
specifies where to display the text:
after after the end of the line
right right aligned in the window (unless
the text wraps to the next screen
line)
below in the next screen line
above just above the line
When omitted "after" is used. Only one
"right" property can fit in each line, if
there are two ore more these will go in a
separate line (still right aligned).
text_padding_left *E1296*
used when "text" is present and {col} is zero;
padding between the end of the text line
(leftmost column for "below") and the virtual
text, not highlighted
text_wrap when "text" is present and {col} is zero,
specifies what happens if the text doesn't
fit:
wrap wrap the text to the next line
truncate truncate the text to make it fit
When omitted "truncate" is used.
All fields except "type" are optional.
It is an error when both "length" and "end_lnum" or "end_col"
@@ -157,6 +187,30 @@ prop_add({lnum}, {col}, {props})
"type" will first be looked up in the buffer the property is
added to. When not found, the global property types are used.
If not found an error is given.
*virtual-text*
When "text" is used and the column is non-zero then this text
will be displayed at the start location of the text property
after the text. The text of the buffer line will be shifted
to make room. This is called "virtual text".
When the column is zero the virtual text will appear after the
buffer text. The "text_align" and "text_wrap" arguments
determine how it is displayed.
The text will be displayed but it is not part of the actual
buffer line, the cursor cannot be placed on it. A mouse click
in the text will move the cursor to the first character after
the text, or the last character of the line.
Any Tab and other control character in the text will be
changed to a space (Rationale: otherwise the size of the text
is difficult to compute).
A negative "id" will be chosen and is returned. Once a
property with "text" has been added for a buffer then using a
negative "id" for any other property will give an error:
*E1293*
Make sure to use a highlight that makes clear to the user that
this is virtual text, otherwise it will be very confusing that
the text cannot be edited.
To separate the virtual text from the buffer text prepend
and/or append spaces to the "text" field.
Can also be used as a |method|: >
GetLnum()->prop_add(col, props)
@@ -181,6 +235,9 @@ prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
two items {end-lnum} and {end-col} specify the position just
after the text.
It is not possible to add a text property with a "text" field
here.
Example:
call prop_add_list(#{type: 'MyProp', id: 2},
\ [[1, 4, 1, 7],
@@ -304,11 +361,16 @@ prop_remove({props} [, {lnum} [, {lnum-end}]])
{props} is a dictionary with these fields:
id remove text properties with this ID
type remove text properties with this type name
both "id" and "type" must both match
types remove text properties with type names in this
List
both "id" and "type"/"types" must both match
bufnr use this buffer instead of the current one
all when TRUE remove all matching text properties,
not just the first one
A property matches when either "id" or "type" matches.
Only one of "type" and "types" may be supplied. *E1295*
A property matches when either "id" or one of the supplied
types matches.
If buffer "bufnr" does not exist you get an error message.
If buffer "bufnr" is not loaded then nothing happens.
@@ -334,6 +396,8 @@ prop_type_add({name}, {props}) *prop_type_add()* *E969* *E970*
combine when omitted or TRUE combine the highlight
with any syntax highlight; when FALSE syntax
highlight will not be used
override when TRUE the highlight overrides any other,
including 'cursorline' and Visual
start_incl when TRUE inserts at the start position will
be included in the text property
end_incl when TRUE inserts at the end position will be
+46 -42
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 9.0. Last change: 2022 Jun 27
*todo.txt* For Vim version 9.0. Last change: 2022 Sep 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,6 +38,15 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
Use :defer command:
- Use "D" flag of writefile() and mkdir() in tests.
(testdir/test_c*.vim done)
When using :echomessage do use msg_row and msg_col, but save and restore.
How to test any failure? If nothing fails perhaps it's OK alrady.
Drop Windows XP? #11089
Further Vim9 improvements, possibly after launch:
- Use Vim9 for more runtime files.
- Check performance with callgrind and kcachegrind.
@@ -67,18 +76,6 @@ Further Vim9 improvements, possibly after launch:
has(featureName), len(someString)
- Implement as part of an expression: ++expr, --expr, expr++, expr--.
Update list of features to vote on:
- Remove Athena item (won't happen)
- Remove "add open mode" (won't happen)
- Remove "editing of a hidden buffer" (done)
- Change "add IDE features" to "improve terminal debugger"
- Change "diff/merge capability for CVS" to "CVS and git"
- Remove "pre-compile them" from "improve the performance of Vim scripts"
- Add: multiple cursors, edit text in more than one place at a time
- Add: fast syntax highlighting with parser instead of regex patterns
- Add: virtual text, text properties can insert text in the line
- Add: start first line halfway, scroll per wrapped screen line
Popup windows:
- Preview popup not properly updated when it overlaps with completion menu.
(Yegappan Lakshmanan, 2021 May 22)
@@ -115,19 +112,6 @@ Popup windows:
Use ERROR_IF_POPUP_WINDOW for these.
- Figure out the size and position better if wrapping inserts indent
Text properties:
- property is overruled by cursorline. (#8225).
Add better control over priority? Make list of all highlighting, specify
where property fits in.
Or Should we let the textprop highlight overrule other (e.g. diff) highlight
if the priority is above a certain value? (#7392)
Combining text property with 'cursorline' does not always work (Billie
Cleek, #5533)
- Add text property that shifts text to make room for annotation (e.g.
variable type). Like the opposite of conceal. Requires fixing the cursor
positioning and mouse clicks as with conceal mode.
- See remarks at top of src/textprop.c
'incsearch' with :s:
- :s/foo using CTRL-G moves to another line, should not happen, or use the
correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345)
@@ -201,9 +185,7 @@ Terminal emulator window:
- When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions.
Patches considered for including:
- Add "-n" option to xxd. #10599 needs a test
- allow for nesting of timeout, sketch in #10595
Add 'splitscroll' #10682 Anything remaining
Autoconf: must use autoconf 2.69, later version generates lots of warnings
- try using autoconf 2.71 and fix all "obsolete" warnings
@@ -213,6 +195,8 @@ Can deref_func_name() and deref_function_name() be merged?
After patch 8.2.4915 w_botline is computed much more often. Can this be
reduced?
Add BufDeletePost. #11041
NFA regexp does not handle composing characters well: #10286
[ɔ̃] matches both ɔ and ɔ̃
\(ɔ\|ɔ̃\) matches ɔ and not ɔ̃
@@ -224,6 +208,17 @@ entry separately. #6609
Multiplexers (screen, tmux) can request it to the underlying terminal, and
pass it on with modifications.
Using "A" and "o" in manually created fold (in empty buffer) does not behave
consistenly (James McCoy, #10698)
To avoid flicker: add an option that when a screen clear is requested, instead
of clearing it draws everything and uses "clear to end of line" for every line.
Resetting 't_ut' already causes this?
When scheme can't be found by configure there is no clear "not found" message:
configure:5769: checking MzScheme install prefix
configure:5781: result:
Can "CSI nr X" be used instead of outputting spaces? Is it faster? #8002
Typed keys invisible after calling interrupt() from a timer. #10631
@@ -249,6 +244,9 @@ MS-Windows: did path modifier :p:8 stop working? #8600
Version of getchar() that does not move the cursor - #10603 Use a separate
argument for the new flag.
Add "lastline" entry to 'fillchars' to specify a character instead of '@'.
#10963
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
@@ -276,6 +274,7 @@ Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
Also, z= in German on a long word can take a very long time, but CTRL-C to
interrupt does not work. Where to add ui_breakcheck()?
New English spell files also have very slow suggestions.
French spell files don't work correctly. #4916
Make "g>" and "g<" in Visual mode move the text right or left.
Also for a block selection. #8558
@@ -881,9 +880,6 @@ The ++ options for the :edit command are also useful on the Vim command line.
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089) Patch with possible solution by Björn Linse.
The change list index is local to a buffer, but it doesn't make sense using it
for another buffer. (lacygoill) Copy w_changelistidx to wininfo_S and back.
X11: Putting more than about 262040 characters of text on the clipboard and
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
clip_x11_request_selection_cb() is called with zero value and length.
@@ -1160,9 +1156,6 @@ cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25)
Syntax highlighting for messages with RFC3339 timestamp (#946)
Did maintainer reply?
ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
Also with latest version.
@@ -2653,6 +2646,13 @@ Better 'rightleft' or BIDI support:
Spell checking:
- List of common misspellings in English:
https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
German:
https://de.wikipedia.org/wiki/Wikipedia:Liste_von_Tippfehlern/F%C3%BCr_Maschinen
There are other languages.
- [s does not find missing capital at start of the line. #10838
Probably because the dot at the end of the previous line isn't seen.
- When 'cursorline' is set and the first word should have SpellCap
highlighting, redrawing the line removes it when moving the cursor away
from the line. (#7085) Would need to inspect the end of the previous line
@@ -3758,9 +3758,12 @@ Printing:
Syntax highlighting:
Long term goal: faster, better, etc. Options:
- use treesitter, NeoVim uses it - Many people don't like it.
After changes requires rebuilding the library.
- use TextMate, vscode uses it. #9087 - Other people don't like it.
https://github.com/icedman/vim-textmate
Vscode is asked to switch to treesitter:
https://github.com/microsoft/vscode/issues/50140
- sublime grammar?
8 Make ":syn off" use 'runtimepath' instead of $VIMRUNTIME. (Gary Johnson)
Should do the same for ":syn on" and ":syn manual".
8 Support "containedin" argument for ":syn include", so that the defined
@@ -3954,15 +3957,16 @@ Vim script language:
can be the plugin name.
Perhaps also have a way to remove everything that the package added?
including autocommands.
7 Pre-parse or compile Vim scripts into a bytecode.
7 Pre-parse or compile Vim scripts into a bytecode, like :def functions.
Possibilities:
1. Put the bytecode with the original script, with an ":if
has('bytecode')" around it, so that it's only used with a Vim that
supports it. Update the code with a command, can be used in an
autocommand.
has('bytecode-1234')" around it, so that it's only used with a Vim that
supports the version. Update the code with a command, can be used in
an autocommand.
2. Use a ".vic" file (like Python use .pyc). Create it when writing a
.vim file. Problem: distribution.
3. Use a cache directory for each user. How to recognize which cached
file belongs to a sourced script?
.vim file. Problem: distribution, non-writable directory, etc.
3. Use a cache directory for each user. Disadvantage: cache lookup may
cost more time than bytecode wins.
7 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
signs and/or 'number'.
6 Add ++ and -- operators? They only work on variables (lvals), how to
+5 -5
View File
@@ -105,13 +105,13 @@ change again. But you can do something like this: >
After this a "u" command will undo the delete command and the previous
change.
*undo-break*
To do the opposite, break a change into two undo blocks, in Insert mode use
CTRL-G u. This is useful if you want an insert command to be undoable in
*undo-break* *undo-close-block*
To do the opposite, use a new undo block for the next change, in Insert mode
use CTRL-G u. This is useful if you want an insert command to be undoable in
parts. E.g., for each sentence. |i_CTRL-G_u|
Setting the value of 'undolevels' also breaks undo. Even when the new value
is equal to the old value. In |Vim9| script: >
Setting the value of 'undolevels' also closes the undo block. Even when the
new value is equal to the old value. In |Vim9| script: >
&undolevels = &undolevels
In legacy script: >
let &undolevels = &undolevels
+531
View File
@@ -0,0 +1,531 @@
*userfunc.txt* For Vim version 9.0. Last change: 2022 Sep 09
VIM REFERENCE MANUAL by Bram Moolenaar
Defining and using functions.
This is introduced in section |41.7| of the user manual.
1. Defining a fuction |define-function|
2. Calling a fuction |:call|
3. Cleaning up in a function |:defer|
4. Automatically loading functions |autoload-functions|
==============================================================================
1. Defining a fuction ~
*define-function*
New functions can be defined. These can be called just like builtin
functions. The function executes a sequence of Ex commands. Normal mode
commands can be executed with the |:normal| command.
The function name must start with an uppercase letter, to avoid confusion with
builtin functions. To prevent from using the same name in different scripts
make them script-local. If you do use a global function then avoid obvious,
short names. A good habit is to start the function name with the name of the
script, e.g., "HTMLcolor()".
In legacy script it is also possible to use curly braces, see
|curly-braces-names|.
The |autoload| facility is useful to define a function only when it's called.
*local-function*
A function local to a legacy script must start with "s:". A local script
function can only be called from within the script and from functions, user
commands and autocommands defined in the script. It is also possible to call
the function from a mapping defined in the script, but then |<SID>| must be
used instead of "s:" when the mapping is expanded outside of the script.
There are only script-local functions, no buffer-local or window-local
functions.
In |Vim9| script functions are local to the script by default, prefix "g:" to
define a global function.
*:fu* *:function* *E128* *E129* *E123* *E454*
:fu[nction] List all functions and their arguments.
:fu[nction] {name} List function {name}.
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
:function dict.init
:fu[nction] /{pattern} List functions with a name matching {pattern}.
Example that lists all functions ending with "File": >
:function /File$
<
*:function-verbose*
When 'verbose' is non-zero, listing a function will also display where it was
last defined. Example: >
:verbose function SetFileTypeSH
function SetFileTypeSH(name)
Last set from /usr/share/vim/vim-7.0/filetype.vim
<
See |:verbose-cmd| for more information.
*E124* *E125* *E853* *E884*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
Define a new function by the name {name}. The body of
the function follows in the next lines, until the
matching |:endfunction|.
*E1267*
The name must be made of alphanumeric characters and
'_', and must start with a capital or "s:" (see
above). Note that using "b:" or "g:" is not allowed.
(since patch 7.4.260 E884 is given if the function
name has a colon in the name, e.g. for "foo:bar()".
Before that patch no error was given).
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
:function dict.init(arg)
< "dict" must be an existing dictionary. The entry
"init" is added if it didn't exist yet. Otherwise [!]
is required to overwrite an existing function. The
result is a |Funcref| to a numbered function. The
function can only be used with a |Funcref| and will be
deleted if there are no more references to it.
*E127* *E122*
When a function by this name already exists and [!] is
not used an error message is given. There is one
exception: When sourcing a script again, a function
that was previously defined in that script will be
silently replaced.
When [!] is used, an existing function is silently
replaced. Unless it is currently being executed, that
is an error.
NOTE: Use ! wisely. If used without care it can cause
an existing function to be replaced unexpectedly,
which is hard to debug.
NOTE: In Vim9 script script-local functions cannot be
deleted or redefined.
For the {arguments} see |function-argument|.
*:func-range* *a:firstline* *a:lastline*
When the [range] argument is added, the function is
expected to take care of a range itself. The range is
passed as "a:firstline" and "a:lastline". If [range]
is excluded, ":{range}call" will call the function for
each line in the range, with the cursor on the start
of each line. See |function-range-example|.
The cursor is still moved to the first line of the
range, as is the case with all Ex commands.
*:func-abort*
When the [abort] argument is added, the function will
abort as soon as an error is detected.
*:func-dict*
When the [dict] argument is added, the function must
be invoked through an entry in a |Dictionary|. The
local variable "self" will then be set to the
dictionary. See |Dictionary-function|.
*:func-closure* *E932*
When the [closure] argument is added, the function
can access variables and arguments from the outer
scope. This is usually called a closure. In this
example Bar() uses "x" from the scope of Foo(). It
remains referenced even after Foo() returns: >
:function! Foo()
: let x = 0
: function! Bar() closure
: let x += 1
: return x
: endfunction
: return funcref('Bar')
:endfunction
:let F = Foo()
:echo F()
< 1 >
:echo F()
< 2 >
:echo F()
< 3
*function-search-undo*
The last used search pattern and the redo command "."
will not be changed by the function. This also
implies that the effect of |:nohlsearch| is undone
when the function returns.
*:endf* *:endfunction* *E126* *E193* *W22* *E1151*
:endf[unction] [argument]
The end of a function definition. Best is to put it
on a line by its own, without [argument].
[argument] can be:
| command command to execute next
\n command command to execute next
" comment always ignored
anything else ignored, warning given when
'verbose' is non-zero
The support for a following command was added in Vim
8.0.0654, before that any argument was silently
ignored.
To be able to define a function inside an `:execute`
command, use line breaks instead of |:bar|: >
:exe "func Foo()\necho 'foo'\nendfunc"
<
*:delf* *:delfunction* *E131* *E933* *E1084*
:delf[unction][!] {name}
Delete function {name}.
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
:delfunc dict.init
< This will remove the "init" entry from "dict". The
function is deleted if there are no more references to
it.
With the ! there is no error if the function does not
exist.
*:retu* *:return* *E133*
:retu[rn] [expr] Return from a function. When "[expr]" is given, it is
evaluated and returned as the result of the function.
If "[expr]" is not given, the number 0 is returned.
When a function ends without an explicit ":return",
the number 0 is returned.
In a :def function *E1095* is given if unreachable
code follows after the `:return`.
In legacy script there is no check for unreachable
lines, thus there is no warning if commands follow
`:return`.
If the ":return" is used after a |:try| but before the
matching |:finally| (if present), the commands
following the ":finally" up to the matching |:endtry|
are executed first. This process applies to all
nested ":try"s inside the function. The function
returns at the outermost ":endtry".
*function-argument* *a:var*
An argument can be defined by giving its name. In the function this can then
be used as "a:name" ("a:" for argument).
*a:0* *a:1* *a:000* *E740* *...*
Up to 20 arguments can be given, separated by commas. After the named
arguments an argument "..." can be specified, which means that more arguments
may optionally be following. In the function the extra arguments can be used
as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which
can be 0). "a:000" is set to a |List| that contains these arguments. Note
that "a:1" is the same as "a:000[0]".
*E742* *E1090*
The a: scope and the variables in it cannot be changed, they are fixed.
However, if a composite type is used, such as |List| or |Dictionary| , you can
change their contents. Thus you can pass a |List| to a function and have the
function add an item to it. If you want to make sure the function cannot
change a |List| or |Dictionary| use |:lockvar|.
It is also possible to define a function without any arguments. You must
still supply the () then.
It is allowed to define another function inside a function body.
*optional-function-argument*
You can provide default values for positional named arguments. This makes
them optional for function calls. When a positional argument is not
specified at a call, the default expression is used to initialize it.
This only works for functions declared with `:function` or `:def`, not for
lambda expressions |expr-lambda|.
Example: >
function Something(key, value = 10)
echo a:key .. ": " .. a:value
endfunction
call Something('empty') "empty: 10"
call Something('key', 20) "key: 20"
The argument default expressions are evaluated at the time of the function
call, not definition. Thus it is possible to use an expression which is
invalid the moment the function is defined. The expressions are also only
evaluated when arguments are not specified during a call.
*none-function_argument*
You can pass |v:none| to use the default expression. Note that this means you
cannot pass v:none as an ordinary value when an argument has a default
expression.
Example: >
function Something(a = 10, b = 20, c = 30)
endfunction
call Something(1, v:none, 3) " b = 20
<
*E989*
Optional arguments with default expressions must occur after any mandatory
arguments. You can use "..." after all optional named arguments.
It is possible for later argument defaults to refer to prior arguments,
but not the other way around. They must be prefixed with "a:", as with all
arguments.
Example that works: >
:function Okay(mandatory, optional = a:mandatory)
:endfunction
Example that does NOT work: >
:function NoGood(first = a:second, second = 10)
:endfunction
<
When not using "...", the number of arguments in a function call must be at
least equal to the number of mandatory named arguments. When using "...", the
number of arguments may be larger than the total of mandatory and optional
arguments.
*local-variables*
Inside a function local variables can be used. These will disappear when the
function returns. Global variables need to be accessed with "g:".
Inside functions local variables are accessed without prepending anything.
But you can also prepend "l:" if you like. This is required for some reserved
names, such as "count".
Example: >
:function Table(title, ...)
: echohl Title
: echo a:title
: echohl None
: echo a:0 .. " items:"
: for s in a:000
: echon ' ' .. s
: endfor
:endfunction
This function can then be called with: >
call Table("Table", "line1", "line2")
call Table("Empty Table")
To return more than one value, return a |List|: >
:function Compute(n1, n2)
: if a:n2 == 0
: return ["fail", 0]
: endif
: return ["ok", a:n1 / a:n2]
:endfunction
This function can then be called with: >
:let [success, div] = Compute(102, 6)
:if success == "ok"
: echo div
:endif
<
==============================================================================
2. Calling a fuction ~
*:cal* *:call* *E107*
:[range]cal[l] {name}([arguments])
Call a function. The name of the function and its arguments
are as specified with `:function`. Up to 20 arguments can be
used. The returned value is discarded.
In |Vim9| script using `:call` is optional, these two lines do
the same thing: >
call SomeFunc(arg)
SomeFunc(arg)
< Without a range and for functions that accept a range, the
function is called once. When a range is given the cursor is
positioned at the start of the first line before executing the
function.
When a range is given and the function doesn't handle it
itself, the function is executed for each line in the range,
with the cursor in the first column of that line. The cursor
is left at the last line (possibly moved by the last function
call). The arguments are re-evaluated for each line. Thus
this works:
*function-range-example* >
:function Mynumber(arg)
: echo line(".") .. " " .. a:arg
:endfunction
:1,5call Mynumber(getline("."))
<
The "a:firstline" and "a:lastline" are defined anyway, they
can be used to do something different at the start or end of
the range.
Example of a function that handles the range itself: >
:function Cont() range
: execute (a:firstline + 1) .. "," .. a:lastline .. 's/^/\t\\ '
:endfunction
:4,8call Cont()
<
This function inserts the continuation character "\" in front
of all the lines in the range, except the first one.
When the function returns a composite value it can be further
dereferenced, but the range will not be used then. Example: >
:4,8call GetDict().method()
< Here GetDict() gets the range but method() does not.
*E117*
When a function cannot be found the error "E117: Unknown function" will be
given. If the function was using an autoload path or an autoload import and
the script is a |Vim9| script, this may also be caused by the function not
being exported.
*E132*
The recursiveness of user functions is restricted with the |'maxfuncdepth'|
option.
It is also possible to use `:eval`. It does not support a range, but does
allow for method chaining, e.g.: >
eval GetList()->Filter()->append('$')
A function can also be called as part of evaluating an expression or when it
is used as a method: >
let x = GetList()
let y = GetList()->Filter()
==============================================================================
3. Cleaning up in a function ~
*:defer*
:defer {func}({args}) Call {func} when the current function is done.
{args} are evaluated here.
Quite often a command in a function has a global effect, which must be undone
when the function finishes. Handling this in all kinds of situations can be a
hassle. Especially when an unexpected error is encountered. This can be done
with `try` / `finally` blocks, but this gets complicated when there is more
than one.
A much simpler solution is using `defer`. It schedules a function call when
the function is returning, no matter if there is an error. Example: >
func Filter(text) abort
call writefile(a:text, 'Tempfile')
call system('filter < Tempfile > Outfile')
call Handle('Outfile')
call delete('Tempfile')
call delete('Outfile')
endfunc
Here 'Tempfile' and 'Outfile' will not be deleted if something causes the
function to abort. `:defer` can be used to avoid that: >
func Filter(text) abort
call writefile(a:text, 'Tempfile')
defer delete('Tempfile')
defer delete('Outfile')
call system('filter < Tempfile > Outfile')
call Handle('Outfile')
endfunc
Note that deleting "Outfile" is scheduled before calling system(), since it
can be created even when `system()` fails.
The deferred functions are called in reverse order, the last one added is
executed first. A useless example: >
func Useless() abort
for s in range(3)
defer execute('echomsg "number ' .. s .. '"')
endfor
endfunc
Now `:messages` shows:
number 2
number 1
number 0
Any return value of the deferred function is discarded. The function cannot
be followed by anything, such as "->func" or ".member". Currently `:defer
GetArg()->TheFunc()` does not work, it may work in a later version.
Errors are reported but do not cause aborting execution of deferred functions.
No range is accepted. The function can be a partial with extra arguments, but
not with a dictionary. *E1300*
==============================================================================
4. Automatically loading functions ~
*autoload-functions*
When using many or large functions, it's possible to automatically define them
only when they are used. There are two methods: with an autocommand and with
the "autoload" directory in 'runtimepath'.
In |Vim9| script there is also an autoload mechanism for imported scripts, see
|import-autoload|.
Using an autocommand ~
This is introduced in the user manual, section |51.4|.
The autocommand is useful if you have a plugin that is a long Vim script file.
You can define the autocommand and quickly quit the script with `:finish`.
That makes Vim startup faster. The autocommand should then load the same file
again, setting a variable to skip the `:finish` command.
Use the FuncUndefined autocommand event with a pattern that matches the
function(s) to be defined. Example: >
:au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
The file "~/vim/bufnetfuncs.vim" should then define functions that start with
"BufNet". Also see |FuncUndefined|.
Using an autoload script ~
*autoload* *E746*
This is introduced in the user manual, section |52.2|.
Using a script in the "autoload" directory is simpler, but requires using
exactly the right file name. A function that can be autoloaded has a name
like this: >
:call filename#funcname()
These functions are always global, in Vim9 script "g:" needs to be used: >
:call g:filename#funcname()
When such a function is called, and it is not defined yet, Vim will search the
"autoload" directories in 'runtimepath' for a script file called
"filename.vim". For example "~/.vim/autoload/filename.vim". That file should
then define the function like this: >
function filename#funcname()
echo "Done!"
endfunction
The file name and the name used before the # in the function must match
exactly, and the defined function must have the name exactly as it will be
called. In Vim9 script the "g:" prefix must be used: >
function g:filename#funcname()
or for a compiled function: >
def g:filename#funcname()
It is possible to use subdirectories. Every # in the function name works like
a path separator. Thus when calling a function: >
:call foo#bar#func()
Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
This also works when reading a variable that has not been set yet: >
:let l = foo#bar#lvar
However, when the autoload script was already loaded it won't be loaded again
for an unknown variable.
When assigning a value to such a variable nothing special happens. This can
be used to pass settings to the autoload script before it's loaded: >
:let foo#bar#toggle = 1
:call foo#bar#func()
Note that when you make a mistake and call a function that is supposed to be
defined in an autoload script, but the script doesn't actually define the
function, you will get an error message for the missing function. If you fix
the autoload script it won't be automatically loaded again. Either restart
Vim or manually source the script.
Also note that if you have two script files, and one calls a function in the
other and vice versa, before the used function is defined, it won't work.
Avoid using the autoload functionality at the toplevel.
In |Vim9| script you will get error *E1263* if you define a function with
a "#" character in the name. You should use a name without "#" and use
`:export`.
Hint: If you distribute a bunch of scripts you can pack them together with the
|vimball| utility. Also read the user manual |distribute-script|.
vim:tw=78:ts=8:noet:ft=help:norl:
+21 -13
View File
@@ -268,14 +268,15 @@ when it doesn't, append !: >
You cannot `unlet` script-local variables in |Vim9| script, only in legacy
script.
When a script finishes, the local variables declared there will not be
deleted. Functions defined in the script can use them. Example:
When a script has been processed to the end, the local variables declared
there will not be deleted. Functions defined in the script can use them.
Example:
>
vim9script
var counter = 0
def g:GetCount(): number
s:counter += 1
return s:counter
counter += 1
return counter
enddef
Every time you call the function it will return the next count: >
@@ -736,6 +737,8 @@ String manipulation: *string-functions*
fnameescape() escape a file name for use with a Vim command
tr() translate characters from one set to another
strtrans() translate a string to make it printable
keytrans() translate internal keycodes to a form that
can be used by |:map|
tolower() turn a string to lowercase
toupper() turn a string to uppercase
charclass() class of a character
@@ -791,14 +794,16 @@ List manipulation: *list-functions*
reduce() reduce a List to a value
slice() take a slice of a List
sort() sort a List
reverse() reverse the order of a List
reverse() reverse the order of a List or Blob
uniq() remove copies of repeated adjacent items
split() split a String into a List
join() join List items into a String
range() return a List with a sequence of numbers
string() String representation of a List
call() call a function with List as arguments
index() index of a value in a List
index() index of a value in a List or Blob
indexof() index in a List or Blob where an expression
evaluates to true
max() maximum value in a List
min() minimum value in a List
count() count number of times a value appears in a List
@@ -1035,6 +1040,7 @@ Command line: *command-line-functions*
getcmdpos() get position of the cursor in the command line
getcmdscreenpos() get screen position of the cursor in the
command line
setcmdline() set the current command line
setcmdpos() set position of the cursor in the command line
getcmdtype() return the current command-line type
getcmdwintype() return the current command-line window type
@@ -1307,6 +1313,14 @@ Prompt Buffer: *promptbuffer-functions*
prompt_setinterrupt() set interrupt callback for a buffer
prompt_setprompt() set the prompt text for a buffer
Registers: *register-functions*
getreg() get contents of a register
getreginfo() get information about a register
getregtype() get type of a register
setreg() set contents and type of a register
reg_executing() return the name of the register being executed
reg_recording() return the name of the register being recorded
Text Properties: *text-property-functions*
prop_add() attach a property at a position
prop_add_list() attach a property at multiple positions
@@ -1338,6 +1352,7 @@ Various: *various-functions*
did_filetype() check if a FileType autocommand was used
eventhandler() check if invoked by an event handler
getpid() get process ID of Vim
getscriptinfo() get list of sourced vim scripts
getimstatus() check if IME status is active
interrupt() interrupt script execution
windowsversion() get MS-Windows version
@@ -1349,13 +1364,6 @@ Various: *various-functions*
undofile() get the name of the undo file
undotree() return the state of the undo tree
getreg() get contents of a register
getreginfo() get information about a register
getregtype() get type of a register
setreg() set contents and type of a register
reg_executing() return the name of the register being executed
reg_recording() return the name of the register being recorded
shiftwidth() effective value of 'shiftwidth'
wordcount() get byte/word/char count of buffer
+11 -8
View File
@@ -332,7 +332,8 @@ g8 Print the hex values of the bytes used in the
*+ARP* Amiga only: ARP support included
B *+arabic* |Arabic| language support
B *+autochdir* support 'autochdir' option
T *+autocmd* |:autocmd|, automatic commands
T *+autocmd* |:autocmd|, automatic commands. Always enabled since
8.0.1564
H *+autoservername* Automatically enable |clientserver|
m *+balloon_eval* |balloon-eval| support in the GUI. Included when
compiling with supported GUI (Motif, GTK, GUI) and
@@ -341,8 +342,8 @@ m *+balloon_eval* |balloon-eval| support in the GUI. Included when
H *+balloon_eval_term* |balloon-eval| support in the terminal,
'balloonevalterm'
N *+browse* |:browse| command
N *+builtin_terms* some terminals builtin |builtin-terms|
B *++builtin_terms* maximal terminals builtin |builtin-terms|
T *++builtin_terms* maximal terminals builtin |builtin-terms| Always
enabled since 9.0.0280
N *+byte_offset* support for 'o' flag in 'statusline' option, "go"
and ":goto" commands.
m *+channel* inter process communication |channel|
@@ -373,7 +374,8 @@ N *+eval* expression evaluation |eval.txt|
T *+ex_extra* always on now, used to be for Vim's extra Ex commands
N *+extra_search* |'hlsearch'| and |'incsearch'| options.
- *+farsi* Removed: |farsi| language
N *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>|
T *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>| Always enabled since
9.0.265
N *+find_in_path* include file searches: |[I|, |:isearch|,
|CTRL-W_CTRL-I|, |:checkpath|, etc.
N *+folding* |folding|
@@ -433,7 +435,8 @@ T *+num64* 64-bit Number support |Number|
m *+odbeditor* MacVim only: ODB Editor Protocol support |odbeditor|
m *+ole* Win32 GUI only: |ole-interface|
N *+packages* Loading |packages|
N *+path_extra* Up/downwards search in 'path' and 'tags'
T *+path_extra* Up/downwards search in 'path' and 'tags' Always
enabled since 9.0.0270
m *+perl* Perl interface |perl|
m *+perl/dyn* Perl interface |perl-dynamic| |/dyn|
N *+persistent_undo* Persistent undo |undo-persistence|
@@ -472,7 +475,7 @@ m *+terminal* Support for terminal window |terminal|
*+terminfo* uses |terminfo| instead of termcap
N *+termresponse* support for |t_RV| and |v:termresponse|
B *+termguicolors* 24-bit color in xterm-compatible terminals support
N *+textobjects* |text-objects| selection
T *+textobjects* |text-objects| selection. Always enabled since 9.0.0222.
N *+textprop* |text-properties|
*+tgetent* non-Unix only: able to use external termcap
N *+timers* the |timer_start()| function
@@ -491,8 +494,8 @@ T *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
T *+visualextra* extra Visual mode commands |blockwise-operators|
T *+vreplace* |gR| and |gr|
*+vtp* on MS-Windows console: support for 'termguicolors'
N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'|
T *+wildignore* |'wildignore'| Always enabled since 9.0.0278
T *+wildmenu* |'wildmenu'|| Always enabled since 9.0.0279
T *+windows* more than one window; Always enabled since 8.0.1118.
m *+writebackup* |'writebackup'| is default on
m *+xim* X input method |xim|
+3 -3
View File
@@ -72,7 +72,7 @@ Command line completion in a popup menu ~
Before there was the 'wildmenu' option, which uses the space of one line above
the statusline to show matches. Only a few matches fit there.
Now a popup menu can be used by setting "wildoptions' to "pum". This allows
Now a popup menu can be used by setting 'wildoptions' to "pum". This allows
for showing many more matches. This requires redrawing more of the display,
but since computers are fast enough that is not a problem.
@@ -336,7 +336,7 @@ Hide cursor when sleeping using |:sleep!|.
Add "multispace" to 'listchars' to show two or more spaces no matter where
they appear. Add "leadmultispace" to 'listchars' to show two or more leading
spaces. Add "lead" to 'listchars' to set the character used to show leading
spaces. Support specifying a character using the hexdecimal notation in
spaces. Support specifying a character using the hexadecimal notation in
'listchars' (\x, \u and \U).
Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.
@@ -28248,7 +28248,7 @@ Files: runtime/doc/repeat.txt, src/scriptfile.c, src/vim9script.c,
src/proto/vim9script.pro, src/testdir/test_source.vim
Patch 8.2.4608
Problem: getcompletion() does not work properly when 'wildoptions
Problem: getcompletion() does not work properly when 'wildoptions'
contains "fuzzy".
Solution: Do not use addstar(). (Yegappan Lakshmanan, closes #9992,
closes #9986)
+46 -9
View File
@@ -1,4 +1,4 @@
*vim9.txt* For Vim version 9.0. Last change: 2022 Jun 25
*vim9.txt* For Vim version 9.0. Last change: 2022 Sep 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -107,7 +107,7 @@ script and `:def` functions; details are below:
`:t`
`:xit`
- Some commands, especially those used for flow control, cannot be shortened.
E.g., `:throw` cannot be written as `:th`. *E839*
E.g., `:throw` cannot be written as `:th`.
- You cannot use curly-braces names.
- A range before a command must be prefixed with a colon: >
:%s/this/that
@@ -281,7 +281,7 @@ start with an upper case letter even when using the "s:" prefix. In legacy
script "s:funcref" could be used, because it could not be referred to with
"funcref". In Vim9 script it can, therefore "s:Funcref" must be used to avoid
that the name interferes with builtin functions.
*vim9-s-namespace*
*vim9-s-namespace* *E1268*
The use of the "s:" prefix is not supported at the Vim9 script level. All
functions and variables without a prefix are script-local.
@@ -857,6 +857,8 @@ No curly braces expansion ~
Command modifiers are not ignored ~
*E1176*
Using a command modifier for a command that does not use it gives an error.
*E1082*
Also, using a command modifier without a following command is now an error.
Dictionary literals ~
@@ -911,6 +913,12 @@ Comparators ~
The 'ignorecase' option is not used for comparators that use strings.
Thus "=~" works like "=~#".
"is" and "isnot" (|expr-is| and |expr-isnot|) when used on strings now return
false. In legacy script they just compare the strings, in |Vim9| script they
check identity, and strings are copied when used, thus two strings are never
the same (this might change some day if strings are not copied but reference
counted).
Abort after error ~
@@ -1234,6 +1242,9 @@ variables can be accessed without the "s:" prefix. They must be defined
before the function is compiled. If the script the function is defined in is
legacy script, then script-local variables must be accessed with the "s:"
prefix if they do not exist at the time of compiling.
*E1269*
Script-local variables in a |Vim9| script must be declared at the script
level. They cannot be created in a function, also not in a legacy function.
*:defc* *:defcompile*
:defc[ompile] Compile functions defined in the current script that
@@ -1300,7 +1311,7 @@ Make sure to define the breakpoint before compiling the outer function.
The "inloop" variable will exist only once, all closures put in the list refer
to the same instance, which in the end will have the value 4. This is
efficient, also when looping many times. If you do want a separate context
for each closure call a function to define it: >
for each closure, call a function to define it: >
def GetClosure(i: number): func
var infunc = i
return () => infunc
@@ -1316,6 +1327,30 @@ for each closure call a function to define it: >
In some situations, especially when calling a Vim9 closure from legacy
context, the evaluation will fail. *E1248*
Note that at the script level the loop variable will be invalid after the
loop, also when used in a closure that is called later, e.g. with a timer.
This will generate error |E1302|: >
for n in range(4)
timer_start(500 * n, (_) => {
echowin n
})
endfor
You need to create a closure to store the current value of "n", so that it is
evaluated at the time the closure is created: >
def GetClosure(nr: number): func
return (_) => {
echowindow nr
}
enddef
for n in range(4)
timer_start(500 * n, GetClosure(n))
endfor
Using `echowindow` is useful in a timer, the messages go into a popup and will
not interfere with what the user is doing when it triggers.
Converting a function from legacy to Vim9 ~
*convert_legacy_function_to_vim9*
@@ -1492,6 +1527,8 @@ value is not actually changed. If you need to change the type, e.g. to change
it to a string, use the |string()| function. Or use |str2nr()| to convert a
string to a number.
If a type is given where it is not expected you can get *E1272* .
Type inference ~
*type-inference*
@@ -1605,7 +1642,7 @@ type, it can not be used in Vim9 script.
*E1211* *E1217* *E1218* *E1219* *E1220* *E1221*
*E1222* *E1223* *E1224* *E1225* *E1226* *E1227*
*E1228* *E1238* *E1250* *E1251* *E1252* *E1253*
*E1256*
*E1256* *E1297* *E1298* *E1301*
Types are checked for most builtin functions to make it easier to spot
mistakes.
@@ -1696,8 +1733,8 @@ be exported. {not implemented yet: class, interface}
Import ~
*:import* *:imp* *E1094* *E1047* *E1262*
*E1048* *E1049* *E1053* *E1071* *E1236*
*:import* *:imp* *E1094* *E1047* *E1262*
*E1048* *E1049* *E1053* *E1071* *E1088* *E1236*
The exported items can be imported in another script. The import syntax has
two forms. The simple form: >
import {filename}
@@ -1766,7 +1803,7 @@ line, there can be no line break: >
name # Error!
echo that
.name # Error!
< *import-map*
When you've imported a function from one script into a vim9 script you can
refer to the imported function in a mapping by prefixing it with |<SID>|: >
noremap <silent> ,a :call <SID>name.Function()<CR>
@@ -1810,7 +1847,7 @@ defined. This does not apply to autoload imports, see the next section.
Importing an autoload script ~
*vim9-autoload*
*vim9-autoload* *import-autoload*
For optimal startup speed, loading scripts should be postponed until they are
actually needed. Using the autoload mechanism is recommended:
*E1264*
+14 -9
View File
@@ -183,6 +183,8 @@ CTRL-W v *CTRL-W_v*
3. 'eadirection' isn't "ver", and
4. one of the other windows is wider than the current or new
window.
If N was given make the new window N columns wide, if
possible.
Note: In other places CTRL-Q does the same as CTRL-V, but here
it doesn't!
@@ -254,9 +256,16 @@ and 'winminwidth' are relevant.
*:vert* *:vertical*
:vert[ical] {cmd}
Execute {cmd}. If it contains a command that splits a window,
it will be split vertically.
it will be split vertically. For `vertical wincmd =` windows
will be equalized only vertically.
Doesn't work for |:execute| and |:normal|.
*:hor* *:horizontal*
:hor[izontal] {cmd}
Execute {cmd}. Currently only makes a difference for
`horizontal wincmd =`, which will equalize windows only
horizontally.
:lefta[bove] {cmd} *:lefta* *:leftabove*
:abo[veleft] {cmd} *:abo* *:aboveleft*
Execute {cmd}. If it contains a command that splits a window,
@@ -551,6 +560,10 @@ CTRL-W = Make all windows (almost) equally high and wide, but use
'winheight' and 'winwidth' for the current window.
Windows with 'winfixheight' set keep their height and windows
with 'winfixwidth' set keep their width.
To equalize only vertically (make window equally high) use
`vertical wincmd =`
To equalize only horizontally (make window equally wide) use
`horizontal wincmd =`
:res[ize] -N *:res* *:resize* *CTRL-W_-*
CTRL-W - Decrease current window height by N (default 1).
@@ -841,30 +854,22 @@ CTRL-W CTRL-F Split current window in two. Edit file name under cursor.
If the name is a hypertext link that looks like
"type://machine/path", only "/path" is used.
If a count is given, the count'th matching file is edited.
{not available when the |+file_in_path| feature was disabled
at compile time}
CTRL-W F *CTRL-W_F*
Split current window in two. Edit file name under cursor and
jump to the line number following the file name. See |gF| for
details on how the line number is obtained.
{not available when the |+file_in_path| feature was disabled
at compile time}
CTRL-W gf *CTRL-W_gf*
Open a new tab page and edit the file name under the cursor.
Like "tab split" and "gf", but the new tab page isn't created
if the file does not exist.
{not available when the |+file_in_path| feature was disabled
at compile time}
CTRL-W gF *CTRL-W_gF*
Open a new tab page and edit the file name under the cursor
and jump to the line number following the file name. Like
"tab split" and "gF", but the new tab page isn't created if
the file does not exist.
{not available when the |+file_in_path| feature was disabled
at compile time}
CTRL-W gt *CTRL-W_gt*
Go to next tab page, same as `gt`.
+51 -16
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Jul 5
" Last Change: 2022 Sep 09
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -172,6 +172,9 @@ au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm()
" Assembly - Macro (VAX)
au BufNewFile,BufRead *.mar setf vmasm
" Astro
au BufNewFile,BufRead *.astro setf astro
" Atlas
au BufNewFile,BufRead *.atl,*.as setf atlas
@@ -259,7 +262,7 @@ au BufNewFile,BufRead *.bb,*.bbappend,*.bbclass,*/build/conf/*.conf,*/meta{-*,}/
au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml
" BSDL
au BufNewFile,BufRead *bsd,*.bsdl setf bsdl
au BufNewFile,BufRead *.bsd,*.bsdl setf bsdl
" Bazel (http://bazel.io)
autocmd BufRead,BufNewFile *.bzl,*.bazel,WORKSPACE setf bzl
@@ -693,7 +696,10 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
au BufNewFile,BufRead *.gd setf gdscript
" Godot resource
au BufRead,BufNewFile *.tscn,*.tres setf gdresource
au BufRead,BufNewFile *.tscn,*.tres setf gdresource
" Godot shader
au BufRead,BufNewFile *.gdshader,*.shader setf gdshader
" Gedcom
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
@@ -714,9 +720,16 @@ au BufNewFile,BufRead *.git/worktrees/*/config.worktree setf gitconfig
au BufNewFile,BufRead .gitmodules,*.git/modules/*/config setf gitconfig
if !empty($XDG_CONFIG_HOME)
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/attributes setf gitattributes
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/ignore setf gitignore
endif
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
au BufNewFile,BufRead .gitattributes,*.git/info/attributes setf gitattributes
au BufNewFile,BufRead */.config/git/attributes setf gitattributes
au BufNewFile,BufRead */etc/gitattributes setf gitattributes
au BufNewFile,BufRead .gitignore,*.git/info/exclude setf gitignore
au BufNewFile,BufRead */.config/git/ignore setf gitignore
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
au BufNewFile,BufRead *.git/*
\ if getline(1) =~# '^\x\{40,\}\>\|^ref: ' |
\ setf git |
@@ -859,9 +872,13 @@ au BufNewFile,BufRead *.hb setf hb
" Httest
au BufNewFile,BufRead *.htt,*.htb setf httest
" i3 (and sway)
au BufNewFile,BufRead */i3/config,*/sway/config setf i3config
au BufNewFile,BufRead */.i3/config,*/.sway/config setf i3config
" i3
au BufNewFile,BufRead */i3/config setf i3config
au BufNewFile,BufRead */.i3/config setf i3config
" sway
au BufNewFile,BufRead */sway/config setf swayconfig
au BufNewFile,BufRead */.sway/config setf swayconfig
" Icon
au BufNewFile,BufRead *.icn setf icon
@@ -930,7 +947,7 @@ au BufNewFile,BufRead *.java,*.jav setf java
au BufNewFile,BufRead *.jj,*.jjt setf javacc
" JavaScript, ECMAScript, ES module script, CommonJS script
au BufNewFile,BufRead *.js,*.javascript,*.es,*.mjs,*.cjs setf javascript
au BufNewFile,BufRead *.js,*.jsm,*.javascript,*.es,*.mjs,*.cjs setf javascript
" JavaScript with React
au BufNewFile,BufRead *.jsx setf javascriptreact
@@ -968,6 +985,9 @@ au BufNewFile,BufRead .babelrc,.eslintrc,.prettierrc,.firebaserc setf json
" JSONC
au BufNewFile,BufRead *.jsonc setf jsonc
" Jsonnet
au BufNewFile,BufRead *.jsonnet,*.libjsonnet setf jsonnet
" Julia
au BufNewFile,BufRead *.jl setf julia
@@ -1156,6 +1176,7 @@ au BufNewFile,BufRead *.mf setf mf
" MetaPost
au BufNewFile,BufRead *.mp setf mp
au BufNewFile,BufRead *.mpxl,*.mpiv,*.mpvi let b:mp_metafun = 1 | setf mp
" MGL
au BufNewFile,BufRead *.mgl setf mgl
@@ -1305,7 +1326,7 @@ au BufNewFile,BufRead *.or setf openroad
au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl
" OpenSCAD
au BufNewFile,BufRead *.scad setf openscad
au BufNewFile,BufRead *.scad setf openscad
" Oracle config file
au BufNewFile,BufRead *.ora setf ora
@@ -1380,7 +1401,8 @@ au BufNewFile,BufRead *.pod setf pod
" Also Phtml (was used for PHP 2 in the past).
" Also .ctp for Cake template file.
" Also .phpt for php tests.
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp,*.phpt setf php
" Also .theme for Drupal theme files.
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp,*.phpt,*.theme setf php
" PHP config
au BufNewFile,BufRead php.ini-* setf dosini
@@ -1527,6 +1549,9 @@ au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
" QL
au BufRead,BufNewFile *.ql,*.qll setf ql
" Quarto
au BufRead,BufNewFile *.qmd setf quarto
" Radiance
au BufNewFile,BufRead *.rad,*.mat setf radiance
@@ -1698,6 +1723,9 @@ au BufNewFile,BufRead *.sdl,*.pr setf sdl
" sed
au BufNewFile,BufRead *.sed setf sed
" SubRip
au BufNewFile,BufRead *.srt setf srt
" svelte
au BufNewFile,BufRead *.svelte setf svelte
@@ -1808,7 +1836,7 @@ au BufNewFile,BufRead *.score setf slrnsc
au BufNewFile,BufRead *.st setf st
" Smalltalk (and Rexx, TeX, and Visual Basic)
au BufNewFile,BufRead *.cls call dist#ft#FTcls()
au BufNewFile,BufRead *.cls call dist#ft#FTcls()
" Smarty templates
au BufNewFile,BufRead *.tpl setf smarty
@@ -1915,8 +1943,8 @@ au BufNewFile,BufRead *.cm setf voscm
au BufNewFile,BufRead *.swift setf swift
au BufNewFile,BufRead *.swift.gyb setf swiftgyb
" Swift Intermediate Language
au BufNewFile,BufRead *.sil setf sil
" Swift Intermediate Language or SILE
au BufNewFile,BufRead *.sil call dist#ft#FTsil()
" Sysctl
au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl
@@ -1982,8 +2010,8 @@ au BufRead,BufNewFile *.ttl
" Terminfo
au BufNewFile,BufRead *.ti setf terminfo
" Terraform
au BufRead,BufNewFile *.tfvars setf terraform
" Terraform variables
au BufRead,BufNewFile *.tfvars setf terraform-vars
" TeX
au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex
@@ -2080,6 +2108,11 @@ au BufNewFile,BufRead */.config/upstart/*.override setf upstart
" Vala
au BufNewFile,BufRead *.vala setf vala
" VDM
au BufRead,BufNewFile *.vdmpp,*.vpp setf vdmpp
au BufRead,BufNewFile *.vdmrt setf vdmrt
au BufRead,BufNewFile *.vdmsl,*.vdm setf vdmsl
" Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera
@@ -2549,6 +2582,8 @@ au BufNewFile,BufRead *.txt
\| setf text
\| endif
" Blueprint markup files
au BufNewFile,BufRead *.blp setf blueprint
" Use the filetype detect plugins. They may overrule any of the previously
" detected filetypes.
+23 -21
View File
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Abaqus finite element input file (www.abaqus.com)
" Maintainer: Carl Osterwisch <osterwischc@asme.org>
" Last Change: 2022 May 09
" Maintainer: Carl Osterwisch <costerwi@gmail.com>
" Last Change: 2022 Aug 03
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin") | finish | endif
@@ -46,7 +46,7 @@ if has("folding")
endif
" Set the file browse filter (currently only supported under Win32 gui)
if has("gui_win32") && !exists("b:browsefilter")
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
\ "Abaqus Results (*.dat)\t*.dat\n" .
\ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
@@ -57,7 +57,7 @@ endif
" Define patterns for the matchit plugin
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 1
let b:match_words =
let b:match_words =
\ '\*part:\*end\s*part,' .
\ '\*assembly:\*end\s*assembly,' .
\ '\*instance:\*end\s*instance,' .
@@ -65,25 +65,27 @@ if exists("loaded_matchit") && !exists("b:match_words")
let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words"
endif
" Define keys used to move [count] keywords backward or forward.
noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
if !exists("no_plugin_maps") && !exists("no_abaqus_maps")
" Define keys used to move [count] keywords backward or forward.
noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
" Define key to toggle commenting of the current line or range
noremap <silent><buffer> <LocalLeader><LocalLeader>
\ :call <SID>Abaqus_ToggleComment()<CR>j
function! <SID>Abaqus_ToggleComment() range
if strpart(getline(a:firstline), 0, 2) == "**"
" Un-comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
else
" Comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^/**/'
endif
endfunction
" Define key to toggle commenting of the current line or range
noremap <silent><buffer> <LocalLeader><LocalLeader>
\ :call <SID>Abaqus_ToggleComment()<CR>j
function! <SID>Abaqus_ToggleComment() range
if strpart(getline(a:firstline), 0, 2) == "**"
" Un-comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
else
" Comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^/**/'
endif
endfunction
let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
\ . "|unmap <buffer> <LocalLeader><LocalLeader>"
let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
\ . "|unmap <buffer> <LocalLeader><LocalLeader>"
endif
" Undo must be done in nocompatible mode for <LocalLeader>.
let b:undo_ftplugin = "let b:cpo_save = &cpoptions|"
+16
View File
@@ -0,0 +1,16 @@
" Vim filetype plugin file
" Language: Bitbake
" Maintainer: Gregory Anders <greg@gpanders.com>
" Repository: https://github.com/openembedded/bitbake
" Latest Revision: 2022-07-23
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal commentstring=#%s
setlocal comments=:#
setlocal suffixesadd=.bb,.bbclass
let b:undo_ftplugin = "setl cms< com< sua<"
+89 -91
View File
@@ -1,117 +1,115 @@
" Vim filetype plugin file
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2021 Oct 15
vim9script
# Vim filetype plugin file
# Language: ConTeXt typesetting engine
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
# Former Maintainers: Nikolai Weibull <now@bitwi.se>
# Latest Revision: 2022 Aug 12
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
import autoload '../autoload/context.vim'
b:did_ftplugin = 1
if !exists('current_compiler')
compiler context
endif
let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
setlocal omnifunc=contextcomplete#Complete
let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+'
let g:omni_syntax_group_exclude_context = 'mfTodoComment'
setlocal comments=b:%D,b:%C,b:%M,:%
setlocal commentstring=%\ %s
setlocal formatoptions+=tjcroql2
setlocal omnifunc=context.Complete
setlocal suffixesadd=.tex,.mkxl,.mkvi,.mkiv,.mkii
&l:define = '\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
.. 'def\|\\font\|\\\%(future\)\=let'
.. '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
.. '\|fam\|insert\|if\)'
&l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
if exists("g:loaded_matchit") && !exists("b:match_words")
b:match_ignorecase = 0
b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],\\start\(\a\+\):\\stop\1'
b:undo_ftplugin ..= "| unlet! b:match_ignorecase b:match_words b:match_skip"
endif
let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
\ . 'def\|\\font\|\\\%(future\)\=let'
\ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
\ . '\|fam\|insert\|if\)'
if !get(g:, 'no_context_maps', 0) && !get(g:, 'no_plugin_maps', 0)
const context_regex = {
'beginsection': '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
'endsection': '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
'beginblock': '\\\%(start\|setup\|define\)',
'endblock': '\\\%(stop\|setup\|define\)',
}
let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
def UndoMap(mapping: string, modes: string)
for mode in modes
b:undo_ftplugin ..= printf(" | silent! execute '%sunmap <buffer> %s'", mode, mapping)
endfor
enddef
setlocal suffixesadd=.tex
def MoveAround(count: number, what: string, flags: string)
search(context_regex[what], flags .. 's') # 's' sets previous context mark
var i = 2
while i <= count
search(context_regex[what], flags)
i += 1
endwhile
enddef
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 0
let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
\ '\\start\(\a\+\):\\stop\1'
let b:undo_ftplugin .= " | unlet! b:match_ignorecase b:match_words b:match_skip"
endif
# Macros to move around
nnoremap <silent><buffer> [[ <scriptcmd>MoveAround(v:count1, "beginsection", "bW")<cr>
vnoremap <silent><buffer> [[ <scriptcmd>MoveAround(v:count1, "beginsection", "bW")<cr>
nnoremap <silent><buffer> ]] <scriptcmd>MoveAround(v:count1, "beginsection", "W") <cr>
vnoremap <silent><buffer> ]] <scriptcmd>MoveAround(v:count1, "beginsection", "W") <cr>
nnoremap <silent><buffer> [] <scriptcmd>MoveAround(v:count1, "endsection", "bW")<cr>
vnoremap <silent><buffer> [] <scriptcmd>MoveAround(v:count1, "endsection", "bW")<cr>
nnoremap <silent><buffer> ][ <scriptcmd>MoveAround(v:count1, "endsection", "W") <cr>
vnoremap <silent><buffer> ][ <scriptcmd>MoveAround(v:count1, "endsection", "W") <cr>
nnoremap <silent><buffer> [{ <scriptcmd>MoveAround(v:count1, "beginblock", "bW")<cr>
vnoremap <silent><buffer> [{ <scriptcmd>MoveAround(v:count1, "beginblock", "bW")<cr>
nnoremap <silent><buffer> ]} <scriptcmd>MoveAround(v:count1, "endblock", "W") <cr>
vnoremap <silent><buffer> ]} <scriptcmd>MoveAround(v:count1, "endblock", "W") <cr>
let s:context_regex = {
\ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
\ 'endsection' : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
\ 'beginblock' : '\\\%(start\|setup\|define\)',
\ 'endblock' : '\\\%(stop\|setup\|define\)'
\ }
for mapping in ['[[', ']]', '[]', '][', '[{', ']}']
UndoMap(mapping, 'nv')
endfor
function! s:move_around(count, what, flags, visual)
if a:visual
exe "normal! gv"
endif
call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark
call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
endfunction
# Other useful mappings
const tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'
if !exists("no_plugin_maps") && !exists("no_context_maps")
" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
let b:undo_ftplugin .= " | sil! exe 'nunmap <buffer> [[' | sil! exe 'vunmap <buffer> [['" .
\ " | sil! exe 'nunmap <buffer> ]]' | sil! exe 'vunmap <buffer> ]]'" .
\ " | sil! exe 'nunmap <buffer> []' | sil! exe 'vunmap <buffer> []'" .
\ " | sil! exe 'nunmap <buffer> ][' | sil! exe 'vunmap <buffer> ]['" .
\ " | sil! exe 'nunmap <buffer> [{' | sil! exe 'vunmap <buffer> [{'" .
\ " | sil! exe 'nunmap <buffer> ]}' | sil! exe 'vunmap <buffer> ]}'"
end
" Other useful mappings
if get(g:, 'context_mappings', 1)
let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'
fun! s:tp()
call cursor(search(s:tp_regex, 'bcW') + 1, 1)
def TeXPar()
cursor(search(tp_regex, 'bcW') + 1, 1)
normal! V
call cursor(search(s:tp_regex, 'W') - 1, 1)
endf
cursor(search(tp_regex, 'W') - 1, 1)
enddef
if !exists("no_plugin_maps") && !exists("no_context_maps")
" Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
" Select TeX paragraph
vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
# Reflow paragraphs with mappings like gqtp ("gq TeX paragraph")
onoremap <silent><buffer> tp <scriptcmd>TeXPar()<cr>
# Select TeX paragraph
vnoremap <silent><buffer> tp <scriptcmd>TeXPar()<cr>
" $...$ text object
onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
vnoremap <buffer> i$ T$ot$
vnoremap <buffer> a$ F$of$
# $...$ text object
onoremap <silent><buffer> i$ <scriptcmd>normal! T$vt$<cr>
onoremap <silent><buffer> a$ <scriptcmd>normal! F$vf$<cr>
vnoremap <buffer> i$ T$ot$
vnoremap <buffer> a$ F$of$
let b:undo_ftplugin .= " | sil! exe 'ounmap <buffer> tp' | sil! exe 'vunmap <buffer> tp'" .
\ " | sil! exe 'ounmap <buffer> i$' | sil! exe 'vunmap <buffer> i$'" .
\ " | sil! exe 'ounmap <buffer> a$' | sil! exe 'vunmap <buffer> a$'"
endif
for mapping in ['tp', 'i$', 'a$']
UndoMap(mapping, 'ov')
endfor
endif
" Commands for asynchronous typesetting
command! -buffer -nargs=? -complete=file ConTeXt call context#typeset(<q-args>)
command! -nargs=0 ConTeXtJobStatus call context#job_status()
command! -nargs=0 ConTeXtStopJobs call context#stop_jobs()
# Commands for asynchronous typesetting
command! -buffer -nargs=? -complete=buffer ConTeXt context.Typeset(<q-args>)
command! -buffer -nargs=0 ConTeXtLog context.Log('%')
command! -nargs=0 ConTeXtJobStatus context.JobStatus()
command! -nargs=0 ConTeXtStopJobs context.StopJobs()
let &cpo = s:cpo_save
unlet s:cpo_save
# vim: sw=2 fdm=marker
+53 -42
View File
@@ -1,9 +1,9 @@
" Vim filetype plugin file (GUI menu, folding and completion)
" Language: Debian Changelog
" Maintainer: Debian Vim Maintainers
" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
" Stefano Zacchiroli <zack@debian.org>
" Last Change: 2018-01-28
" Last Change: 2022 Jul 25
" License: Vim License
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim
@@ -35,6 +35,11 @@ if exists('g:did_changelog_ftplugin')
finish
endif
" Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise
" <CR> would not be recognized. See ":help 'cpoptions'".
let s:cpo_save = &cpo
set cpo&vim
" Don't load another plugin (this is global)
let g:did_changelog_ftplugin = 1
@@ -101,13 +106,13 @@ endfunction
" These functions implement the menus
function NewVersion()
" The new entry is unfinalised and shall be changed
amenu disable Changelog.New\ Version
amenu enable Changelog.Add\ Entry
amenu enable Changelog.Close\ Bug
amenu enable Changelog.Set\ Distribution
amenu enable Changelog.Set\ Urgency
amenu disable Changelog.Unfinalise
amenu enable Changelog.Finalise
amenu disable &Changelog.&New\ Version
amenu enable &Changelog.&Add\ Entry
amenu enable &Changelog.&Close\ Bug
amenu enable &Changelog.Set\ &Distribution
amenu enable &Changelog.Set\ &Urgency
amenu disable &Changelog.U&nfinalise
amenu enable &Changelog.&Finalise
call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', ''))
call append(1, '')
call append(2, '')
@@ -117,7 +122,9 @@ function NewVersion()
normal! 1G0
call search(')')
normal! h
normal! 
" ':normal' doens't support key annotation (<c-a>) directly.
" Vim's manual recommends using ':exe' to use key annotation indirectly (backslash-escaping needed though).
exe "normal! \<c-a>"
call setline(1, substitute(getline(1), '-\$\$', '-', ''))
if exists('g:debchangelog_fold_enable')
foldopen
@@ -161,13 +168,13 @@ endfunction
function <SID>UnfinaliseMenu()
" This means the entry shall be changed
amenu disable Changelog.New\ Version
amenu enable Changelog.Add\ Entry
amenu enable Changelog.Close\ Bug
amenu enable Changelog.Set\ Distribution
amenu enable Changelog.Set\ Urgency
amenu disable Changelog.Unfinalise
amenu enable Changelog.Finalise
amenu disable &Changelog.&New\ Version
amenu enable &Changelog.&Add\ Entry
amenu enable &Changelog.&Close\ Bug
amenu enable &Changelog.Set\ &Distribution
amenu enable &Changelog.Set\ &Urgency
amenu disable &Changelog.U&nfinalise
amenu enable &Changelog.&Finalise
endfunction
function Unfinalise()
@@ -179,13 +186,13 @@ endfunction
function <SID>FinaliseMenu()
" This means the entry should not be changed anymore
amenu enable Changelog.New\ Version
amenu disable Changelog.Add\ Entry
amenu disable Changelog.Close\ Bug
amenu disable Changelog.Set\ Distribution
amenu disable Changelog.Set\ Urgency
amenu enable Changelog.Unfinalise
amenu disable Changelog.Finalise
amenu enable &Changelog.&New\ Version
amenu disable &Changelog.&Add\ Entry
amenu disable &Changelog.&Close\ Bug
amenu disable &Changelog.Set\ &Distribution
amenu disable &Changelog.Set\ &Urgency
amenu enable &Changelog.U&nfinalise
amenu disable &Changelog.&Finalise
endfunction
function Finalise()
@@ -198,26 +205,26 @@ endfunction
function <SID>MakeMenu()
amenu &Changelog.&New\ Version :call NewVersion()<CR>
amenu Changelog.&Add\ Entry :call AddEntry()<CR>
amenu Changelog.&Close\ Bug :call CloseBug()<CR>
menu Changelog.-sep- <nul>
amenu &Changelog.&Add\ Entry :call AddEntry()<CR>
amenu &Changelog.&Close\ Bug :call CloseBug()<CR>
menu &Changelog.-sep- <nul>
amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable")<CR>
amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen")<CR>
amenu Changelog.Set\ Distribution.&stable :call Distribution("stable")<CR>
menu Changelog.Set\ Distribution.-sep- <nul>
amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable")<CR>
amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable")<CR>
amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen")<CR>
amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable")<CR>
amenu &Changelog.Set\ &Distribution.&unstable :call Distribution("unstable")<CR>
amenu &Changelog.Set\ &Distribution.&frozen :call Distribution("frozen")<CR>
amenu &Changelog.Set\ &Distribution.&stable :call Distribution("stable")<CR>
menu &Changelog.Set\ &Distribution.-sep- <nul>
amenu &Changelog.Set\ &Distribution.frozen\ unstable :call Distribution("frozen unstable")<CR>
amenu &Changelog.Set\ &Distribution.stable\ unstable :call Distribution("stable unstable")<CR>
amenu &Changelog.Set\ &Distribution.stable\ frozen :call Distribution("stable frozen")<CR>
amenu &Changelog.Set\ &Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable")<CR>
amenu Changelog.Set\ &Urgency.&low :call Urgency("low")<CR>
amenu Changelog.Set\ Urgency.&medium :call Urgency("medium")<CR>
amenu Changelog.Set\ Urgency.&high :call Urgency("high")<CR>
amenu &Changelog.Set\ &Urgency.&low :call Urgency("low")<CR>
amenu &Changelog.Set\ &Urgency.&medium :call Urgency("medium")<CR>
amenu &Changelog.Set\ &Urgency.&high :call Urgency("high")<CR>
menu Changelog.-sep- <nul>
amenu Changelog.U&nfinalise :call Unfinalise()<CR>
amenu Changelog.&Finalise :call Finalise()<CR>
menu &Changelog.-sep- <nul>
amenu &Changelog.U&nfinalise :call Unfinalise()<CR>
amenu &Changelog.&Finalise :call Finalise()<CR>
if <SID>Finalised()
call <SID>FinaliseMenu()
@@ -228,7 +235,7 @@ endfunction
augroup changelogMenu
au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif
au BufLeave * if &filetype == "debchangelog" | silent! aunmenu Changelog | endif
au BufLeave * if &filetype == "debchangelog" | silent! aunmenu &Changelog | endif
augroup END
" }}}
@@ -380,4 +387,8 @@ setlocal omnifunc=DebCompleteBugs
" }}}
" Restore the previous value of 'cpoptions'.
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: set foldmethod=marker:
+13
View File
@@ -0,0 +1,13 @@
" Vim filetype plugin file
" Language: XDG desktop entry
" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
" Last Change: 2022-07-26
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = v:true
setl comments=:#
setl commentstring=#%s
let b:undo_ftplugin = 'setl com< cms<'
+19 -1
View File
@@ -1,11 +1,29 @@
" Elixir filetype plugin
" Language: Elixir
" Maintainer: Mitchell Hanberg <vimNOSPAM@mitchellhanberg.com>
" Last Change: 2022 Apr 20
" Last Change: 2022 August 10
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:save_cpo = &cpo
set cpo&vim
" Matchit support
if exists('loaded_matchit') && !exists('b:match_words')
let b:match_ignorecase = 0
let b:match_words = '\:\@<!\<\%(do\|fn\)\:\@!\>' .
\ ':' .
\ '\<\%(else\|catch\|after\|rescue\)\:\@!\>' .
\ ':' .
\ '\:\@<!\<end\>' .
\ ',{:},\[:\],(:)'
endif
setlocal commentstring=#\ %s
let &cpo = s:save_cpo
unlet s:save_cpo
+24
View File
@@ -0,0 +1,24 @@
" Vim filetype plugin file
" Language: Expect
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2022 Jul 16
if exists("b:did_ftplugin")
finish
endif
" Syntax is similar to Tcl
runtime! ftplugin/tcl.vim
let s:cpo_save = &cpo
set cpo&vim
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Expect Command Files (*.exp)\t*.exp\n" ..
\ "All Files (*.*)\t*.*\n"
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8
+54
View File
@@ -0,0 +1,54 @@
vim9script
# Vim filetype plugin file
# Language: gdscript (Godot game engine scripting language)
# Maintainer: Maxim Kim <habamax@gmail.com>
# Website: https://github.com/habamax/vim-gdscript
if exists("b:did_ftplugin") | finish | endif
b:did_ftplugin = 1
b:undo_ftplugin = 'setlocal cinkeys<'
\ .. '| setlocal indentkeys<'
\ .. '| setlocal commentstring<'
\ .. '| setlocal suffixesadd<'
\ .. '| setlocal foldexpr<'
\ .. '| setlocal foldignore<'
setlocal cinkeys-=0#
setlocal indentkeys-=0#
setlocal suffixesadd=.gd
setlocal commentstring=#\ %s
setlocal foldignore=
setlocal foldexpr=GDScriptFoldLevel()
def GDScriptFoldLevel(): string
var line = getline(v:lnum)
if line =~? '^\s*$'
return "-1"
endif
var sw = shiftwidth()
var indent = indent(v:lnum) / sw
var indent_next = indent(nextnonblank(v:lnum + 1)) / sw
if indent_next > indent && line =~ ':\s*$'
return $">{indent_next}"
else
return $"{indent}"
endif
enddef
# Next/Previous section
def NextSection(back: bool, cnt: number)
for n in range(cnt)
search('^\s*func\s', back ? 'bW' : 'W')
endfor
enddef
nnoremap <silent><buffer> ]] <scriptcmd>NextSection(false, v:count1)<CR>
nnoremap <silent><buffer> [[ <scriptcmd>NextSection(true, v:count1)<CR>
xmap <buffer><expr> ]] $'<C-\><C-N>{v:count1}]]m>gv'
xmap <buffer><expr> [[ $'<C-\><C-N>{v:count1}[[m>gv'
+12
View File
@@ -0,0 +1,12 @@
vim9script
# Vim filetype plugin file
# Language: Godot shading language
# Maintainer: Maxim Kim <habamax@gmail.com>
if exists("b:did_ftplugin") | finish | endif
b:did_ftplugin = 1
b:undo_ftplugin = 'setlocal suffixesadd<'
setlocal suffixesadd=.gdshader
+13
View File
@@ -0,0 +1,13 @@
" Vim filetype plugin
" Language: git attributes
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Last Change: 2022 Sep 08
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setl comments=:# commentstring=#\ %s
let b:undo_ftplugin = 'setl com< cms<'
+13
View File
@@ -0,0 +1,13 @@
" Vim filetype plugin
" Language: git ignore
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Last Change: 2022 Sep 10
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setl comments=:# commentstring=#\ %s
let b:undo_ftplugin = 'setl com< cms<'
+30 -28
View File
@@ -1,16 +1,14 @@
" Vim filetype plugin file
" Language: html
"
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009
" Language: HTML
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp
" Last Changed: 2022 Jul 20
if exists("b:did_ftplugin") | finish | endif
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C
@@ -18,36 +16,40 @@ setlocal matchpairs+=<:>
setlocal commentstring=<!--%s-->
setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
if exists("g:ft_html_autocomment") && (g:ft_html_autocomment == 1)
setlocal formatoptions-=t formatoptions+=croql
let b:undo_ftplugin = "setlocal comments< commentstring< matchpairs<"
if get(g:, "ft_html_autocomment", 0)
setlocal formatoptions-=t formatoptions+=croql
let b:undo_ftplugin ..= " | setlocal formatoptions<"
endif
if exists('&omnifunc')
setlocal omnifunc=htmlcomplete#CompleteTags
call htmlcomplete#DetectOmniFlavor()
let b:undo_ftplugin ..= " | setlocal omnifunc<"
endif
" HTML: thanks to Johannes Zellner and Benji Fisher.
if exists("loaded_matchit")
let b:match_ignorecase = 1
let b:match_words = '<:>,' .
\ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
\ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
" HTML: thanks to Johannes Zellner and Benji Fisher.
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 1
let b:match_words = '<!--:-->,' ..
\ '<:>,' ..
\ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' ..
\ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' ..
\ '<\@<=\([^/!][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
let b:html_set_match_words = 1
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:html_set_match_words"
endif
" Change the :browse e filter to primarily show HTML-related files.
if has("gui_win32")
let b:browsefilter="HTML Files (*.html,*.htm)\t*.htm;*.html\n" .
\ "JavaScript Files (*.js)\t*.js\n" .
\ "Cascading StyleSheets (*.css)\t*.css\n" .
\ "All Files (*.*)\t*.*\n"
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "HTML Files (*.html *.htm)\t*.htm;*.html\n" ..
\ "JavaScript Files (*.js)\t*.js\n" ..
\ "Cascading StyleSheets (*.css)\t*.css\n" ..
\ "All Files (*.*)\t*.*\n"
let b:html_set_browsefilter = 1
let b:undo_ftplugin ..= " | unlet! b:browsefilter b:html_set_browsefilter"
endif
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc< comments< formatoptions<" .
\ " | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter"
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
+34 -32
View File
@@ -2,7 +2,7 @@
" Language: J
" Maintainer: David Bürgin <dbuergin@gluet.ch>
" URL: https://gitlab.com/glts/vim-j
" Last Change: 2015-10-27
" Last Change: 2022-08-06
if exists('b:did_ftplugin')
finish
@@ -29,41 +29,43 @@ let b:undo_ftplugin = 'setlocal suffixesadd< includeexpr< include< path< matchpa
" Section movement with ]] ][ [[ []. The start/end patterns below are amended
" inside the function in order to avoid matching on the current cursor line.
let s:sectionstart = '\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\)\>.*'
let s:sectionend = '\s*)\s*'
if !exists('no_plugin_maps') && !exists('no_j_maps')
let s:sectionstart = '\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\)\>.*'
let s:sectionend = '\s*)\s*'
function! s:SearchSection(end, backwards, visualmode) abort
if a:visualmode !=# ''
normal! gv
endif
let l:flags = a:backwards ? 'bsW' : 'sW'
if a:end
call search('^' . s:sectionend . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags)
else
call search('^' . s:sectionstart . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags)
endif
endfunction
function! s:SearchSection(end, backwards, visualmode) abort
if a:visualmode !=# ''
normal! gv
endif
let l:flags = a:backwards ? 'bsW' : 'sW'
if a:end
call search('^' . s:sectionend . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags)
else
call search('^' . s:sectionstart . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags)
endif
endfunction
noremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, '')<CR>
xnoremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, visualmode())<CR>
sunmap <buffer> ]]
noremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, '')<CR>
xnoremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, visualmode())<CR>
sunmap <buffer> ][
noremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, '')<CR>
xnoremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, visualmode())<CR>
sunmap <buffer> [[
noremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, '')<CR>
xnoremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, visualmode())<CR>
sunmap <buffer> []
noremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, '')<CR>
xnoremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, visualmode())<CR>
sunmap <buffer> ]]
noremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, '')<CR>
xnoremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, visualmode())<CR>
sunmap <buffer> ][
noremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, '')<CR>
xnoremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, visualmode())<CR>
sunmap <buffer> [[
noremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, '')<CR>
xnoremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, visualmode())<CR>
sunmap <buffer> []
let b:undo_ftplugin .= ' | silent! execute "unmap <buffer> ]]"'
\ . ' | silent! execute "unmap <buffer> ]["'
\ . ' | silent! execute "unmap <buffer> [["'
\ . ' | silent! execute "unmap <buffer> []"'
let b:undo_ftplugin .= ' | silent! execute "unmap <buffer> ]]"'
\ . ' | silent! execute "unmap <buffer> ]["'
\ . ' | silent! execute "unmap <buffer> [["'
\ . ' | silent! execute "unmap <buffer> []"'
endif
" Browse dialog filter on Windows (see ":help browsefilter")
if has('gui_win32') && !exists('b:browsefilter')
" Browse dialog filter on Windows and GTK (see ":help browsefilter")
if (has('gui_win32') || has('gui_gtk')) && !exists('b:browsefilter')
let b:browsefilter = "J Script Files (*.ijs)\t*.ijs\n"
\ . "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
+17
View File
@@ -0,0 +1,17 @@
" Vim filetype plugin
" Language: Jsonnet
" Maintainer: Cezary Drożak <cezary@drozak.net>
" URL: https://github.com/google/vim-jsonnet
" Last Change: 2022-09-08
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
setlocal commentstring=//\ %s
let b:undo_ftplugin = "setlocal commentstring<"

Some files were not shown because too many files have changed in this diff Show More