Compare commits

...

443 Commits

Author SHA1 Message Date
Kazuki Sakamoto 67c67d1bd2 MacVim Snapshot 126
Binary targets macOS 10.8+

- Vim patch 8.0.0297

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-02-03 07:45:19 -08:00
Kazuki Sakamoto 54e5082d7c Merge remote-tracking branch 'vim/master' 2017-02-02 18:06:17 -08:00
Bram Moolenaar 03ff9bcbc9 patch 8.0.0297: double free on exit when using a closure
Problem:    Double free on exit when using a closure. (James McCoy)
Solution:   Split free_al_functions in two parts. (closes #1428)
2017-02-02 22:59:27 +01:00
Bram Moolenaar fd8983b09c patch 8.0.0296: bracketed paste can only append, not insert
Problem:    Bracketed paste can only append, not insert.
Solution:   When the cursor is in the first column insert the text.
2017-02-02 22:21:29 +01:00
Bram Moolenaar 7a073549a3 patch 8.0.0295: test_viml hangs
Problem:    test_viml hangs.
Solution:   Put resetting 'more' before sourcing the script.
2017-02-01 23:17:36 +01:00
Bram Moolenaar 79da563cf9 patch 8.0.0294: argument list is not stored correctly in a session file
Problem:    Argument list is not stored correctly in a session file.
            (lgpasquale)
Solution:   Use "$argadd" instead of "argadd". (closes #1434)
2017-02-01 22:52:44 +01:00
Bram Moolenaar e5f2a075e3 patch 8.0.0293: some tests have a one or three second wait
Problem:    Some tests have a one or three second wait.
Solution:   Reset the 'showmode' option.  Use a test time of one to disable
            sleep after an error or warning message.
2017-02-01 22:31:49 +01:00
Bram Moolenaar a2f28859bf patch 8.0.0292: the stat test is a bit slow
Problem:    The stat test is a bit slow.
Solution:   Remove a couple of sleep comments and reduce another.
2017-02-01 22:05:28 +01:00
Bram Moolenaar 23fa81d222 patch 8.0.0291: Visual block insertion does not insert in all lines
Problem:    Visual block insertion does not insert in all lines.
Solution:   Don't bail out of insert too early. Add a test. (Christian
            Brabandt, closes #1290)
2017-02-01 21:50:21 +01:00
Bram Moolenaar 04e87b72c5 patch 8.0.0290: cursor positioning wrong if wide character wraps
Problem:    If a wide character doesn't fit at the end of the screen line, and
            the line doesn't fit on the screen, then the cursor position may
            be wrong. (anliting)
Solution:   Don't skip over wide character. (Christian Brabandt, closes #1408)
2017-02-01 21:23:10 +01:00
Bram Moolenaar 21d7c9b601 patch 8.0.0289: no test for "ga" and :ascii
Problem:    No test for "ga" and :ascii.
Solution:   Add a test. (Dominique Pelle, closes #1429)
2017-02-01 20:53:38 +01:00
Bram Moolenaar 4e032e1b17 patch 8.0.0288: errors reported while running tests
Problem:    Errors reported while running tests.
Solution:   Put comma in the right place.
2017-02-01 20:48:13 +01:00
Bram Moolenaar c7d9eacefa patch 8.0.0287: debug mode: cannot access function arguments
Problem:    Cannot access the arguments of the current function in debug mode.
            (Luc Hermitte)
Solution:   use get_funccal(). (Lemonboy, closes #1432, closes #1352)
2017-02-01 20:26:51 +01:00
Kazuki Sakamoto 88f75a70df MacVim Snapshot 125
Binary targets macOS 10.8+

- Vim patch 8.0.0286

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-02-01 09:43:37 -08:00
Kazuki Sakamoto ed465e81f9 Revert "MacVim Snapshot 125"
This reverts commit b9818a953c.
2017-02-01 09:43:12 -08:00
Kazuki Sakamoto 648ec8d5f2 Merge remote-tracking branch 'vim/master' 2017-02-01 09:42:23 -08:00
Bram Moolenaar c10f0e7cb0 patch 8.0.0286: not always redrawing after screen resize
Problem:    When concealing is active and the screen is resized in the GUI it
            is not immediately redrawn.
Solution:   Use update_prepare() and update_finish() from
            update_single_line().
2017-02-01 18:37:14 +01:00
Bram Moolenaar c386267ffe patch 8.0.0285: tests fail with tiny build on Unix
Problem:    Tests fail with tiny build on Unix.
Solution:   Only set g:tester_HOME when build with the +eval feature.
2017-02-01 18:07:38 +01:00
Bram Moolenaar b245559fa9 patch 8.0.0284: collapse buffers test failed once
Problem:    The Test_collapse_buffers() test failed once, looks like it is
            flaky.
Solution:   Add it to the list of flaky tests.
2017-02-01 18:00:13 +01:00
Bram Moolenaar e90858d022 patch 8.0.0283: mode() does not indicate Insert mode completion
Problem:    The return value of mode() does not indicate that completion is
            active in Replace and Insert mode. (Zhen-Huan (Kenny) Hu)
Solution:   Add "c" or "x" for two kinds of completion. (Yegappan Lakshmanan,
            closes #1397)  Test some more modes.
2017-02-01 17:24:34 +01:00
Kazuki Sakamoto b9818a953c MacVim Snapshot 125
Binary targets macOS 10.8+

- Vim patch 8.0.0282

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-02-01 08:04:58 -08:00
Kazuki Sakamoto a8c5796d0d Merge remote-tracking branch 'vim/master' 2017-02-01 08:04:11 -08:00
Bram Moolenaar 0b5c93a7f2 patch 8.0.0282: need to use CTRL-O twice when in Visual-Insert mode
Problem:    When doing a Visual selection and using "I" to go to insert mode,
            CTRL-O needs to be used twice to go to Normal mode. (Coacher)
Solution:   Check for the return value of edit(). (Christian Brabandt,
            closes #1290)
2017-02-01 15:03:30 +01:00
Bram Moolenaar 1266d678bf patch 8.0.0281: some files are still using ARGSUSED instead of UNUSED
Problem:    MS-Windows files are still using ARGSUSED while most other files
            have UNUSED.
Solution:   Change ARGSUSED to UNUSED or delete it.
2017-02-01 13:43:36 +01:00
Bram Moolenaar 7c23d1d9d9 patch 8.0.0280: problem setting multi-byte environment var on MS-Windows
Problem:    On MS-Windows setting an environment variable with multi-byte
            strings does not work well.
Solution:   Use wputenv when possible. (Taro Muraoka, Ken Takata)
2017-02-01 13:14:16 +01:00
Bram Moolenaar 168dd00f72 patch 8.0.0279: MSVC 2015 uses a different dll name
Problem:    With MSVC 2015 the dll name is vcruntime140.dll.
Solution:   Check the MSVC version and use the right dll name. (Ken Takata)
2017-02-01 13:02:47 +01:00
Bram Moolenaar f1ab9c1370 patch 8.0.0278: GUI test fails on MS-Windows
Problem:    GUI test fails on MS-Windows.
Solution:   Check that tester_HOME exists.
2017-02-01 12:32:58 +01:00
Bram Moolenaar 56e6bd7ba2 patch 8.0.0277: the GUI test may trigger fontconfig and take a long time
Problem:    The GUI test may trigger fontconfig and take a long time.
Solution:   Set $XDG_CACHE_HOME. (Kazunobu Kuriyama)
2017-02-01 12:08:47 +01:00
Bram Moolenaar 3954e3c4b5 patch 8.0.0276: unnecessary #ifdefs
Problem:    Checking for FEAT_GUI_GNOME inside GTK 3 code is unnecessary.
Solution:   Remove the #ifdef. (Kazunobu Kuriyama)
2017-02-01 11:50:09 +01:00
Bram Moolenaar e3caa11090 patch 8.0.0275: the screen may be updated at the wrong time
Problem:    When checking for CTRL-C typed the GUI may detect a screen resize
            and redraw the screen, causing trouble.
Solution:   Set updating_screen in ui_breakcheck().
2017-01-31 22:07:42 +01:00
Bram Moolenaar 070b33da93 patch 8.0.0274: possible recursive screen updating causes trouble
Problem:    When update_single_line() is called recursively, or another screen
            update happens while it is busy, errors may occur.
Solution:   Check and update updating_screen. (Christian Brabandt)
2017-01-31 21:53:39 +01:00
Kazuki Sakamoto 3df2134ed1 Merge pull request #447 from macvim-dev/CFBundleShortVersionString
Set Info.plist CFBundleShortVersionString via configure
2017-01-30 14:03:06 -08:00
Bram Moolenaar c4a249a736 patch 8.0.0273: dead code detected by Coverity
Problem:    Dead code detected by Coverity when not using gnome.
Solution:   Rearrange the #ifdefs to avoid dead code.
2017-01-30 22:56:48 +01:00
Bram Moolenaar 432c839ebd patch 8.0.0272: crash on exit is not detected when running tests
Problem:    Crash on exit is not detected when running tests.
Solution:   Remove the dash before the command. (Dominique Pelle, closes
            #1425)
2017-01-30 22:01:01 +01:00
Kazuki Sakamoto f0b4353248 Set Info.plist CFBundleShortVersionString via configure
Close #436
2017-01-30 11:11:24 -08:00
Kazuki Sakamoto a311d0da6f Merge remote-tracking branch 'vim/master' 2017-01-29 20:44:34 -08:00
Bram Moolenaar a4c906a4a1 patch 8.0.0271: may get ml_get error when :tcldo deletes lines
Problem:    May get ml_get error when :tcldo deletes lines or switches to
            another buffer. (Nikolai Pavlov, closes #1421)
Solution:   Check the buffer and line every time.
2017-01-29 23:26:37 +01:00
Bram Moolenaar c593fee0e5 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Problem:    May get ml_get error when :rubydo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 23:11:25 +01:00
Bram Moolenaar 85b5743d3e patch 8.0.0269: may get ml_get error when :perldo deletes lines
Problem:    May get ml_get error when :perldo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 22:59:12 +01:00
Bram Moolenaar d58f03b1c2 patch 8.0.0268: may get ml_get error when :luado deletes lines
Problem:    May get ml_get error when :luado deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 22:48:45 +01:00
Bram Moolenaar 6fe2eb43d2 patch 8.0.0267: channel test sometimes fails on Mac
Problem:    A channel test sometimes fails on Mac.
Solution:   Add the test to the list of flaky tests.
2017-01-29 21:49:51 +01:00
Bram Moolenaar c625155ea4 patch 8.0.0266: compiler warning for using uninitialized variable
Problem:    Compiler warning for using uninitialized variable.
Solution:   Set tab_number also when there is an error.
2017-01-29 21:42:20 +01:00
Bram Moolenaar a58883b4ea patch 8.0.0265: may get ml_get error when :pydo deletes lines
Problem:    May get ml_get error when :pydo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 21:31:09 +01:00
Bram Moolenaar d297f35eb0 patch 8.0.0264: memory error reported by ubsan
Problem:    Memory error reported by ubsan, probably for using the string
            returned by execute().
Solution:   NUL terminate the result of execute().
2017-01-29 20:31:21 +01:00
Bram Moolenaar 80627cf51f patch 8.0.0263: Farsi support is not tested enough
Problem:    Farsi support is not tested enough.
Solution:   Add more tests for Farsi.  Clean up the code.
2017-01-29 19:59:39 +01:00
Bram Moolenaar ddf662a1c8 patch 8.0.0262: Farsi support is barely tested
Problem:    Farsi support is barely tested.
Solution:   Add more tests for Farsi.  Clean up the code.
2017-01-29 17:59:12 +01:00
Bram Moolenaar 24c2e48ef8 patch 8.0.0261: not enough test coverage for eval functions
Problem:    Not enough test coverage for eval functions.
Solution:   Add more tests. (Dominique Pelle, closes #1420)
2017-01-29 15:45:12 +01:00
Bram Moolenaar dea2570740 patch 8.0.0260: build fails with tiny features
Problem:    Build fails with tiny features.
Solution:   Move get_tabpage_arg() inside #ifdef.
2017-01-29 15:18:10 +01:00
Bram Moolenaar 2f72c70657 patch 8.0.0259: tab commands do not handle count correctly
Problem:    Tab commands do not handle count correctly. (Ken Hamada)
Solution:   Add ADDR_TABS_RELATIVE. (Hirohito Higashi)
2017-01-29 14:48:10 +01:00
Bram Moolenaar c9b56b2ceb patch 8.0.0258: mksession test leaves file behind
Problem:    mksession test leaves file behind.
Solution:   Delete the file.  Rename files to start with "X".
2017-01-29 14:14:09 +01:00
Kazuki Sakamoto 7b046c06fa Merge remote-tracking branch 'vim/master' 2017-01-28 19:55:38 -08:00
Bram Moolenaar e0b66da691 patch 8.0.0257: test file missing in distribution
Problem:    The keyword test file is not included in the archive.
Solution:   Update the list of files.
2017-01-28 18:42:56 +01:00
Bram Moolenaar 690afe1fef Update runtime files. 2017-01-28 18:34:47 +01:00
Bram Moolenaar 3a29abcb61 patch 8.0.0256: missing changes to one file breaks test
Problem:    Tests fail because some changes were not included.
Solution:   Add changes to evalfunc.c
2017-01-28 18:31:41 +01:00
Bram Moolenaar f13e00b2cf patch 8.0.0255: setpos() does not use the buffer argument for all marks
Problem:    When calling setpos() with a buffer argument it often is ignored.
            (Matthew Malcomson)
Solution:   Make the buffer argument work for all marks local to a buffer.
            (neovim #5713)  Add more tests.
2017-01-28 18:23:54 +01:00
Bram Moolenaar c7b831ca15 patch 8.0.0254: error message of assert functions is sometimes incomplete
Problem:    When using an assert function one can either specify a message or
            get a message about what failed, not both.
Solution:   Concatenate the error with the message.
2017-01-28 18:08:12 +01:00
Bram Moolenaar 36ae89c550 patch 8.0.0253: error when loading session if winminheight is 2
Problem:    When creating a session when winminheight is 2 or larger and
            loading that session gives an error.
Solution:   Also set winminheight before setting winheight to 1. (Rafael
            Bodill, neovim #5717)
2017-01-28 17:11:14 +01:00
Bram Moolenaar 4019cf90b8 patch 8.0.0252: not properly recognizing word characters between 128 and 255
Problem:    Characters below 256 that are not one byte are not always
            recognized as word characters.
Solution:   Make vim_iswordc() and vim_iswordp() work the same way. Add a test
            for this. (Ozaki Kiichi)
2017-01-28 16:39:34 +01:00
Bram Moolenaar f42dd3c390 patch 8.0.0251: not easy to select Python 2 or 3
Problem:    It is not so easy to write a script that works with both Python 2
            and Python 3, even when the Python code works with both.
Solution:   Add 'pyxversion', :pyx, etc. (Marc Weber, Ken Takata)
2017-01-28 16:06:38 +01:00
Bram Moolenaar 0c0590d982 patch 8.0.0250: virtcol() does not work well for multi-byte characters
Problem:    When virtcol() gets a column that is not the first byte of a
            multi-byte character the result is unpredictable. (Christian
            Ludwig)
Solution:   Correct the column to the first byte of a multi-byte character.
            Change the utf-8 test to new style.
2017-01-28 13:48:10 +01:00
Bram Moolenaar 4bc2f2e9fd patch 8.0.0249: CI failure when a submit is close to previous one
Problem:    When two submits happen quick after each other, the tests for the
            first one may error out.
Solution:   Use a git depth of 10 instead of 1. (Christian Brabandt)
2017-01-27 22:20:13 +01:00
Bram Moolenaar 45600ce8f2 patch 8.0.0248: vim_strcat() cannot handle overlapping arguments
Problem:    vim_strcat() cannot handle overlapping arguments.
Solution:   Use mch_memmove() instead of strcpy(). (Justin M Keyes,
            closes #1415)
2017-01-27 21:54:07 +01:00
Bram Moolenaar aed6d0b81a patch 8.0.0247: need to type Ctrl-N twice to select a completion
Problem:    Under some circumstances, one needs to type Ctrl-N or Ctrl-P twice
            to have a menu entry selected. (Lifepillar)
Solution:   call ins_compl_free(). (Christian Brabandt, closes #1411)
2017-01-27 21:48:54 +01:00
Bram Moolenaar 3a118be150 patch 8.0.0246: compiler warnings for int to pointer conversion
Problem:    Compiler warnings for int to pointer conversion.
Solution:   Fix macro for mch_memmove(). (John Marriott)
2017-01-27 21:22:19 +01:00
Bram Moolenaar 16038d50c4 patch 8.0.0245: zh_CN.cp936.po has a conversion error
Problem:    The generated zh_CN.cp936.po message file is not encoded properly.
Solution:   Instead of using zh_CN.po as input, use zh_CN.UTF-8.po.
2017-01-27 20:37:49 +01:00
Bram Moolenaar d9c60648e5 patch 8.0.0244: making t_BE empty only has an effect before startup
Problem:    When the user sets t_BE empty after startup to disable bracketed
            paste, this has no direct effect.
Solution:   When t_BE is made empty write t_BD.  When t_BE is made non-empty
            write the new value.
2017-01-27 20:03:18 +01:00
Kazuki Sakamoto 8a17c52926 Merge remote-tracking branch 'vim/master' 2017-01-26 21:30:06 -08:00
Bram Moolenaar cc5b22b3bf patch 8.0.0243: tolower() does not work if the byte count changes
Problem:    When making a character lower case with tolower() changes the byte
            cound, it is not made lower case.
Solution:   Add strlow_save(). (Dominique Pelle, closes #1406)
2017-01-26 22:51:56 +01:00
Bram Moolenaar 65c836e600 patch 8.0.0242: no tests for user command completion
Problem:    Completion of user defined functions is not covered by tests.
Solution:   Add tests.  Also test various errors of user-defined commands.
            (Dominique Pelle, closes #1413)
2017-01-26 22:07:33 +01:00
Bram Moolenaar 52c0de1de1 patch 8.0.0241: fallback implementation of mch_memmove is unused
Problem:    Vim defines a mch_memmove() function but it doesn't work, thus is
            always unused.
Solution:   Remove the mch_memmove implementation. (suggested by Dominique
            Pelle)
2017-01-26 21:36:34 +01:00
Bram Moolenaar 4f7090b93d patch 8.0.0240: failure with one build on CI
Problem:    The clang build on CI fails with one configuration.
Solution:   Redo a previous patch that was accidentally reverted.
2017-01-26 21:24:02 +01:00
Bram Moolenaar 1e07633a5d patch 8.0.0239: no CI with an address sanitizer
Problem:    The address sanitizer sometimes finds errors, but it needs to be
            run manually.
Solution:   Add an environment to Travis with clang and the address sanitizer.
            (Christian Brabandt)  Also include changes only on github.
2017-01-26 20:11:12 +01:00
Kazuki Sakamoto a27eb06c50 Merge remote-tracking branch 'vim/master' 2017-01-25 20:57:50 -08:00
Bram Moolenaar 9e817c8a31 patch 8.0.0238: bracketed paste does not disable autoindent
Problem:    When using bracketed paste autoindent causes indent to be
            increased.
Solution:   Disable 'ai' and set 'paste' temporarily. (Ken Takata)
2017-01-25 21:36:17 +01:00
Kazuki Sakamoto 4cefe0c276 MacVim Snapshot 124
Binary targets macOS 10.8+

- Vim patch 8.0.0237

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-01-25 07:31:53 -08:00
Kazuki Sakamoto 97ed4ba2f8 Merge remote-tracking branch 'vim/master' 2017-01-25 07:31:11 -08:00
Bram Moolenaar ba47b51ff8 patch 8.0.0237: when 'wildoptions' is "tagfile" completion may not work
Problem:    When setting wildoptions=tagfile the completion context is not set
            correctly. (desjardins)
Solution:   Check for EXPAND_TAGS_LISTFILES. (Christian Brabandt, closes #1399)
2017-01-24 21:18:19 +01:00
Bram Moolenaar 6a717f17ec patch 8.0.0236: gcc complains about uninitialized variable
Problem:    Gcc complains that a variable may be used uninitialized. Confusion
            between variable and label name. (John Marriott)
Solution:   Initialize it.  Rename end to end_lnum.
2017-01-24 20:47:50 +01:00
Bram Moolenaar b031c4ea04 patch 8.0.0235: memory leak in diff mode
Problem:    Memory leak detected when running tests for diff mode.
Solution:   Free p_extra_free.
2017-01-24 20:14:48 +01:00
Bram Moolenaar 941c12da3c patch 8.0.0234: crash when using put in Visual mode
Problem:    When several lines are visually selected and one of them is short,
            using put may cause a crash. (Axel Bender)
Solution:   Check for a short line. (Christian Brabandt)
2017-01-24 19:55:43 +01:00
Bram Moolenaar bff6ad1331 patch 8.0.0233: paste test fails in the GUI
Problem:    The paste test fails if the GUI is being used.
Solution:   Skip the test in the GUI.
2017-01-24 19:18:13 +01:00
Bram Moolenaar 48c9f3b123 patch 8.0.0232: paste does not work when 'esckeys' is off
Problem:    Pasting in Insert mode does not work when bracketed paste is used
            and 'esckeys' is off.
Solution:   When 'esckeys' is off disable bracketed paste in Insert mode.
2017-01-24 19:08:15 +01:00
Bram Moolenaar 076e502199 patch 8.0.0231: bracketed paste mode is not tested
Problem:    There are no tests for bracketed paste mode.
Solution:   Add a test.  Fix repeating with "normal .".
2017-01-24 18:58:30 +01:00
Bram Moolenaar 915350edec patch 8.0.0230: bracketed paste does not support line breaks
Problem:    When using bracketed paste line breaks are not respected.
Solution:   Turn CR characters into a line break if the text is being
            inserted. (closes #1404)
2017-01-24 17:50:52 +01:00
Bram Moolenaar 24a2d416ec patch 8.0.0229: local 'formatprg' option value leaks
Problem:    When freeing a buffer the local value of the 'formatprg' option is
            not cleared.
Solution:   Add missing change.
2017-01-24 17:48:36 +01:00
Kazuki Sakamoto e80371bfbb MacVim Snapshot 123
Binary targets macOS 10.8+

- Vim patch 8.0.0228

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-01-24 08:24:15 -08:00
Kazuki Sakamoto 43ac38d613 Merge remote-tracking branch 'vim/master' 2017-01-24 08:23:23 -08:00
Bram Moolenaar abbc448bc0 patch 8.0.0228: pasting in xterm on the command line has PasteStart
Problem:    When pasting test in an xterm on the command line it is surrounded
            by <PasteStart> and <PasteEnd>. (Johannes Kaltenbach)
Solution:   Add missing changes.
2017-01-24 15:57:55 +01:00
Bram Moolenaar 2aa5f696b9 patch 8.0.0227: crash with ff=dos when first line in file has no CR
Problem:    Crash when 'fileformat' is forced to "dos" and the first line in
            the file is empty and does not have a CR character.
Solution:   Don't check for CR before the start of the buffer.
2017-01-24 15:46:48 +01:00
Bram Moolenaar 1695f99d08 patch 8.0.0226: test for patch 8.0.0224 missing CR characters
Problem:    The test for patch 8.0.0224 misses the CR characters and passes
            even without the fix. (Christian Brabandt)
Solution:   Use double quotes and \<CR>.
2017-01-24 13:18:43 +01:00
Bram Moolenaar 9957a10d0f patch 8.0.0225: put in Visual block mode terminates early
Problem:    When a block is visually selected and put is used on the end of
            the selection only one line is changed.
Solution:   Check for the end properly. (Christian Brabandt, neovim issue
            5781)
2017-01-23 21:53:53 +01:00
Bram Moolenaar 7a2699e868 patch 8.0.0224: change to 'fileformats' from autocmd does not take effect
Problem:    When 'fileformats' is changed in a BufReadPre auto command, it
            does not take effect in readfile(). (Gary Johnson)
Solution:   Check the value of 'fileformats' after executing auto commands.
            (Christian Brabandt)
2017-01-23 21:31:09 +01:00
Bram Moolenaar fffbf308dd patch 8.0.0223: Coverity warns for an uninitialized variable
Problem:    Coverity gets confused by the flags passed to find_tags() and
            warnts for an uninitialized variable.
Solution:   Disallow using cscope and help tags at the same time.
2017-01-23 20:47:12 +01:00
Kazuki Sakamoto 831e48f10b MacVim Snapshot 122
Binary targets macOS 10.8+

- Vim patch 8.0.0222

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-01-23 11:32:00 -08:00
Kazuki Sakamoto e091a4b25c Merge remote-tracking branch 'vim/master' 2017-01-22 20:47:59 -08:00
Bram Moolenaar c81299684b patch 8.0.0222: blockwise put on multi-byte character misplaced
Problem:    When a multi-byte character ends in a zero byte, putting blockwise
            text puts it before the character instead of after it.
Solution:   Use int instead of char for the character under the cursor.
            (Luchr, closes #1403)  Add a test.
2017-01-22 20:04:51 +01:00
Bram Moolenaar 6a8ede99dd patch 8.0.0221: unnecessary condition on PROTO
Problem:    Checking if PROTO is defined inside a function has no effect.
Solution:   Remove the check for PROTO. (Hirohito Higashi)
2017-01-22 19:49:12 +01:00
Bram Moolenaar 15eedf1d62 patch 8.0.0220: completion of highlight names misses a few values
Problem:    Completion for :match does not show "none" and other missing
            highlight names.
Solution:   Skip over cleared entries before checking the index to be at the
            end.
2017-01-22 19:25:33 +01:00
Bram Moolenaar 7a40ea2138 patch 8.0.0219: ubsan reports errors for overflow
Problem:    Ubsan reports errors for integer overflow.
Solution:   Define macros for minimum and maximum values.  Select an
            expression based on the value. (Mike Williams)
2017-01-22 18:34:57 +01:00
Bram Moolenaar 2b2207ba69 patch 8.0.0218: no completion for :cexpr and similar commands
Problem:    No command line completion for :cexpr, :cgetexpr, :caddexpr, etc.
Solution:   Make completion work. (Yegappan Lakshmanan)  Add a test.
2017-01-22 16:46:56 +01:00
Bram Moolenaar e2d74dbe19 patch 8.0.0217: build fails without cscope feature
Problem:    Build fails without the cscope feature.
Solution:   Add #ifdef.
2017-01-22 16:13:35 +01:00
Bram Moolenaar e2c6037da3 patch 8.0.0216: decoding js style json may fail
Problem:    When decoding JSON with a JS style object the JSON test may use a
            NULL pointer. (Coverity)
Solution:   Check for a NULL pointer.
2017-01-22 15:56:26 +01:00
Bram Moolenaar e362c3d2c3 patch 8.0.0215: NULL pointer use if cscope line looks like emacs tag
Problem:    When a Cscope line contains CTRL-L a NULL pointer may be used.
            (Coverity)
Solution:   Don't check for an emacs tag in a cscope line.
2017-01-22 15:40:00 +01:00
Bram Moolenaar d7a96151e0 patch 8.0.0214: leaking memory when syntax cluster id is unknown
Problem:    Leaking memory when syntax cluster id is unknown. (Coverity)
Solution:   Free the memory.
2017-01-22 15:28:55 +01:00
Bram Moolenaar ca24e2cfcf patch 8.0.0213: Netbeans specialKeys command does not check argument length
Problem:    The Netbeans "specialKeys" command does not check if the argument
            fits in the buffer. (Coverity)
Solution:   Add a length check.
2017-01-22 15:19:22 +01:00
Bram Moolenaar 423977d3ce patch 8.0.0212: buffer for key name may be too small
Problem:    The buffer used to store a key name theoreticaly could be too
            small. (Coverity)
Solution:   Count all possible modifier characters.  Add a check for the
            length just in case.
2017-01-22 15:05:12 +01:00
Kazuki Sakamoto 88c8df3f81 Merge remote-tracking branch 'vim/master' 2017-01-21 13:55:41 -08:00
Bram Moolenaar 560379d7ae patch 8.0.0211: cannot build without the multi-byte feature
Problem:    Build fails if the multi-byte feature is disabled.
Solution:   Change #ifdef around ins_char_bytes.
2017-01-21 22:50:00 +01:00
Kazuki Sakamoto 33ed6029da Merge remote-tracking branch 'vim/master' 2017-01-21 13:45:16 -08:00
Bram Moolenaar ec2da36ca4 patch 8.0.0210: no support for bracketed paste
Problem:    Vim does not support bracketed paste, as implemented by xterm and
            other terminals.
Solution:   Add t_BE, t_BD, t_PS and t_PE.
2017-01-21 20:04:22 +01:00
Bram Moolenaar 41baa7983a patch 8.0.0209: cursor binding does not work with :substitute
Problem:    When using :substitute with the "c" flag and 'cursorbind' is set
            the cursor is not updated in other windows.
Solution:   Call do_check_cursorbind(). (Masanori Misono)
2017-01-21 14:45:09 +01:00
Kazuki Sakamoto bf5eddebf1 Merge remote-tracking branch 'vim/master' 2017-01-20 17:31:07 -08:00
Bram Moolenaar 25b0e6b701 patch 8.0.0208: internally used commands end up in history
Problem:    Internally used commands for CTRL-Z and mouse click end up in
            history. (Matthew Malcomson)
Solution:   Use do_cmdline_cmd() instead of stuffing them in the readahead
            buffer. (James McCoy, closes #1395)
2017-01-20 21:51:53 +01:00
Bram Moolenaar 23c9e8b3bc patch 8.0.0207: leaking file descriptor when system() fails
Problem:    Leaking file descriptor when system() cannot find the buffer.
            (Coverity)
Solution:   Close the file descriptor.  (Dominique Pelle, closes #1398)
2017-01-20 19:59:54 +01:00
Kazuki Sakamoto a5f2cc0333 Merge remote-tracking branch 'vim/master' 2017-01-17 18:57:49 -08:00
Bram Moolenaar 8822744b4d patch 8.0.0206: test coverage for :retab insufficient
Problem:    Test coverage for :retab insufficient.
Solution:   Add test for :retab. (Dominique Pelle, closes #1391)
2017-01-17 22:16:00 +01:00
Bram Moolenaar 5e4e1b1299 patch 8.0.0205: wrong behavior after :undojoin
Problem:    After :undojoin some commands don't work properly, such as :redo.
            (Matthew Malcomson)
Solution:   Don't set curbuf->b_u_curhead. (closes #1390)
2017-01-17 22:09:45 +01:00
Bram Moolenaar eb46f8fa14 patch 8.0.0204: compiler warns for uninitialized variable
Problem:    Compiler warns for uninitialized variable. (Tony Mechelynck)
Solution:   When skipping set "id" to -1.
2017-01-17 19:48:53 +01:00
Bram Moolenaar 6e78e27b8a patch 8.0.0203: order of complication flags is sometimes wrong
Problem:    Order of complication flags is sometimes wrong.
Solution:   Put interface-specific flags before ALL_CFLAGS. (idea by Yousong
            Zhou, closes #1100)
2017-01-17 19:20:15 +01:00
Bram Moolenaar 4007ed4a5e patch 8.0.0202: no test for invalid syntax group name
Problem:    No test for invalid syntax group name.
Solution:   Add a test for group name error and warning.
2017-01-17 18:14:54 +01:00
Bram Moolenaar d61e8aaae5 patch 8.0.0201: completion of highlight groups includes cleared names
Problem:    When completing a group name for a highlight or syntax command
            cleared groups are included.
Solution:   Skip groups that have been cleared.
2017-01-17 17:44:46 +01:00
Bram Moolenaar 58f60ca2fc patch 8.0.0200: some syntax arguments are not tested
Problem:    Some syntax arguments are not tested.
Solution:   Add more syntax command tests.
2017-01-17 17:19:00 +01:00
Bram Moolenaar 6d721c7e10 patch 8.0.0199: compiler warnings for libcall
Problem:    Warning for an unused parameter when the libcall feature is
            disabled.  Warning for a function type cast when compiling with
            -pedantic.
Solution:   Add UNUSED.  Use a different type cast. (Damien Molinier)
2017-01-17 16:56:28 +01:00
Bram Moolenaar de318c5c35 patch 8.0.0198: some syntax arguments take effect even after "if 0"
Problem:    Some syntax arguments take effect even after "if 0". (Taylor
            Venable)
Solution:   Properly skip the syntax statements.  Make "syn case" and "syn
            conceal" report the current state.  Fix that "syn clear" didn't
            reset the conceal flag.  Add tests for :syntax skipping properly.
2017-01-17 16:27:10 +01:00
Bram Moolenaar 369b6f57c4 Update runtime files. 2017-01-17 12:22:32 +01:00
Bram Moolenaar 97d62d4321 patch 8.0.0197: system() test skips some parts for MS-Windows
Problem:    On MS-Windows the system() test skips a few parts.
Solution:   Swap single and double quotes for the command.
2017-01-16 22:53:57 +01:00
Bram Moolenaar c011a3d083 patch 8.0.0196: profile test is slo and does not work on MS-Windows
Problem:    The test for :profile is slow and does not work on MS-Windows.
Solution:   Use the "-es" argument. (Dominique Pelle)  Swap single and double
            quotes for system()
2017-01-16 22:37:42 +01:00
Bram Moolenaar a9d23c2087 patch 8.0.0195: fail to jump to static tag in current file
Problem:    Jumping to a tag that is a static item in the current file fails.
            (Kazunobu Kuriyama)
Solution:   Make sure the first byte of the tag key is not NUL. (Suggested by
            James McCoy, closes #1387)
2017-01-16 20:53:34 +01:00
Bram Moolenaar e32bbded64 patch 8.0.0194: profile tests fails if total and self time are equal
Problem:    Profile tests fails if total and self time are equal.
Solution:   Make one time optional.
2017-01-15 21:12:48 +01:00
Bram Moolenaar 1b9750d805 patch 8.0.0193: accidentally removed #ifdef
Problem:    Accidentally removed #ifdef.
Solution:   Put it back. (Masanori Misono)
2017-01-15 20:51:37 +01:00
Bram Moolenaar 42b8d916c7 patch 8.0.0192: cannot build with tiny features
Problem:    Build fails with tiny features.
Solution:   Change #ifdef for hash_clear().  Avoid warning for unused
            argument.
2017-01-15 17:18:57 +01:00
Bram Moolenaar 4f391796b7 patch 8.0.0191: can't build with Ruby on some systems
Problem:    Some systems do not have ruby_sysinit(), causing the build to
            fail.
Solution:   Clean up how ruby_sysinit() and NtInitialize() are used. (Taro
            Muraoka)
2017-01-15 16:59:07 +01:00
Bram Moolenaar 810f9c361c patch 8.0.0190: finding duplicate tags uses a slow linear search
Problem:    Detecting duplicate tags uses a slow linear search.
Solution:   Use a much faster hash table solution. (James McCoy, closes #1046)
            But don't add hi_keylen, it makes hash tables 50% bigger.
2017-01-15 16:52:51 +01:00
Bram Moolenaar 296b1f28ca patch 8.0.0189: profile commands are not tested
Problem:    There are no tests for the :profile command.
Solution:   Add tests. (Dominique Pelle, closes #1383)
2017-01-15 15:22:33 +01:00
Bram Moolenaar 9506cad7a1 patch 8.0.0188: redrawing for 'cursorbind' is inefficient
Problem:    Using NOT_VALID for redraw_later() to update the cursor
            line/column highlighting is not efficient.
Solution:   Call validate_cursor() when 'cul' or 'cuc' is set.
2017-01-15 13:53:49 +01:00
Kazuki Sakamoto d5069d644e Merge remote-tracking branch 'vim/master' 2017-01-14 19:01:41 -08:00
Bram Moolenaar fe6ce331d9 patch 8.0.0187: cant build with new Ruby version
Problem:    Building with a new Ruby version fails.
Solution:   Use ruby_sysinit() instead of NtInitialize(). (Tomas Volf,
            closes #1382)
2017-01-14 20:12:01 +01:00
Bram Moolenaar 5869cf060e patch 8.0.0186: confusing error message from assert_notequal()
Problem:    The error message from assert_notequal() is confusing.
Solution:   Only mention the expected value.
2017-01-14 20:06:14 +01:00
Bram Moolenaar fad609d067 patch 8.0.0185: system() test fails on MS-Windows
Problem:    The system() test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
2017-01-14 19:38:36 +01:00
Bram Moolenaar 2b7bc567b9 patch 8.0.0184: when an error is caught Vim still exits with non-zero result
Problem:    When in Ex mode and an error is caught by try-catch, Vim still
            exits with a non-zero exit code.
Solution:   Don't set ex_exitval when inside a try-catch. (partly by Christian
            Brabandt)
2017-01-14 19:24:52 +01:00
Bram Moolenaar 7173b47958 patch 8.0.0183: ubsan warns for unaligned address
Problem:    Ubsan warns for using a pointer that is not aligned.
Solution:   First copy the address. (Yegappan Lakshmanan)
2017-01-14 17:04:38 +01:00
Bram Moolenaar e47683a091 patch 8.0.0182: cursor ilne not update when 'cursorbind' is set
Problem:    When 'cursorbind' and 'cursorline' are set, but 'cursorcolumn' is
            not, then the cursor line highlighting is not updated. (Hirohito
            Higashi)
Solution:   Call redraw_later() with NOT_VALID.
2017-01-14 15:52:46 +01:00
Bram Moolenaar 519d7785f4 patch 8.0.0181: with cursorbind set cursor column highlighting is off
Problem:    When 'cursorbind' and 'cursorcolumn' are both on, the column
            highlignt in non-current windows is wrong.
Solution:   Add validate_cursor(). (Masanori Misono, closes #1372)
2017-01-14 14:54:33 +01:00
Bram Moolenaar 83381f7129 patch 8.0.0180: error E937 is used twice
Problem:    Error E937 is used both for duplicate key in JSON and for trying
            to delete a buffer that is in use.
Solution:   Rename the JSON error to E938. (Norio Takagi, closes #1376)
2017-01-14 14:36:08 +01:00
Bram Moolenaar 9be7c04e6c patch 8.0.0179: cannot have a local value for 'formatprg'
Problem:    'formatprg' is a global option but the value may depend on the
            type of buffer. (Sung Pae)
Solution:   Make 'formatprg' global-local. (closes #1380)
2017-01-14 14:28:30 +01:00
Kazuki Sakamoto 40bc4e9b8d Merge remote-tracking branch 'vim/master' 2017-01-13 21:21:49 -08:00
Bram Moolenaar 9b73c4a215 patch 8.0.0178: command count test fails on MS-Windows
Problem:    test_command_count may fail when a previous test interferes, seen
            on MS-Windows.
Solution:   Run it separately.
2017-01-13 22:30:08 +01:00
Bram Moolenaar e13b9afe12 patch 8.0.0177: BufEnter autocommand not fired for a directory
Problem:    When opening a buffer on a directory and inside a try/catch then
            the BufEnter event is not triggered.
Solution:   Return NOTDONE from readfile() for a directory and deal with the
            three possible return values. (Justin M. Keyes, closes #1375,
            closes #1353)
2017-01-13 22:01:02 +01:00
Kazuki Sakamoto 0bdef250b2 Merge remote-tracking branch 'vim/master' 2017-01-12 20:48:36 -08:00
Bram Moolenaar 70bcd7336f patch 8.0.0176: cannot use :change inside a function definition
Problem:    Using :change in between :function and :endfunction fails.
Solution:   Recognize :change inside a function. (ichizok, closes #1374)
2017-01-12 22:20:54 +01:00
Bram Moolenaar 972c3b8f1b patch 8.0.0175: setting language on MS-Windows does not always work
Problem:    Setting language in gvim on MS-Windows does not work when
            libintl.dll is dynamically linked with msvcrt.dll.
Solution:   Use putenv() from libintl as well. (Ken Takata, closes #1082)
2017-01-12 21:44:49 +01:00
Bram Moolenaar b8f7bd68f6 patch 8.0.0174: executing "locale -a" on MS-Windows needlessly
Problem:    For completion "locale -a" is executed on MS-Windows, even though
            it most likely won't work.
Solution:   Skip executing "locale -a" on MS-Windows. (Ken Takata)
2017-01-12 20:28:25 +01:00
Bram Moolenaar a1fa892939 patch 8.0.0173: build fails with EBCDIC defined
Problem:    When compiling with EBCDIC defined the build fails. (Yaroslav
            Kuzmin)
Solution:   Move sortFunctions() to the right file.  Avoid warning for
            redefining __SUSV3.
2017-01-12 20:06:33 +01:00
Kazuki Sakamoto 220f000f59 MacVim Snapshot 121
Binary targets macOS 10.8+

- Vim patch 8.0.0172

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-01-11 18:27:36 -08:00
Kazuki Sakamoto 9c4147192a Merge remote-tracking branch 'vim/master' 2017-01-11 18:27:00 -08:00
Bram Moolenaar 1d669c233c patch 8.0.0172: command line window does not work
Problem:    The command selected in the command line window is not executed.
            (Andrey Starodubtsev)
Solution:   Save and restore the command line at a lower level. (closes #1370)
2017-01-11 22:40:19 +01:00
Bram Moolenaar ee142add22 patch 8.0.0171: JS style JSON does not support single quotes
Problem:    JS style JSON does not support single quotes.
Solution:   Allow for single quotes. (Yasuhiro Matsumoto, closes #1371)
2017-01-11 21:50:08 +01:00
Bram Moolenaar e32abbe42c patch 8.0.0170: crash in channel test
Problem:    Channel test fails for using freed memory.
Solution:   Fix memory use in json_decode().
2017-01-10 22:57:34 +01:00
Bram Moolenaar 8b2f19536f patch 8.0.0169: json_decode() may run out of stack space
Problem:    For complicated string json_decode() may run out of stack space.
Solution:   Change the recursive solution into an iterative solution.
2017-01-10 19:44:18 +01:00
Bram Moolenaar 872004132f patch 8.0.0168: not all float functionality is tested
Problem:    Still some float functionality is not covered by tests.
Solution:   Add more tests. (Dominique Pelle, closes #1364)
2017-01-10 16:31:20 +01:00
Bram Moolenaar 08243d26d2 patch 8.0.0167: str2nr()/str2float() fail with negative values
Problem:    str2nr() and str2float() do not always work with negative values.
Solution:   Be more flexible about handling signs. (LemonBoy, closes #1332)
            Add more tests.
2017-01-10 16:12:29 +01:00
Bram Moolenaar 03c60c1573 patch 8.0.0166: JSON with a duplicate key gives an internal error
Problem:    JSON with a duplicate key gives an internal error. (Lcd)
Solution:   Give a normal error.  Avoid an error when parsing JSON from a
            remote client fails.
2017-01-10 15:15:37 +01:00
Bram Moolenaar f446b48ff0 patch 8.0.0165: ubsan warns for integer overflow
Problem:    Ubsan warns for integer overflow.
Solution:   Swap two conditions. (Dominique Pelle)
2017-01-10 13:55:14 +01:00
Bram Moolenaar caa55b65c2 patch 8.0.0164: outdated and misplaced comments
Problem:    Outdated and misplaced comments.
Solution:   Fix the comments.
2017-01-10 13:51:09 +01:00
Bram Moolenaar 68563937f5 Updated runtime files. 2017-01-10 13:31:15 +01:00
Kazuki Sakamoto 8be81c4e3b Merge remote-tracking branch 'vim/master' 2017-01-09 12:41:42 -08:00
Bram Moolenaar 6abda995a5 patch 8.0.0163: cannot build with Ruby 2.4
Problem:    Ruby 2.4 no longer supports rb_cFixnum.
Solution:   move rb_cFixnum into an #ifdef. (Kazuki Sakamoto, closes #1365)
2017-01-09 21:10:31 +01:00
Bram Moolenaar 009c7b2640 patch 8.0.0162: build error on Fedora 23
Problem:    Build error on Fedora 23 with small features and gnome2.
Solution:   Undefine ngettext(). (Hirohito Higashi)
2017-01-09 20:30:27 +01:00
Bram Moolenaar 4d0504019c patch 8.0.0161: can't build with small features
Problem:    Build fails when using small features.
Solution:   Update #ifdef for using save_ccline. (Hirohito Higashi)
2017-01-09 12:58:11 +01:00
Kazuki Sakamoto acc11d1692 Merge remote-tracking branch 'vim/master' 2017-01-08 16:41:27 -08:00
Bram Moolenaar de33011ec6 patch 8.0.0160: EMSG() is sometimes used where it should be IEMSG()
Problem:    EMSG() is sometimes used for internal errors.
Solution:   Change them to IEMSG(). (Dominique Pelle)  And a few more.
2017-01-08 20:50:52 +01:00
Bram Moolenaar c695cec469 patch 8.0.0159: crash on startup when updating tabline
Problem:    Using a NULL pointer when using feedkeys() to trigger drawing a
            tabline.
Solution:   Skip drawing a tabline if TabPageIdxs is NULL. (Dominique Pelle)
            Also fix recursing into getcmdline() from the cmd window.
2017-01-08 20:00:04 +01:00
Bram Moolenaar 6247361101 patch 8.0.0158: float funcion test fails on MS-Windows
Problem:    On MS-Windows some float functions return a different value when
            passed unusual values.  strtod() doesn't work for "inf" and "nan".
Solution:   Accept both results.  Fix str2float() for MS-Windows.  Also
            reorder assert function arguments.
2017-01-08 19:25:40 +01:00
Bram Moolenaar 2d02839050 patch 8.0.0157: no completion for :syntax spell and :syntax sync
Problem:    No command line completion for ":syntax spell" and ":syntax sync".
Solution:   Implement the completion. (Dominique Pelle)
2017-01-08 18:28:22 +01:00
Bram Moolenaar 453b576ee5 patch 8.0.0156: not enough test coverage for float functions
Problem:    Several float functions are not covered by tests.
Solution:   Add float tests. (Dominique Pelle)
2017-01-08 17:59:14 +01:00
Bram Moolenaar a216255a4f patch 8.0.0155: ubsan complains about NULL pointer
Problem:    When sorting zero elements a NULL pointer is passed to qsort(),
            which ubsan warns for.
Solution:   Don't call qsort() if there are no elements. (Dominique Pelle)
2017-01-08 17:46:20 +01:00
Bram Moolenaar 31f19ce0a0 patch 8.0.0154: system() test fails on OS/X
Problem:    system() test fails on OS/X.
Solution:   Deal with leading spaces.
2017-01-08 14:14:43 +01:00
Bram Moolenaar 9d9c356517 patch 8.0.0153: system() test fails on MS-Windows
Problem:    system() test fails on MS-Windows.
Solution:   Deal when extra space and CR.
2017-01-08 13:55:06 +01:00
Bram Moolenaar 04e94c7881 patch 8.0.0152: stray channellog created when running tests
Problem:    Running the channel test creates channellog.
Solution:   Delete the debug line.
2017-01-08 13:38:58 +01:00
Bram Moolenaar 12c4492dd3 patch 8.0.0151: passing buffer content to system() is clumsy
Problem:    To pass buffer content to system() and systemlist() one has to
            first create a string or list.
Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
2017-01-08 13:26:03 +01:00
Kazuki Sakamoto 386ade3ae2 Merge remote-tracking branch 'vim/master' 2017-01-07 19:29:26 -08:00
Bram Moolenaar 7069bf18e1 patch 8.0.0150: completion for :filter does not skip the pattern
Problem:    When the pattern of :filter does not have a separator then
            completion of the command fails.
Solution:   Skip over the pattern. (Ozaki Kiichi, clodes #1299)
2017-01-07 20:39:53 +01:00
Bram Moolenaar cbd4de44e8 patch 8.0.0149: :earlier does not work after reading the undo file
Problem:    ":earlier" and ":later" do not work after startup or reading the
            undo file.
Solution:   Use absolute time stamps instead of relative to the Vim start
            time. (Christian Brabandt, Pavel Juhas, closes #1300, closes
            #1254)
2017-01-07 16:14:57 +01:00
Bram Moolenaar c6aa475a27 patch 8.0.0148: wrong indent in C preprocessor with line continuation
Problem:    When a C preprocessor statement has two line continuations the
            following line does not have the right indent. (Ken Takata)
Solution:   Add the indent of the previous continuation line. (Hirohito
            Higashi)
2017-01-07 15:39:43 +01:00
Kazuki Sakamoto 1b14651629 Merge remote-tracking branch 'vim/master' 2017-01-06 22:27:32 -08:00
Bram Moolenaar 6e450a5754 patch 8.0.0147: searchpair() fails when 'magic' is off
Problem:    searchpair() does not work when 'magic' is off. (Chris Paul)
Solution:   Add \m in the pattern. (Christian Brabandt, closes #1341)
2017-01-06 20:03:58 +01:00
Bram Moolenaar 287266527a patch 8.0.0146: termguicolors uses wrong colors on MS-Windows with ConEmu
Problem:    When using 'termguicolors' on MS-Windows the RGB definition causes
            the colors to be wrong.
Solution:   Undefined RGB and use our own. (Gabriel Barta)
2017-01-06 18:16:19 +01:00
Bram Moolenaar 29891c4ed4 patch 8.0.0145: running tests on MS-Windows is noisy
Problem:    Running tests on MS-Windows is a little bit noisy.
Solution:   Redirect some output to "nul". (Ken Takata)
2017-01-06 18:00:12 +01:00
Bram Moolenaar aaeabfbca5 Only install coveralls when used. 2017-01-06 16:47:24 +01:00
Bram Moolenaar 14a612fa2e Better solution to make coveralls work again. 2017-01-06 16:35:04 +01:00
Bram Moolenaar 7034a83743 Tune travis config for coverage with gcc only. 2017-01-06 16:01:59 +01:00
Bram Moolenaar a4ce25bd98 Another attempt to make coveralls work. 2017-01-06 15:37:45 +01:00
Bram Moolenaar 294740d2ac Attempt to make coverage working again. 2017-01-06 15:28:44 +01:00
Bram Moolenaar 9269315f63 patch 8.0.0144: when using MSVC the GvimExt directory is cleaned twice
Problem:    When using MSVC the GvimExt directory is cleaned twice.
Solution:   Remove the lines. (Ken Takata)
2017-01-06 14:55:36 +01:00
Bram Moolenaar f845b87f2b patch 8.0.0143: line number of current buffer in getbufinfo() is wrong
Problem:    Line number of current buffer in getbufinfo() is wrong.
Solution:   For the current buffer use the current line number. (Ken Takata)
2017-01-06 14:04:54 +01:00
Kazuki Sakamoto 4374735576 Merge pull request #439 from zebHub/master
Three window level actions
2017-01-04 23:04:14 -08:00
Yousef El-Zebdeh 1e3514c02e Renamamed methods and inteface labels
Stay On Bottom > Stay in Back
Stay On Top > Stay in Front
These fit closer to Apple's terminology as seen with iOS simulator.
2017-01-05 06:24:09 +00:00
Kazuki Sakamoto 8133aa23f0 Fix Homebrew build 2017-01-04 22:15:43 -08:00
Kazuki Sakamoto 290ed88c0b Fix configure.ac for RUBY_CFLAGS 2017-01-04 20:33:11 -08:00
Kazuki Sakamoto f9ed667087 Fix configure for RUBY_CFLAGS 2017-01-04 20:25:57 -08:00
Yousef El-Zebdeh 263115a528 Three window level actions
Added three window level functions to MMAppController. These allow the
window to float on top, stay on bottom or revert back to normal status.

I have also added the commands to the Actions.plist. The commands were
added using the menu.vim file.
2017-01-05 02:40:56 +00:00
Kazuki Sakamoto 6127f5c9eb MacVim Snapshot 120
Binary targets macOS 10.8+

- Vim patch 8.0.0142

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-01-03 19:42:52 -08:00
Kazuki Sakamoto 921d522f70 Python 3.6 2017-01-02 18:16:50 -08:00
Kazuki Sakamoto a1a2788ffa Merge remote-tracking branch 'vim/master' 2017-01-02 18:16:44 -08:00
Bram Moolenaar 0cdb72aa38 patch 8.0.0142
Problem:    Normal colors are wrong with 'termguicolors'.
Solution:   Initialize to INVALCOLOR instead of zero. (Ben Jackson, closes
            #1344)
2017-01-02 21:37:40 +01:00
Bram Moolenaar bc2eada542 Updated runtime files. 2017-01-02 21:27:47 +01:00
Kazuki Sakamoto c6e15ba8e7 Merge remote-tracking branch 'vim/master' 2017-01-02 12:01:03 -08:00
Bram Moolenaar 269aec7e61 patch 8.0.0141
Problem:    Nested function test fails on AppVeyor.
Solution:   Disable the test on Windows for now.
2017-01-02 18:32:39 +01:00
Bram Moolenaar f8eb9c51e5 patch 8.0.0140
Problem:    Pasting inserted text in Visual mode does not work properly.
            (Matthew Malcomson)
Solution:   Stop Visual mode before stuffing the inserted text. (Christian
            Brabandt, from neovim #5709)
2017-01-02 17:31:24 +01:00
Bram Moolenaar 5e1e6d265d patch 8.0.0139
Problem:    Warning for unused argument.
Solution:   Add UNUSED.
2017-01-02 17:26:00 +01:00
Bram Moolenaar b094ff4b2b patch 8.0.0138
Problem:    Small build fails.
Solution:   Add #ifdef.
2017-01-02 16:16:39 +01:00
Bram Moolenaar 777b30f827 patch 8.0.0137
Problem:    When 'maxfuncdepth' is set above 200 the nesting is limited to
            200. (Brett Stahlman)
Solution:   Allow for Ex command recursion depending on 'maxfuncdepth'.
2017-01-02 15:26:27 +01:00
Bram Moolenaar 54b2bfa399 patch 8.0.0136
Problem:    When using indent folding and changing indent the wrong fold is
            opened. (Jonathan Fudger)
Solution:   Open the fold under the cursor a bit later. (Christian Brabandt)
2017-01-02 14:57:08 +01:00
Bram Moolenaar ded2782783 patch 8.0.0135
Problem:    An address relative to the current line, ":.,+3y", does not work
            properly on a closed fold. (Efraim Yawitz)
Solution:   Correct for including the closed fold. (Christian Brabandt)
2017-01-02 14:27:34 +01:00
Kazuki Sakamoto 4bf9153e6d Merge remote-tracking branch 'vim/master' 2016-12-15 01:41:13 -08:00
Bram Moolenaar c4bfedabe0 patch 8.0.0134
Problem:    Null pointer access reported by UBsan.
Solution:   Check curwin->w_buffer is not NULL. (Yegappan Lakshmanan)
2016-12-14 21:42:00 +01:00
Kazuki Sakamoto 7c0d06c170 Merge remote-tracking branch 'vim/master' 2016-12-11 20:33:11 -08:00
Bram Moolenaar fe38b494ff patch 8.0.0133
Problem:    "2;'(" causes ml_get errors in an empty buffer.  (Dominique Pelle)
Solution:   Check the cursor line earlier.
2016-12-11 21:34:23 +01:00
Bram Moolenaar 4c8980b717 patch 8.0.0132
Problem:    Test fails because of using :finish.
Solution:   Change to return.
2016-12-11 15:24:48 +01:00
Bram Moolenaar 73b484c4da patch 8.0.0131
Problem:    Not enough test coverage for syntax commands.
Solution:   Add more tests. (Dominique Pelle)
2016-12-11 15:11:17 +01:00
Kazuki Sakamoto f5464c4b19 Merge remote-tracking branch 'vim/master' 2016-12-09 22:19:55 -08:00
Bram Moolenaar 63de19e805 patch 8.0.0130
Problem:    Configure uses "ushort" while the Vim code doesn't.
Solution:   Use "unsigned short" instead. (Fredrik Fornwall, closes #1314)
2016-12-09 20:11:26 +01:00
Bram Moolenaar 0df3c7f2a0 patch 8.0.0129
Problem:    Parallel make still doesn't work. (Lewis Muir)
Solution:   Define OBJ_MAIN.
2016-12-09 19:57:14 +01:00
Bram Moolenaar 7089237885 patch 8.0.0128
Problem:    Display test fails on MS-Windows.
Solution:   Set 'isprint' to "@".
2016-12-09 19:51:49 +01:00
Bram Moolenaar 73fd498886 patch 8.0.0127
Problem:    Cancelling completion still inserts text when formatting is done
            for 'textwidth'. (lacygoill)
Solution:   Don't format when CTRL-E was typed. (Hirohito Higashi,
            closes #1312)
2016-12-09 19:36:56 +01:00
Bram Moolenaar 6270660611 patch 8.0.0126
Problem:    Display problem with 'foldcolumn' and a wide character.
            (esiegerman)
Solution:   Don't use "extra" but an allocated buffer. (Christian Brabandt,
            closes #1310)
2016-12-09 19:28:48 +01:00
Bram Moolenaar eaaa9bbda6 patch 8.0.0125
Problem:    Not enough testing for entering Ex commands.
Solution:   Add test for CTRL-\ e {expr}. (Dominique Pelle)
2016-12-09 18:42:20 +01:00
Kazuki Sakamoto e61a091ac1 MacVim Snapshot 119
Binary targets macOS 10.8+

- Vim patch 8.0.0124
- Fixed crash with Python.org 3.5.2 binary

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-12-08 23:51:57 -08:00
Kazuki Sakamoto 7c7e807cb3 Merge pull request #434 from macvim-dev/fix/pythonthreehome
Fix Py_SetPythonHome calling
2016-12-08 23:47:59 -08:00
Kazuki Sakamoto 1d88ecc753 Fix Py_SetPythonHome calling
The pointer for Py_SetPythonHome shouldn't be freed
2016-12-08 23:46:31 -08:00
Kazuki Sakamoto 5ff38b0d07 MacVim Snapshot 118
Binary targets macOS 10.8+

- Vim patch 8.0.0124
- Fixed crash in :set

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-12-07 12:30:48 -08:00
Kazuki Sakamoto e3f9841f59 Merge pull request #433 from macvim-dev/fix/option
Fix :set crash
2016-12-07 12:29:21 -08:00
Kazuki Sakamoto 1de4548643 Fix :set crash
P_STRING option default value can't be NULL
2016-12-07 12:25:16 -08:00
Kazuki Sakamoto fd114bd289 Merge pull request #430 from macvim-dev/MMUseCGLayerAlwaysKey
Introduce MMUseCGLayerAlways user default
2016-12-04 17:24:02 -08:00
Kazuki Sakamoto b115d75a66 Introduce MMUseCGLayerAlways user default
Add user default key `MMUseCGLayerAlways` to control to use CGLayer
rendering always in Core Text Renderer.

    $ defaults write org.vim.MacVim MMUseCGLayerAlways -bool YES
2016-12-04 17:10:02 -08:00
Kazuki Sakamoto 4f653a19c5 Add setNeedsDisplayCGLayerInRect and setNeedsDisplayCGLayer 2016-12-04 16:41:34 -08:00
Ben Osheroff 2fb08d3456 draw the layer from the background thread
during layer draw we know what parts of the screen will need repainting,
so we can call set setNeedsDisplayInRect and do a partial draw of the
screen.  This brings down overall keyDown-to-drawRect(finish) latency
when in "layer" mode from 17ms to 4.5ms (about what the "stock" CoreText
renderer does).
2016-12-04 16:33:19 -08:00
Kazuki Sakamoto 675446da32 Merge remote-tracking branch 'vim/master' 2016-12-04 12:00:50 -08:00
Bram Moolenaar 3421566376 patch 8.0.0124
Problem:    Internal error for assert_inrange(1, 1).
Solution:   Adjust number of allowed arguments. (Dominique Pelle)
2016-12-04 13:37:41 +01:00
Kazuki Sakamoto 079c0c9d4a Merge remote-tracking branch 'vim/master' 2016-12-03 20:58:26 -08:00
Bram Moolenaar a899e6ecc4 patch 8.0.0123
Problem:    Modern Sun compilers define "__sun" instead of "sun".
Solution:   Use __sun. (closes #1296)
2016-12-03 16:40:51 +01:00
Bram Moolenaar 3fad98e8af patch 8.0.0122
Problem:    Channel test is still flaky on OS X.
Solution:   Add a short sleep.
2016-12-03 15:23:40 +01:00
Bram Moolenaar a2477fd349 patch 8.0.0121
Problem:    Setting 'cursorline' changes the curswant column. (Daniel Hahler)
Solution:   Add the P_RWINONLY flag. (closes #1297)
2016-12-03 15:13:20 +01:00
Bram Moolenaar 5643db84c6 patch 8.0.0120
Problem:    Channel test is still flaky on OS X.
Solution:   Set the drop argument to "never".
2016-12-03 14:29:10 +01:00
Bram Moolenaar 21efc3633e patch 8.0.0119
Problem:    No test for using CTRL-R on the command line.
Solution:   Add a test. (Dominique Pelle) And some more.
2016-12-03 14:05:49 +01:00
Kazuki Sakamoto d96d409df8 Merge remote-tracking branch 'vim/master' 2016-12-02 20:55:59 -08:00
Bram Moolenaar 99c5eb4fd7 Add objects dirstamp to gitignore. 2016-12-02 21:24:21 +01:00
Bram Moolenaar 5162822914 patch 8.0.0118
Problem:    "make proto" adds extra function prototype.
Solution:   Add #ifdef.
2016-12-01 23:03:28 +01:00
Bram Moolenaar cf49790443 Updated runtime files. 2016-12-01 22:57:02 +01:00
Bram Moolenaar 327054df45 patch 8.0.0117
Problem:    Parallel make fails. (J. Lewis Muir)
Solution:   Make sure the objects directory exists. (closes #1259)
2016-12-01 21:46:14 +01:00
Bram Moolenaar 6dbf66aa3e patch 8.0.0116
Problem:    When reading English help and using CTRl-] the language from
            'helplang' is used.
Solution:   Make help tag jumps keep the language. (Tatsuki, test by Hirohito
            Higashi, closes #1249)
2016-12-01 21:32:32 +01:00
Bram Moolenaar e3af763d5e patch 8.0.0115
Problem:    When building with Cygwin libwinpthread isn't found.
Solution:   Link winpthread statically. (jmmerz, closes #1255, closes #1256)
2016-12-01 20:37:47 +01:00
Bram Moolenaar b04a98f6c3 patch 8.0.0114
Problem:    Coding style not optimal.
Solution:   Add spaces. (Ken Takata)
2016-12-01 20:32:29 +01:00
Bram Moolenaar 87f3d202a9 patch 8.0.0113
Problem:    MS-Windows: message box to prompt for saving changes may appear on
            the wrong monitor.
Solution:   Adjust the CenterWindow function. (Ken Takata)
2016-12-01 20:18:50 +01:00
Bram Moolenaar eca626fcdb patch 8.0.0112
Problem:    Tests 92 and 93 are old style.
Solution:   Make test92 and test93 new style. (Hirohito Higashi, closes #1289)
2016-12-01 18:47:38 +01:00
Bram Moolenaar eebd84eb94 patch 8.0.0111
Problem:    The :history command is not tested.
Solution:   Add tests. (Dominique Pelle)
2016-12-01 17:57:44 +01:00
Bram Moolenaar 5a030a540f patch 8.0.0110
Problem:    Drop command doesn't use existing window.
Solution:   Check the window width properly. (Hirohito Higashi)
2016-12-01 17:48:29 +01:00
Bram Moolenaar b129a447f3 patch 8.0.0109
Problem:    Still checking if memcmp() exists while every system should have
            it now.
Solution:   Remove vim_memcmp().  (James McCoy, closes #1295)
2016-12-01 17:25:20 +01:00
Bram Moolenaar 65e08ee1d2 patch 8.0.0108
Problem:    The channel "drop" option is not tested.
Solution:   Add a test.
2016-12-01 16:41:50 +01:00
Bram Moolenaar 958dc6923d patch 8.0.0107
Problem:    When reading channel output in a timer, messages may go missing.
            (Skywind)
Solution:   Add the "drop" option.  Write error messages in the channel log.
            Don't have ch_canread() check for the channel being open.
2016-12-01 15:34:12 +01:00
Kazuki Sakamoto 5cc2a2b8f8 MacVim Snapshot 117
Binary targets macOS 10.8+

- Vim patch 8.0.0106
- Fixed feedkeys in timer callback
- [Experimental] Automatic Python settings
  - Python 2.7.x: Homebrew python2 or System's
  - Python 3.5.2 or later: Homebrew python3 or python.org binary

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-11-30 20:52:28 -08:00
Kazuki Sakamoto 34d4c9f566 Update README_mac.txt for MacVim 2016-11-29 20:58:03 -08:00
Kazuki Sakamoto d05258ea2a Merge remote-tracking branch 'vim/master' 2016-11-29 20:38:44 -08:00
Bram Moolenaar 0945eaface patch 8.0.0106
Problem:    Cannot use a semicolon in 'backupext'. (Jeff)
Solution:   Allow for a few more characters when "secure" isn't set.
2016-11-29 22:10:48 +01:00
Bram Moolenaar 4b785f69c0 patch 8.0.0105
Problem:    When using ch_read() with zero timeout, can't tell the difference
            between reading an empty line and nothing available.
Solution:   Add ch_canread().
2016-11-29 21:54:44 +01:00
Kazuki Sakamoto 1b15a7159b Merge pull request #423 from macvim-dev/experimental/pythonhomeopt
[Experimental] Set pythonhome and pythonthreehome automatically
2016-11-28 22:13:16 -08:00
Kazuki Sakamoto e3e3a15159 Set pythonhome and pythonthreehome automatically
MacVim uses Homebrew python2 if installed, otherwise System's
MacVim uses Homebrew python3 if installed, next try to use python.org binary
2016-11-28 22:10:23 -08:00
Kazuki Sakamoto 16974f80f9 Introduce pythonhome and pythonthreehome options
It is really difficult to set Python home directory properly for Python
2.7 and 3.5 in .vimrc at the same time since both versions use `$PYTHONHOME`
environment variable. Introduce `pythonhome` and `pythonthreehome`
options in order to set Python home directory via `Py_SetPythonHome` API
for both versions.
2016-11-28 20:53:43 -08:00
Kazuki Sakamoto f9248a4311 Merge remote-tracking branch 'vim/master' 2016-11-28 20:51:35 -08:00
Bram Moolenaar f422bcc7f9 patch 8.0.0104
Problem:    Value of 'thesaurus' option not checked properly.
Solution:   Add P_NDNAME flag. (Daisuke Suzuki)
2016-11-26 17:45:53 +01:00
Bram Moolenaar 8a8199e4a1 patch 8.0.0103
Problem:    May not process channel readahead. (skywind)
Solution:   If there is readahead don't block on input.
2016-11-26 15:13:33 +01:00
Bram Moolenaar 7554da4033 patch 8.0.0102
Problem:    Cannot set 'dictionary' to a path.
Solution:   Allow for slash and backslash.  Add a test (partly by Daisuke
            Suzuki, closes #1279, closes #1284)
2016-11-25 22:04:13 +01:00
Bram Moolenaar 031cb743ae patch 8.0.0101
Problem:    Some options are not strictly checked.
Solution:   Add flags for strickter checks.
2016-11-24 21:46:19 +01:00
Bram Moolenaar 319afe3804 patch 8.0.0100
Problem:    Options that are a file name may contain non-filename characters.
Solution:   Check for more invalid characters.
2016-11-24 18:30:59 +01:00
Bram Moolenaar 73095288da patch 8.0.0099
Problem:    Popup menu always appears above the cursor when it is in the lower
            half of the screen. (Matt Gardner)
Solution:   Compute the available space better. (Hirohito Higashi,
            closes #1241)
2016-11-24 17:47:07 +01:00
Bram Moolenaar 58c358753e patch 8.0.0098
Problem:    Can't build on MS-Windows.
Solution:   Add missing parenthesis.
2016-11-24 17:33:17 +01:00
Bram Moolenaar 833eb1d752 patch 8.0.0097
Problem:    When a channel callback consumes a lot of time Vim becomes
            unresponsive. (skywind)
Solution:   Bail out of checking channel readahead after 100 msec.
2016-11-24 17:22:50 +01:00
Bram Moolenaar 2cab0e1910 patch 8.0.0096
Problem:    When the input or output is not a tty Vim appears to hang.
Solution:   Add the --ttyfail argument.  Also add the "ttyin" and "ttyout"
            features to be able to check in Vim script.
2016-11-24 15:09:07 +01:00
Kazuki Sakamoto f7c4ef23fa Merge pull request #417 from ichizok/fix/timer-feedkeys
Fix job/channel/timer handling
2016-11-21 13:05:11 -08:00
Bram Moolenaar 182707ac10 patch 8.0.0095
Problem:    Problems with GTK 3.22.2 fixed in 3.22.4.
Solution:   Adjust the #ifdefs. (Kazunobu Kuriyama)
2016-11-21 20:55:58 +01:00
ichizok c8b6fd59f0 Enable Test_exit_callback_interval() 2016-11-21 23:40:46 +09:00
ichizok 235364e825 Check for jobs and channels more often 2016-11-21 23:40:46 +09:00
ichizok 362a5c0b39 Fix feedkeys in timer callback 2016-11-21 23:40:46 +09:00
Kazuki Sakamoto ca82514bff Merge pull request #416 from macvim-dev/revert-415-fix/py3
Revert "Set Python3 settings automatically"
2016-11-20 22:37:01 -08:00
Kazuki Sakamoto 414abe65f1 Revert "Set Python3 settings automatically" 2016-11-20 22:36:32 -08:00
Kazuki Sakamoto 6cfc463126 Merge pull request #415 from macvim-dev/fix/py3
Set Python3 settings automatically
2016-11-20 22:13:24 -08:00
Kazuki Sakamoto 031dd64ad7 Set Python3 settings automatically
Supports
- Homebrew Python3 (Default)
- https://www.python.org/downloads/mac-osx/
2016-11-20 22:11:00 -08:00
Kazuki Sakamoto c85f864c35 Merge pull request #413 from osheroff/layer_transparency
fixes for transparency + cgLayer code
2016-11-20 19:16:14 -08:00
Ben Osheroff 75c997049e fixes for transparency + cgLayer code 2016-11-20 18:53:50 -08:00
Kazuki Sakamoto 109b8c134c MacVim Snapshot 116
Binary targets macOS 10.8+

- Vim patch 8.0.0094
- Fixed Non-native fullscreen issue on 10.12 Sierra (#312)

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-11-20 01:08:04 -08:00
Kazuki Sakamoto 967b1a1814 Merge pull request #410 from macvim-dev/fix/fullscreen
Runtime 10.12 version check for CGLayer in non-native fullscreen
2016-11-20 00:35:38 -08:00
Kazuki Sakamoto 7fe35f8735 Runtime 10.12 version check for CGLayer in non-native fullscreen 2016-11-20 00:34:43 -08:00
Kazuki Sakamoto cab4040499 Merge pull request #405 from osheroff/master
Fix problems with non-native fullscreen and mac 10.12
2016-11-20 00:32:37 -08:00
Kazuki Sakamoto 4dba9d1e2f Merge remote-tracking branch 'vim/master' 2016-11-19 22:21:44 -08:00
Kazuki Sakamoto aedaad51cf Merge pull request #409 from macvim-dev/revert-408-xcode8.2
Revert "xcode8.2 on Travis CI"
2016-11-19 10:18:25 -08:00
Kazuki Sakamoto fbf66f9918 Revert "xcode8.2 on Travis CI" 2016-11-19 10:18:11 -08:00
Bram Moolenaar 63e4344edc patch 8.0.0094
Problem:    When vimrun.exe is not found the error message is not properly
            encoded.
Solution:   Use utf-16 and MessageBoxW(). (Ken Takata)
2016-11-19 17:28:44 +01:00
Bram Moolenaar dda39aeafc patch 8.0.0093
Problem:    Not using multiprocess build feature.
Solution:   Enable multiprocess build with MSVC 10. (Ken Takata)
2016-11-19 17:17:12 +01:00
Kazuki Sakamoto 3129be9a78 Merge pull request #408 from macvim-dev/xcode8.2
xcode8.2 on Travis CI
2016-11-18 21:27:14 -08:00
Kazuki Sakamoto 7c8684761b xcode8.2 on Travis CI 2016-11-18 21:26:31 -08:00
Kazuki Sakamoto 32418b98a0 Merge pull request #407 from macvim-dev/revert-406-fix/timer-feedkeys
Revert "Fix #401"
2016-11-18 08:29:12 -08:00
Kazuki Sakamoto abeb366f9f Revert "Fix #401" 2016-11-18 08:28:36 -08:00
Kazuki Sakamoto 28f88ac8e7 Merge pull request #406 from ichizok/fix/timer-feedkeys
Fix #401
2016-11-18 07:23:31 -08:00
ichizok a6d11c71a0 Enable Test_exit_callback_interval() 2016-11-18 23:55:33 +09:00
ichizok cf2ddc70a1 Check for jobs and channels more often 2016-11-18 23:55:32 +09:00
Kazuki Sakamoto 0b0e6b0350 MacVim Snapshot 115
Binary targets macOS 10.8+

- Vim patch 8.0.0092

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-11-17 20:56:00 -08:00
Kazuki Sakamoto deddd2587c Merge remote-tracking branch 'vim/master' 2016-11-17 20:48:39 -08:00
Bram Moolenaar ca8b8d6956 patch 8.0.0092
Problem:    C indenting does not support nested namespaces that C++ 17 has.
Solution:   Add check that passes double colon inside a name. (Pauli, closes
            #1214)
2016-11-17 21:30:27 +01:00
Bram Moolenaar 9f0e423c28 patch 8.0.0091
Problem:    Test_help_complete sometimes fails in MS-Windows console.
Solution:   Use getcompletion() instead of feedkeys() and command line
            completion. (Hirohito Higashi)
2016-11-17 19:48:18 +01:00
Bram Moolenaar 6c896867c4 patch 8.0.0090
Problem:    Test_help_complete sometimes fails in MS-Windows console.
Solution:   Use getcompletion() instead of feedkeys() and command line
            completion. (Hirohito Higashi)
2016-11-17 19:46:51 +01:00
Bram Moolenaar a859f04b4d patch 8.0.0089
Problem:    Various problems with GTK 3.22.2.
Solution:   Fix the problems, add #ifdefs. (Kazunobu Kuriyama)
2016-11-17 19:11:55 +01:00
Bram Moolenaar cc28e2d05d patch 8.0.0088
Problem:    When a test fails in Setup or Teardown the problem is not reported.
Solution:   Add a try/catch. (Hirohito Higashi)
2016-11-17 17:56:13 +01:00
Bram Moolenaar 7df915d113 patch 8.0.0087
Problem:    When the channel callback gets job info the job may already have
            been deleted. (lifepillar)
Solution:   Do not delete the job when the channel is still useful. (ichizok,
            closes #1242, closes #1245)
2016-11-17 17:25:32 +01:00
Bram Moolenaar c0514bf477 Updated runtime files. 2016-11-17 14:50:09 +01:00
ichizok 1ed1ccc2c3 Fix feedkeys in timer callback 2016-11-17 05:36:07 +09:00
Kazuki Sakamoto 1de54de4ef Merge remote-tracking branch 'vim/master' 2016-11-15 19:07:35 -08:00
Bram Moolenaar 2256c99471 patch 8.0.0086
Problem:    Cannot add a comment after ":hide". (Norio Takagi)
Solution:   Make it work, add a test. (Hirohito Higashi)
2016-11-15 21:17:07 +01:00
Ben Osheroff 4663f06f3e Fix problems with non-native fullscreen and mac 10.12
When you set a borderless style on a subclasses window in 10.12, the
original behavior in which you could progressively draw partially on a
stale window seems to be gone; it blanks the thing after each draw. It's
totally unclear to me whether the CoreText engine as written was ever
"correct", or maybe it just "accidentally worked" -- no documentation on
the internets seems to indicate you're allowed to only draw CoreGraphics
updates to a window in drawRect.

This PR works around that by drawing onto a persistent background layer
which we then blit to the screen.  This PR also makes resizing a
CoreGraphics view much smoother; the old code was pretty flickery.

addreses #312.
2016-11-14 22:03:10 -08:00
Kazuki Sakamoto 914798ebeb Merge remote-tracking branch 'vim/master' 2016-11-14 21:30:38 -08:00
Bram Moolenaar 8a01f969c1 patch 8.0.0085
Problem:    Using freed memory with recursive function call. (Dominique Pelle)
Solution:   Make a copy of the function name.
2016-11-14 21:50:00 +01:00
Kazuki Sakamoto 20d6ca2821 Merge remote-tracking branch 'vim/master' 2016-11-13 19:46:14 -08:00
Bram Moolenaar 7618e00d3b patch 8.0.0084
Problem:    Using freed memory when adding to a quickfix list. (Domenique
            Pelle)
Solution:   Clear the directory name.
2016-11-13 15:09:26 +01:00
Bram Moolenaar 8e63905263 patch 8.0.0083
Problem:    Using freed memory with win_getid(). (Domenique Pelle)
Solution:   For the current tab use curwin.
2016-11-13 14:31:40 +01:00
Kazuki Sakamoto 5d7520fbfe Merge remote-tracking branch 'vim/master' 2016-11-12 20:23:57 -08:00
Kazuki Sakamoto 04561d6622 Merge pull request #404 from itaiferber/master
Report focus change on window key (not main)
2016-11-12 20:21:45 -08:00
Itai Ferber 2c1841d1d4 Report focus change on window key (not main)
MacVim should report FocusGained and FocusLost events not just when its
windows become main, but when they become key -- if a panel is opened,
or a background application (i.e. an LSUIElement app) becomes active,
MacVim should reflect the focus state.
2016-11-12 15:33:23 -08:00
Bram Moolenaar 3f7d090726 patch 8.0.0082
Problem:    Extension for configure should be ".ac".
Solution:   Rename configure.in to configure.ac. (James McCoy, closes #1173)
2016-11-12 21:13:42 +01:00
Bram Moolenaar d4db7719bd patch 8.0.0081
Problem:    Inconsistent function names.
Solution:   Rename do_cscope to ex_cscope.  Clean up comments.
2016-11-12 19:16:46 +01:00
Bram Moolenaar b6be3ea45b patch 8.0.0080
Problem:    The OS X build fails on Travis.
Solution:   Skip the virtual framebuffer on OS X.
2016-11-12 18:30:39 +01:00
Bram Moolenaar 2b946c9f9b patch 8.0.0079
Problem:    Accessing freed memory in quickfix. (Domenique Pelle)
Solution:   Do not free the current list when adding to it.
2016-11-12 18:14:44 +01:00
Bram Moolenaar 63bed3d319 patch 8.0.0078
Problem:    Accessing freed memory in quickfix.
Solution:   Reset pointer when freeing 'errorformat'. (Domenique Pelle)
2016-11-12 15:36:54 +01:00
Kazuki Sakamoto 59f5f0ab64 Fix travis build for MacVim 2016-11-11 22:28:11 -08:00
Kazuki Sakamoto 08a873a739 Merge remote-tracking branch 'vim/master' 2016-11-11 22:08:28 -08:00
Bram Moolenaar e3505dfc85 patch 8.0.0077
Problem:    The GUI code is not tested by Travis.
Solution:   Install the virtual framebuffer.
2016-11-11 21:57:45 +01:00
Bram Moolenaar 79cbdcb1ee patch 8.0.0076
Problem:    Channel log has double parens ()().
Solution:   Remove () for write_buf_line. (Yasuhiro Matsumoto)
2016-11-11 21:14:03 +01:00
Kazuki Sakamoto 87243e38ea Merge remote-tracking branch 'vim/master' 2016-11-10 19:29:48 -08:00
Bram Moolenaar 8a5883b748 patch 8.0.0075
Problem:    Using number for exception type lacks type checking.
Solution:   Use an enum.
2016-11-10 20:20:05 +01:00
Bram Moolenaar 95f096030e patch 8.0.0074
Problem:    Cannot make Vim fail on an internal error.
Solution:   Add IEMSG() and IEMSG2(). (Domenique Pelle)  Avoid reporting an
            internal error without mentioning where.
2016-11-10 20:01:45 +01:00
Bram Moolenaar 459ca56312 patch 8.0.0073
Problem:    More comparisons between firstwin and lastwin.
Solution:   Use ONE_WINDOW for consistency. (Hirohito Higashi)
2016-11-10 18:16:33 +01:00
Bram Moolenaar 38bc495637 patch 8.0.0072
Problem:    MS-Windows: Crash with long font name. (Henry Hu)
Solution:   Fix comparing with LF_FACESIZE. (Ken Takata, closes #1243)
2016-11-10 17:10:51 +01:00
Kazuki Sakamoto fde8fd50d8 Merge remote-tracking branch 'vim/master' 2016-11-07 19:28:00 -08:00
Bram Moolenaar c4d4ac22f7 patch 8.0.0071
Problem:    Exit value from a shell command is wrong. (Hexchain Tong)
Solution:   Do not check for ended jobs while waiting for a shell command.
            (ichizok, closes #1196)
2016-11-07 22:42:57 +01:00
Bram Moolenaar 3f9ebf32a3 patch 8.0.0070
Problem:    Tests referred in Makefile that no longer exist.
Solution:   Remove test71 and test74 entries. (Michael Soyka)
2016-11-07 22:13:32 +01:00
Kazuki Sakamoto c1e81252b7 Merge remote-tracking branch 'vim/master' 2016-11-06 10:25:00 -08:00
Bram Moolenaar a1f4cb93ba patch 8.0.0069
Problem:    Compiler warning for self-comparison.
Solution:   Define ONE_WINDOW and add #ifdef.
2016-11-06 15:25:42 +01:00
Bram Moolenaar 25de4c232d Updated runtime files. 2016-11-06 14:48:06 +01:00
Bram Moolenaar 21662be221 patch 8.0.0068
Problem:    Checking did_throw after executing autocommands is wrong. (Daniel
            Hahler)
Solution:   Call aborting() instead, and only when autocommands were executed.
2016-11-06 14:46:44 +01:00
Bram Moolenaar 98500fdc61 patch 8.0.0067
Problem:    VMS has a problem with infinity.
Solution:   Avoid an overflow. (Zoltan Arpadffy)
2016-11-06 14:17:16 +01:00
Kazuki Sakamoto 06b40267d6 Merge remote-tracking branch 'vim/master' 2016-11-05 20:06:09 -07:00
Bram Moolenaar 4a08b0dc4d patch 8.0.0066
Problem:    when calling an operator function when 'linebreak' is set, it is
            internally reset before calling the operator function.
Solution:   Restore 'linebreak' before calling op_function(). (Christian
            Brabandt)
2016-11-05 21:55:13 +01:00
Bram Moolenaar 40d3f137e7 patch 8.0.0065
Problem:    Compiler warning for unused function in tiny build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
2016-11-05 20:13:35 +01:00
Bram Moolenaar eb828d01d9 patch 8.0.0064
Problem:    Normal test fails on MS-Windows.
Solution:   Don't try using an illegal file name.
2016-11-05 19:54:01 +01:00
Kazuki Sakamoto 7416ff4766 Merge remote-tracking branch 'vim/master' 2016-11-05 08:49:57 -07:00
Bram Moolenaar 55952d4dd4 patch 8.0.0063
Problem:    Compiler warning for comparing with unsigned. (Zoltan Arpadffy)
Solution:   Change <= to ==.
2016-11-05 14:58:34 +01:00
Kazuki Sakamoto 3549534f18 Merge remote-tracking branch 'vim/master' 2016-11-04 20:50:00 -07:00
Bram Moolenaar 8161551724 patch 8.0.0062
Problem:    No digraph for HORIZONTAL ELLIPSIS.
Solution:   Use ",.". (Hans Ginzel, closes #1226)
2016-11-04 22:17:16 +01:00
Bram Moolenaar aab3383e70 patch 8.0.0061
Problem:    Compiler warning for unused variable.
Solution:   Add #ifdef. (John Marriott)
2016-11-04 22:08:29 +01:00
Bram Moolenaar 426f375422 patch 8.0.0060
Problem:    When using an Ex command for 'keywordprg' it is escaped as with a
            shell command. (Romain Lafourcade)
Solution:   Escape for an Ex command. (closes #1175)
2016-11-04 21:22:37 +01:00
Bram Moolenaar de5e2c219b patch 8.0.0059
Problem:    Vim does not build on VMS systems.
Solution:   Various changes for VMS. (Zoltan Arpadffy)
2016-11-04 20:35:31 +01:00
Bram Moolenaar 91e44a3305 patch 8.0.0058
Problem:    Positioning of the popup menu is not good.
Solution:   Position it better. (Hirohito Higashi)
2016-11-04 20:08:52 +01:00
Bram Moolenaar 9376f5f482 patch 8.0.0057
Problem:    Tests fail without the 'keymap' features.
Solution:   Check for feature in test.
2016-11-04 16:41:20 +01:00
Bram Moolenaar d0b5138ba4 patch 8.0.0056
Problem:    When setting 'filetype' there is no check for a valid name.
Solution:   Only allow valid characters in 'filetype', 'syntax' and 'keymap'.
2016-11-04 15:23:45 +01:00
Kazuki Sakamoto 2a2ff9da47 Merge remote-tracking branch 'vim/master' 2016-10-31 16:33:05 -07:00
Bram Moolenaar 3a117e19e0 patch 8.0.0055
Problem:    Minor comment and style deficiencies.
Solution:   Update comments and fix style.
2016-10-30 21:57:52 +01:00
Bram Moolenaar b4ada79aa7 Runtime file updates. 2016-10-30 21:55:26 +01:00
Kazuki Sakamoto 4dfba198e1 Merge remote-tracking branch 'vim/master' 2016-10-29 06:54:12 -07:00
Bram Moolenaar fb63090b62 patch 8.0.0054
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. Now only when there is no job object.
            (Yasuhiro Matsumoto, closes #1203)
2016-10-29 14:55:00 +02:00
Bram Moolenaar 60ef3e81f4 patch 8.0.0053
Problem:    No test for what 8.0.0047 fixes.
Solution:   Add a test. (Hirohito Higashi)
2016-10-29 14:37:56 +02:00
Kazuki Sakamoto 89be02e06e MacVim Snapshot 114
Binary targets macOS 10.8+

- Vim patch 8.0.0052
- Fix symbol not found crash on -10.11

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-10-28 23:02:42 -07:00
Kazuki Sakamoto eb4d05a87a Merge pull request #395 from macvim-dev/fix/os_log
Fix "Symbol not found: _os_log_type_enabled" on 10.11 or earlier
2016-10-28 23:02:04 -07:00
Kazuki Sakamoto 60d5a30b3b Fix "Symbol not found: _os_log_type_enabled" on 10.11 or earlier 2016-10-28 22:46:20 -07:00
Kazuki Sakamoto a6a61ecb87 Add workaround for Test_exit_callback_interval 2016-10-28 21:38:01 -07:00
Kazuki Sakamoto 106dc393f4 Merge remote-tracking branch 'vim/master' 2016-10-28 21:31:01 -07:00
Bram Moolenaar 35a1f59d63 patch 8.0.0052
Problem:    Conceal test passes even without the bug fix.
Solution:   Add a redraw command. (Christian Brabandt)
2016-10-28 22:10:27 +02:00
Kazuki Sakamoto 77f2a92caf Merge remote-tracking branch 'vim/master' 2016-10-27 20:59:34 -07:00
Bram Moolenaar 14207f487c patch 8.0.0051
Problem:    New code for job_stop() breaks channel test on AppVeyor.
Solution:   Revert the change.
2016-10-27 21:13:10 +02:00
Bram Moolenaar 01688ad545 patch 8.0.0050
Problem:    An exiting job is detected with a large latency.
Solution:   Check for pending job more often. (Ozaki Kiichi)  Change the
            double loop in mch_inchar() into one.
2016-10-27 20:00:07 +02:00
Bram Moolenaar 2f97912800 patch 8.0.0049
Problem:    When a match ends in part of concealed text highlighting, it might
            mess up concealing by resetting prev_syntax_id.
Solution:   Do not reset prev_syntax_id and add a test to verify. (Christian
            Brabandt, closes #1092)
2016-10-27 17:27:44 +02:00
Bram Moolenaar 6d5ad4c411 Updated runtime files. 2016-10-27 17:00:16 +02:00
Bram Moolenaar a350bab042 patch 8.0.0048
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. (Yasuhiro Matsumoto, closes #1184)
2016-10-27 16:46:53 +02:00
Bram Moolenaar 50e5376926 patch 8.0.0047
Problem:    Crash when using the preview window from an unnamed buffer.
            (lifepillar)
Solution:   Do not clear the wrong buffer. (closes #1200)
2016-10-27 14:49:15 +02:00
Kazuki Sakamoto 5a07be6ed4 Merge remote-tracking branch 'vim/master' 2016-10-23 21:38:53 -07:00
Bram Moolenaar 46fceaaa8d Updated runtime files. 2016-10-23 21:21:08 +02:00
Kazuki Sakamoto 239a7e4f53 MacVim Snapshot 113
Binary targets macOS 10.8+

- Vim patch 8.0.0046
- Update QLStephen to 1.4.4

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-10-21 23:57:37 -07:00
Kazuki Sakamoto 4d9d4ac26a Merge remote-tracking branch 'vim/master' 2016-10-21 23:56:28 -07:00
Bram Moolenaar 7756e7465d patch 8.0.0046
Problem:    Using NUL instead of NULL.
Solution:   Change to NULL. (Dominique Pelle)
2016-10-21 20:35:37 +02:00
Kazuki Sakamoto bbfcd01b07 Merge remote-tracking branch 'vim/master' 2016-10-18 20:52:42 -07:00
Bram Moolenaar bb09ceb954 patch 8.0.0045
Problem:    Calling job_stop() right after job_start() does not work.
Solution:   Block signals while fork is still busy. (Ozaki Kiichi, closes
            #1155)
2016-10-18 16:27:23 +02:00
Bram Moolenaar 025e3e0baf patch 8.0.0044
Problem:    In diff mode the cursor may end up below the last line, resulting
            in an ml_get error.
Solution:   Check the line to be valid.
2016-10-18 14:50:18 +02:00
Bram Moolenaar 9ec7fa82a2 patch 8.0.0043
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" with CTRL-N the change is not saved for undo.  (Tommy
            Allen)
Solution:   Call stop_arrow() before inserting for any key.
2016-10-18 13:06:41 +02:00
Kazuki Sakamoto 3611fbfb56 Merge remote-tracking branch 'vim/master' 2016-10-17 18:50:52 -07:00
Bram Moolenaar cbd3bd6cbe patch 8.0.0042
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" change is not saved for undo.  (Tommy Allen)
Solution:   Call stop_arrow() before inserting for pressing Enter.
2016-10-17 20:47:02 +02:00
Kazuki Sakamoto a77a9b24dc Merge remote-tracking branch 'vim/master' 2016-10-16 09:19:19 -07:00
Bram Moolenaar 869e35270e patch 8.0.0041
Problem:    When using Insert mode completion but not actually inserting
            anything an undo item is still created. (Tommy Allen)
Solution:   Do not call stop_arrow() when not inserting anything.
2016-10-16 15:35:47 +02:00
Bram Moolenaar 8507747600 patch 8.0.0040
Problem:    Whole line highlighting with matchaddpos() does not work.
Solution:   Check for zero length. (Hirohito Higashi)
2016-10-16 14:35:48 +02:00
Kazuki Sakamoto 265671c4a9 Merge pull request #385 from lifepillar/master
Add Edit > Color Scheme > Find More Color Schemes.
2016-10-16 02:31:40 -07:00
Lifepillar 04d045a60f Add Edit > Color Scheme > Find More Color Schemes.
Add a menu item to search for more color schemes in 'packpath'.
Modeled after Tools.Spelling.Find More Languages.
2016-10-16 10:15:43 +02:00
Kazuki Sakamoto d7e940584b Merge pull request #387 from macvim-dev/feature/qlstephen-latest
Update QLStephen
2016-10-15 22:37:19 -07:00
Kazuki Sakamoto e9a431e6c3 Update QLStephen
- https://github.com/whomwah/qlstephen
  - 9cbf597dba0cbb790b0d76d10a22e0ad56b0f23a
2016-10-15 22:13:24 -07:00
Kazuki Sakamoto 3b3d235308 Merge remote-tracking branch 'vim/master' 2016-10-15 21:31:00 -07:00
Kazuki Sakamoto a1a9cc7ef6 Merge pull request #384 from macvim-dev/revert-331-colorscheme-menu
Revert "Add themes under packpath to Edit > Color Scheme."
2016-10-15 11:54:19 -07:00
Kazuki Sakamoto 2ae331a486 Revert "Add themes under packpath to Edit > Color Scheme." 2016-10-15 11:51:59 -07:00
Bram Moolenaar 156919f99a patch 8.0.0039
Problem:    When Vim 8 reads an old viminfo and exits, the next time marks are
            not read from viminfo. (Ned Batchelder)
Solution:   Set a mark when it wasn't set before, even when the timestamp is
            zero. (closes #1170)
2016-10-15 20:46:20 +02:00
Bram Moolenaar ca291aec99 patch 8.0.0038
Problem:    OPEN_CHR_FILES not defined for FreeBSD using Debian userland
            files.
Solution:   Check for __FreeBSD_kernel__. (James McCoy, closes #1166)
2016-10-15 19:33:50 +02:00
Bram Moolenaar 0a9046fbcb patch 8.0.0037
Problem:    Get E924 when switching tabs. ()
Solution:   Use win_valid_any_tab() instead of win_valid(). (Martin Vuille,
            closes #1167, closes #1171)
2016-10-15 19:28:13 +02:00
Bram Moolenaar 97792de276 patch 8.0.0036
Problem:    Detecting that a job has finished may take a while.
Solution:   Check for a finished job more often (Ozaki Kiichi)
2016-10-15 18:36:49 +02:00
Bram Moolenaar 472e85970e patch 8.0.0035
Problem:    Order of matches for 'omnifunc' is messed up. (Danny Su)
Solution:   Do not set compl_curr_match when called from complete_check().
            (closes #1168)
2016-10-15 17:06:47 +02:00
Bram Moolenaar 9e507ca8a3 patch 8.0.0034
Problem:    No completion for ":messages".
Solution:   Complete "clear" argument. (Hirohito Higashi)
2016-10-15 15:39:39 +02:00
Bram Moolenaar a6c27ee6db patch 8.0.0033
Problem:    Cannot use overlapping positions with matchaddpos().
Solution:   Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi)
2016-10-15 14:56:30 +02:00
Kazuki Sakamoto 673a11a9d1 MacVim Snapshot 111
Binary targets macOS 10.8+

- Vim patch 8.0.0032
- Introduce Askpass dialog script for sudo and ssh https://blog.retep.org/2009/04/09/ssh-askpass-on-osx-10-5/
- Fix scrolling issue on 10.12

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-10-13 21:41:37 -07:00
Kazuki Sakamoto 01765cd070 Merge pull request #381 from macvim-dev/fix/scroll
Fix scroll on 10.12
2016-10-13 21:36:25 -07:00
Kazuki Sakamoto 39c4be7ac4 Fix scroll on 10.12 2016-10-13 20:53:15 -07:00
Kazuki Sakamoto 9172041601 Merge remote-tracking branch 'vim/master' 2016-10-13 20:33:15 -07:00
Bram Moolenaar 4575876dc8 Updated runtime files. 2016-10-12 23:08:06 +02:00
Bram Moolenaar 3e8474dd50 patch 8.0.0032
Problem:    Tests may change the input file when something goes wrong.
Solution:   Avoid writing the input file.
2016-10-12 17:52:42 +02:00
Bram Moolenaar e8ef3a0934 patch 8.0.0031
Problem:    After ":bwipeout" 'fileformat' is not set to the right default.
Solution:   Get the default from 'fileformats'. (Mike Williams)
2016-10-12 17:45:29 +02:00
Bram Moolenaar 0ba407012c patch 8.0.0030
Problem:    Mouse mode is not automatically detected for tmux.
Solution:   Check for 'term' to be "tmux". (Michael Henry)
2016-10-12 14:50:54 +02:00
Bram Moolenaar cea912af72 patch 8.0.0029
Problem:    Code for MS-Windows is complicated because of the exceptions for
            old systems.
Solution:   Drop support for MS-Windows older than Windows XP. (Ken Takata)
2016-10-12 14:20:24 +02:00
Bram Moolenaar a7c023ec88 patch 8.0.0028
Problem:    Superfluous semicolons.
Solution:   Remove them. (Ozaki Kiichi)
2016-10-12 12:13:35 +02:00
Kazuki Sakamoto 4cf97cebcf Merge pull request #378 from macvim-dev/fix/xcode7
Fix build for Xcode 7 or earlier
2016-10-11 10:01:57 -07:00
Kazuki Sakamoto 0f16ec94a6 Fix build for Xcode 7 or earlier 2016-10-11 08:35:12 -07:00
Bram Moolenaar dc08328821 Updated runtime files. 2016-10-11 08:57:33 +02:00
Kazuki Sakamoto a8e1b3df21 Move askpass setting 2016-10-09 11:37:39 -07:00
Kazuki Sakamoto b28f194bcf Merge pull request #375 from macvim-dev/feature/askpass
Introduce Askpass dialog script for sudo and ssh
2016-10-09 11:34:11 -07:00
Kazuki Sakamoto a550884a40 Introduce Askpass dialog script for sudo and ssh
https://blog.retep.org/2009/04/09/ssh-askpass-on-osx-10-5/
2016-10-09 11:14:11 -07:00
Kazuki Sakamoto 96dc4e1390 MacVim Snapshot 111
Binary targets macOS 10.8+

- Vim patch 8.0.0027

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5.2
- Ruby 2.0
2016-10-09 10:27:25 -07:00
Kazuki Sakamoto 8743ed43c8 Sync channel proto with vim 2016-10-09 10:15:46 -07:00
Kazuki Sakamoto 1e00286144 Merge remote-tracking branch 'vim/master' 2016-10-09 09:02:41 -07:00
Bram Moolenaar dc0ccaee68 patch 8.0.0027
Problem:    A channel is closed when reading on stderr or stdout fails, but
            there may still be something to read on another part.
Solution:   Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
2016-10-09 17:28:01 +02:00
Bram Moolenaar 9b45794818 patch 8.0.0026
Problem:    Error format with %W, %C and %Z does not work. (Gerd Wachsmuth)
Solution:   Skip code when qf_multiignore is set. (Lcd)
2016-10-09 16:10:05 +02:00
Bram Moolenaar 936c48f8ca patch 8.0.0025
Problem:    Inconsistent use of spaces vs tabs in gd test.
Solution:   Use tabs. (Anton Lindqvist)
2016-10-09 15:50:48 +02:00
Bram Moolenaar 8ddef48d1e patch 8.0.0024
Problem:    When the netbeans channel closes, "DETACH" is put in the output
            part. (Ozaki Kiichi)
Solution:   Write "DETACH" in the socket part.
2016-10-09 15:43:25 +02:00
Kazuki Sakamoto 70d6f82178 Merge remote-tracking branch 'vim/master' 2016-10-08 19:59:21 -07:00
Bram Moolenaar 226630a030 patch 8.0.0023
Problem:    "gd" and "gD" may find a match in a comment or string.
Solution:   Ignore matches in comments and strings. (Anton Lindqvist)
2016-10-08 19:21:31 +02:00
Kazuki Sakamoto d22cb61149 Merge remote-tracking branch 'vim/master' 2016-10-03 20:51:23 -07:00
Bram Moolenaar ec68a99464 patch 8.0.0022
Problem:    If a channel in NL mode is missing the NL at the end the remaining
            characters are dropped.
Solution:   When the channel is closed use the remaining text. (Ozaki Kiichi)
2016-10-03 21:37:41 +02:00
Kazuki Sakamoto 8610e74d73 Merge remote-tracking branch 'vim/master' 2016-10-02 20:31:52 -07:00
Bram Moolenaar 84dbd494dc patch 8.0.0021
Problem:    In the GUI when redrawing the cursor it may be on the second half
            of a double byte character.
Solution:   Correct the cursor column. (Yasuhiro Matsumoto)
2016-10-02 23:09:31 +02:00
Kazuki Sakamoto d76626f3c9 Merge remote-tracking branch 'vim/master' 2016-10-02 09:04:29 -07:00
Bram Moolenaar 6100d02aab patch 8.0.0020
Problem:    The regexp engines are not reentrant.
Solution:   Add regexec_T and save/restore the state when needed.
2016-10-02 16:51:57 +02:00
Kazuki Sakamoto 6c585c1bfd Merge pull request #370 from macvim-dev/fix/warnings
Suppress warnings for macOS 10.12
2016-10-02 01:49:27 -07:00
Kazuki Sakamoto c036347336 Suppress warnings for macOS 10.12 2016-10-02 01:19:13 -07:00
Bram Moolenaar 2ec618c9fe Updated runtime files. 2016-10-01 14:47:05 +02:00
337 changed files with 16872 additions and 10332 deletions
+2
View File
@@ -5,6 +5,7 @@ src/xxd/xxd
src/auto/if_perl.c
src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h
src/objects/.dirstamp
src/tags
# We do need src/auto/configure.
@@ -80,6 +81,7 @@ src/testdir/viminfo
src/memfile_test
src/json_test
src/message_test
src/kword_test
# From MacVim
.*.swp
+1 -1
View File
@@ -17,7 +17,7 @@ env:
vi_cv_path_plain_lua=/usr/local/bin/lua
vi_cv_dll_name_perl=/System/Library/Perl/5.16/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.5/Python
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.6/Python
VIMCMD=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
"CONFOPT='--with-features=huge --enable-multibyte --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
+3 -1
View File
@@ -45,6 +45,7 @@ SRC_ALL = \
src/hashtab.c \
src/json.c \
src/json_test.c \
src/kword_test.c \
src/list.c \
src/keymap.h \
src/macros.h \
@@ -122,6 +123,7 @@ SRC_ALL = \
src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py \
src/testdir/python_after/*.py \
src/testdir/python_before/*.py \
src/testdir/pyxfile/*.py \
src/testdir/bench*.in \
src/testdir/bench*.vim \
src/testdir/samples/*.txt \
@@ -207,7 +209,7 @@ SRC_UNIX = \
src/config.mk.dist \
src/config.mk.in \
src/configure \
src/configure.in \
src/configure.ac \
src/gui_at_fs.c \
src/gui_at_sb.c \
src/gui_at_sb.h \
+5 -30
View File
@@ -1,38 +1,13 @@
README_mac.txt for version 8.0 of Vim: Vi IMproved.
This file explains the installation of MacVim.
See "README.txt" for general information about Vim.
See "src/MacVim/README" for an overview of the MacVim specific source code.
MacVim uses the usual configure/make steps to build the binary but instead of
"make install" you just drag the app bundle into the directory you wish to
install in (usually `/Applications').
How to build and install
How to install MacVim?
========================
Run `./configure` in the `src/` directory with the flags you want (call
`./configure --help` to see a list of flags) e.g.:
Download MacVim.dmg from latest binary release page https://github.com/macvim-dev/macvim/releases/latest , open the dmg file, and copy MacVim.app to /Applications.
$ cd src
$ ./configure --with-features=huge \
--enable-rubyinterp \
--enable-pythoninterp \
--enable-perlinterp \
--enable-cscope
Now build the project using `make`:
Questions?
========================
$ make
Please take a look at the home page http://macvim-dev.github.io/macvim/
The resulting app bundle will reside under `MacVim/build/Release`. To try it
out quickly, type:
$ open MacVim/build/Release/MacVim.app
To install MacVim, type
$ open MacVim/build/Release
and drag the MacVim icon into your `Applications` folder.
+184
View File
@@ -0,0 +1,184 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 21
let s:keepcpo= &cpo
set cpo&vim
" Helper functions {{{
function! s:context_echo(message, mode)
redraw
echo "\r"
execute 'echohl' a:mode
echomsg '[ConTeXt]' a:message
echohl None
endf
function! s:sh()
return has('win32') || has('win64') || has('win16') || has('win95')
\ ? ['cmd.exe', '/C']
\ : ['/bin/sh', '-c']
endfunction
" For backward compatibility
if exists('*win_getid')
function! s:win_getid()
return win_getid()
endf
function! s:win_id2win(winid)
return win_id2win(a:winid)
endf
else
function! s:win_getid()
return winnr()
endf
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')
else
call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
endif
endfunction
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))
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
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')
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
" 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
+25
View File
@@ -0,0 +1,25 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 15
let s:keepcpo= &cpo
set cpo&vim
" Complete keywords in MetaPost blocks
function! contextcomplete#Complete(findstart, base)
if a:findstart == 1
if len(synstack(line('.'), 1)) > 0 &&
\ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic'
return syntaxcomplete#Complete(a:findstart, a:base)
else
return -3
endif
else
return syntaxcomplete#Complete(a:findstart, a:base)
endif
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 fdm=marker
+5 -1
View File
@@ -1,6 +1,6 @@
" Vim autoload file for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Nov 05
" Last Change: 2016 Sep 28
" These functions are used by the gzip plugin.
@@ -63,6 +63,9 @@ fun gzip#read(cmd)
" set 'modifiable'
let ma_save = &ma
setlocal ma
" set 'write'
let write_save = &write
set write
" Reset 'foldenable', otherwise line numbers get adjusted.
if has("folding")
let fen_save = &fen
@@ -127,6 +130,7 @@ fun gzip#read(cmd)
let &pm = pm_save
let &cpo = cpo_save
let &l:ma = ma_save
let &write = write_save
if has("folding")
let &l:fen = fen_save
endif
+84 -16
View File
@@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2015 Jul 13
" Last Change: 2016 Oct 10
"
" OPTIONS:
"
@@ -195,6 +195,8 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
" }}}
elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
elseif context =~? 'instanceof'
return phpcomplete#CompleteClassName(a:base, ['c', 'n'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$' && a:base == ''
return ['implements']
elseif context =~? 'extends'
@@ -787,6 +789,8 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
if kinds == ['c', 'i']
let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['c', 'n']
let filterstr = 'v:val =~? "\\(class\\|namespace\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['c']
let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['i']
@@ -996,7 +1000,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
let required_modifiers += ['static']
endif
let all_variable = filter(deepcopy(a:sccontent),
\ 'v:val =~ "^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$"')
\ 'v:val =~ "\\(^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$\\|^\\s*\\(\\/\\|\\*\\)*\\s*@property\\s\\+\\S\\+\\s\\S\\{-}\\s*$\\)"')
let variables = []
for i in all_variable
@@ -1160,6 +1164,14 @@ function! phpcomplete#GetTaglist(pattern) " {{{
endif
let tags = taglist(a:pattern)
for tag in tags
for prop in keys(tag)
if prop == 'cmd' || prop == 'static' || prop == 'kind' || prop == 'builtin'
continue
endif
let tag[prop] = substitute(tag[prop], '\\\\', '\\', 'g')
endfor
endfor
let s:cache_tags[a:pattern] = tags
let has_key = has_key(s:cache_tags, a:pattern)
let s:cache_tags_checksum = cache_checksum
@@ -1379,7 +1391,7 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
" Get Structured information of all classes and subclasses including namespace and includes
" try to find the method's return type in docblock comment
for classstructure in classcontents
let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method
let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != ''
break
@@ -1387,8 +1399,17 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
endfor
if doc_str != ''
let docblock = phpcomplete#ParseDocBlock(doc_str)
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type')
let type = has_key(docblock.return, 'type') ? docblock.return.type : docblock.var.type
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
if type == ''
for property in docblock.properties
if property.description =~? method
let type = property.type
break
endif
endfor
endif
" there's a namespace in the type, threat the type as FQCN
if type =~ '\\'
@@ -1554,6 +1575,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif get(methodstack, 0) =~# function_invocation_pattern
let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern)
let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace)
if function_file == ''
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
endif
if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string
@@ -1569,7 +1593,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
endif
endif
if classname_candidate != ''
@@ -1650,9 +1674,10 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*'))
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(
\ classname,
\ a:current_namespace,
\ namespace_for_class,
\ a:imports,
\ sub_methodstack)
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif
endif
@@ -1783,6 +1808,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports)
let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace)
if function_file == ''
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
endif
if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string
@@ -1798,7 +1826,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let classname_candidate = docblock.return.type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
break
endif
endif
@@ -1861,6 +1889,8 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
for tag in tags
if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze'
let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze')
" unescape the classname, it would have "\" doubled since it is an ex command
let classname = substitute(classname, '\\\(\_.\)', '\1', 'g')
return classname
endif
endfor
@@ -2077,6 +2107,19 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
endif
call searchpair('{', '', '}', 'W')
let class_closing_bracket_line = line('.')
" Include class docblock
let doc_line = cfline - 1
if getline(doc_line) =~? '^\s*\*/'
while doc_line != 0
if getline(doc_line) =~? '^\s*/\*\*'
let cfline = doc_line
break
endif
let doc_line -= 1
endwhile
endif
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
let used_traits = []
@@ -2241,8 +2284,19 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
let line = a:sccontent[i]
" search for a function declaration
if line =~? a:search
let l = i - 1
" start backward serch for the comment block
if line =~? '@property'
let doc_line = i
while doc_line != sccontent_len - 1
if a:sccontent[doc_line] =~? '^\s*\*/'
let l = doc_line
break
endif
let doc_line += 1
endwhile
else
let l = i - 1
endif
" start backward search for the comment block
while l != 0
let line = a:sccontent[l]
" if it's a one line docblock like comment and we can just return it right away
@@ -2263,7 +2317,7 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
return ''
end
while l != 0
while l >= 0
let line = a:sccontent[l]
if line =~? '^\s*/\*\*'
let comment_start = l
@@ -2297,9 +2351,10 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
\ 'return': {},
\ 'throws': [],
\ 'var': {},
\ 'properties': [],
\ }
let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@type\|@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
let docblock_lines = split(a:docblock, "\n")
let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"')
@@ -2334,15 +2389,26 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
endif
endfor
let var_line = filter(copy(docblock_lines), 'v:val =~? "^@var"')
let var_line = filter(copy(docblock_lines), 'v:val =~? "^\\(@var\\|@type\\)"')
if len(var_line) > 0
let var_parts = matchlist(var_line[0], '@var\s\+\(\S\+\)\s*\(.*\)')
let var_parts = matchlist(var_line[0], '\(@var\|@type\)\s\+\(\S\+\)\s*\(.*\)')
let res['var'] = {
\ 'line': var_parts[0],
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 1, '')),
\ 'description': get(var_parts, 2, '')}
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 2, '')),
\ 'description': get(var_parts, 3, '')}
endif
let property_lines = filter(copy(docblock_lines), 'v:val =~? "^@property"')
for property_line in property_lines
let parts = matchlist(property_line, '\(@property\)\s\+\(\S\+\)\s*\(.*\)')
if len(parts) > 0
call add(res.properties, {
\ 'line': parts[0],
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')),
\ 'description': get(parts, 3, '')})
endif
endfor
return res
endfunction
" }}}
@@ -2498,6 +2564,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let name = matchstr(name, '\\\zs[^\\]\+\ze$')
endif
endif
" leading slash is not required use imports are always absolute
let imports[name] = {'name': object, 'kind': ''}
endfor
@@ -2533,6 +2600,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
elseif !exists('no_namespace_candidate')
" save the first namespacless match to be used if no better
" candidate found later on
let tag.namespace = namespace_for_classes
let no_namespace_candidate = tag
endif
endif
+1 -1
View File
@@ -196,7 +196,7 @@ function! rubycomplete#Complete(findstart, base)
if c =~ '\w'
continue
elseif ! c =~ '\.'
idx = -1
let idx = -1
break
else
break
+8 -1
View File
@@ -41,9 +41,16 @@ this autocmd might be useful:
autocmd SourcePre */colors/blue_sky.vim set background=dark
Replace "blue_sky" with the name of the colorscheme.
In case you want to tweak a colorscheme after it was loaded, check out that
In case you want to tweak a colorscheme after it was loaded, check out the
ColorScheme autocmd event.
To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
and use `:runtime` to load the original colorscheme:
" load the "evening" colorscheme
runtime colors/evening.vim
" change the color of statements
hi Statement ctermfg=Blue guifg=Blue
To see which highlight group is used where, find the help for
"highlight-groups" and "group-name".
+3 -3
View File
@@ -1,6 +1,6 @@
" Vim color file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Apr 14
" Last Change: 2016 Oct 10
" This color scheme uses a dark grey background.
@@ -46,8 +46,8 @@ hi CursorColumn term=reverse ctermbg=Black guibg=grey40
hi CursorLine term=underline cterm=underline guibg=grey40
" Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5
hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
hi Special term=bold ctermfg=LightRed guifg=Orange
if &t_Co > 8
hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
endif
+54
View File
@@ -0,0 +1,54 @@
" Vim compiler file
" Compiler: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 21
if exists("current_compiler")
finish
endif
let s:keepcpo= &cpo
set cpo&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)
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'))
else
let 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
execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo
+16
View File
@@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: csslint for CSS
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 21
if exists("current_compiler")
finish
endif
let current_compiler = "csslint"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=csslint\ --format=compact
CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m
+26
View File
@@ -0,0 +1,26 @@
" Vim compiler file
" Compiler: GHC Haskell Compiler
" Maintainer: Daniel Campoverde <alx@sillybytes.net>
" Latest Revision: 2016-11-29
if exists("current_compiler")
finish
endif
let current_compiler = "ghc"
let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat=
\%-G%.%#:\ build,
\%-G%.%#preprocessing\ library\ %.%#,
\%-G[%.%#]%.%#,
\%E%f:%l:%c:\ %m,
\%-G--%.%#
if exists('g:compiler_ghc_ignore_unmatched_lines')
CompilerSet errorformat+=%-G%.%#
endif
let &cpo = s:cpo_save
unlet s:cpo_save
+16
View File
@@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: Pylint for Python
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 20
if exists("current_compiler")
finish
endif
let current_compiler = "pylint"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no
CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%#
+15 -6
View File
@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.0. Last change: 2016 Sep 21
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|). The usual
place to put autocommands is in your .vimrc or .exrc file.
*E203* *E204* *E143* *E855*
*E203* *E204* *E143* *E855* *E937*
WARNING: Using autocommands is very powerful, and may lead to unexpected side
effects. Be careful not to destroy your text.
- It's a good idea to do some testing on an expendable copy of a file first.
@@ -79,11 +79,15 @@ exception is that "<sfile>" is expanded when the autocmd is defined. Example:
Here Vim expands <sfile> to the name of the file containing this line.
When your .vimrc file is sourced twice, the autocommands will appear twice.
To avoid this, put this command in your .vimrc file, before defining
autocommands: >
`:autocmd` adds to the list of autocommands regardless of whether they are
already present. When your .vimrc file is sourced twice, the autocommands
will appear twice. To avoid this, define your autocommands in a group, so
that you can easily clear them: >
:autocmd! " Remove ALL autocommands for the current group.
augroup vimrc
autocmd! " Remove all vimrc autocommands
au BufNewFile,BufRead *.html so <sfile>:h/html.vim
augroup END
If you don't want to remove all autocommands, you can instead use a variable
to ensure that Vim includes the autocommands only once: >
@@ -130,8 +134,13 @@ prompt. When one command outputs two messages this can happen anyway.
:au[tocmd]! [group] {event}
Remove ALL autocommands for {event}.
Warning: You should not do this without a group for
|BufRead| and other common events, it can break
plugins, syntax highlighting, etc.
:au[tocmd]! [group] Remove ALL autocommands.
Warning: You should normally not do this without a
group, it breaks plugins, syntax highlighting, etc.
When the [group] argument is not given, Vim uses the current group (as defined
with ":augroup"); otherwise, Vim uses the group defined with [group].
+3 -3
View File
@@ -1,4 +1,4 @@
*change.txt* For Vim version 8.0. Last change: 2016 Sep 11
*change.txt* For Vim version 8.0. Last change: 2016 Nov 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -684,6 +684,7 @@ g& Synonym for `:%s//~/&` (repeat last substitute with
*:s_flags*
The flags that you can use for the substitute commands:
*:&&*
[&] Must be the first one: Keep the flags from the previous substitute
command. Examples: >
:&&
@@ -913,8 +914,7 @@ Exceptions:
Substitute with an expression *sub-replace-expression*
*sub-replace-\=* *s/\=*
When the substitute string starts with "\=" the remainder is interpreted as an
expression. This does not work recursively: a |substitute()| function inside
the expression cannot use "\=" for the substitute string.
expression.
The special meaning for characters as mentioned at |sub-replace-special| does
not apply except for "<CR>". A <NL> character is used as a line break, you
+32 -12
View File
@@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.0. Last change: 2016 Sep 20
*channel.txt* For Vim version 8.0. Last change: 2016 Dec 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -155,7 +155,13 @@ Use |ch_status()| to see if the channel could be opened.
func MyCloseHandler(channel)
< Vim will invoke callbacks that handle data before invoking
close_cb, thus when this function is called no more data will
be received.
be passed to the callbacks.
*channel-drop*
"drop" Specifies when to drop messages:
"auto" When there is no callback to handle a message.
The "close_cb" is also considered for this.
"never" All messages will be kept.
*waittime*
"waittime" The time to wait for the connection to be made in
milliseconds. A negative number waits forever.
@@ -369,7 +375,7 @@ Leave out the fourth argument if no response is to be sent:
==============================================================================
6. Using a RAW or NL channel *channel-raw*
If mode is RAW or NL then a message can be send like this: >
If mode is RAW or NL then a message can be sent like this: >
let response = ch_evalraw(channel, {string})
The {string} is sent as-is. The response will be what can be read from the
@@ -418,7 +424,11 @@ This uses the channel timeout. To read without a timeout, just get any
message that is available: >
let output = ch_read(channel, {'timeout': 0})
When no message was available then the result is v:none for a JSON or JS mode
channels, an empty string for a RAW or NL channel.
channels, an empty string for a RAW or NL channel. You can use |ch_canread()|
to check if there is something to read.
Note that when there is no callback message are dropped. To avoid that add a
close callback to the channel.
To read all output from a RAW channel that is available: >
let output = ch_readraw(channel)
@@ -465,6 +475,11 @@ it like this: >
Without the handler you need to read the output with |ch_read()| or
|ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|.
Note that if the job exits before you read the output, the output may be lost.
This depends on the system (on Unix this happens because closing the write end
of a pipe causes the read end to get EOF). To avoid this make the job sleep
for a short while before it exits.
The handler defined for "out_cb" will not receive stderr. If you want to
handle that separately, add an "err_cb" handler: >
let job = job_start(command, {"out_cb": "MyHandler",
@@ -516,7 +531,7 @@ If the job can take some time and you don't need intermediate results, you can
add a close callback and read the output there: >
func! CloseHandler(channel)
while ch_status(a:channel) == 'buffered'
while ch_status(a:channel, {'part': 'out'}) == 'buffered'
echomsg ch_read(a:channel)
endwhile
endfunc
@@ -529,7 +544,7 @@ You will want to do something more useful than "echomsg".
To start another process without creating a channel: >
let job = job_start(command,
\ {"in_io": "null", "out_io": "null", "err_io": "null"})
\ {"in_io": "null", "out_io": "null", "err_io": "null"})
This starts {command} in the background, Vim does not wait for it to finish.
@@ -590,12 +605,17 @@ See |job_setoptions()| and |ch_setoptions()|.
*job-close_cb*
"close_cb": handler Callback for when the channel is closed. Same as
"close_cb" on |ch_open()|, see |close_cb|.
*job-drop*
"drop" Specifies when to drop messages. Same as "drop" on
|ch_open()|, see |channel-drop|. For "auto" the
exit_cb is not considered.
*job-exit_cb*
"exit_cb": handler Callback for when the job ends. The arguments are the
job and the exit status.
Vim checks about every 10 seconds for jobs that ended.
The check also be triggered by calling |job_status()|,
which may then invoke the exit_cb handler.
Vim checks up to 10 times per second for jobs that
ended. The check can also be triggered by calling
|job_status()|, which may then invoke the exit_cb
handler.
Note that data can be buffered, callbacks may still be
called after the process ends.
*job-timeout*
@@ -623,7 +643,7 @@ See |job_setoptions()| and |ch_setoptions()|.
"channel": {channel} Use an existing channel instead of creating a new one.
The parts of the channel that get used for the new job
will be disconnected from what they were used before.
If the channel was still use by another job this may
If the channel was still used by another job this may
cause I/O errors.
Existing callbacks and other settings remain.
@@ -641,7 +661,7 @@ See |job_setoptions()| and |ch_setoptions()|.
"out_io": "null" disconnect stdout (goes to /dev/null)
"out_io": "pipe" stdout is connected to the channel (default)
"out_io": "file" stdout writes to a file
"out_io": "buffer" stdout appends to a buffer (see below)
"out_io": "buffer" stdout appends to a buffer (see below)
"out_name": "/path/file" the name of the file or buffer to write to
"out_buf": number the number of the buffer to write to
"out_modifiable": 0 when writing to a buffer, 'modifiable' will be off
@@ -654,7 +674,7 @@ See |job_setoptions()| and |ch_setoptions()|.
"err_io": "null" disconnect stderr (goes to /dev/null)
"err_io": "pipe" stderr is connected to the channel (default)
"err_io": "file" stderr writes to a file
"err_io": "buffer" stderr appends to a buffer (see below)
"err_io": "buffer" stderr appends to a buffer (see below)
"err_name": "/path/file" the name of the file or buffer to write to
"err_buf": number the number of the buffer to write to
"err_modifiable": 0 when writing to a buffer, 'modifiable' will be off
+12 -8
View File
@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.0. Last change: 2016 Aug 27
*cmdline.txt* For Vim version 8.0. Last change: 2016 Sep 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -229,9 +229,10 @@ CTRL-Y When there is a modeless selection, copy the selection into
the clipboard. |modeless-selection|
If there is no selection CTRL-Y is inserted as a character.
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
<CR> or <NL> start entered command
*c_<Esc>* *c_Esc*
CTRL-[ *c_CTRL-[* *c_<Esc>* *c_Esc*
<Esc> When typed and 'x' not present in 'cpoptions', quit
Command-line mode without executing. In macros or when 'x'
present in 'cpoptions', start entered command.
@@ -358,8 +359,11 @@ terminals)
List entries 6 to 12 from the search history: >
:history / 6,12
<
List the recent five entries from all histories: >
:history all -5,
List the penultimate entry from all histories: >
:history all -2
<
List the most recent two entries from all histories: >
:history all -2,
:keepp[atterns] {command} *:keepp* *:keeppatterns*
Execute {command}, without adding anything to the search
@@ -1056,10 +1060,10 @@ There are several ways to leave the command-line window:
Insert and in Normal mode.
CTRL-C Continue in Command-line mode. The command-line under the
cursor is used as the command-line. Works both in Insert and
in Normal mode. ":close" also works. There is no redraw,
thus the window will remain visible.
in Normal mode. There is no redraw, thus the window will
remain visible.
:quit Discard the command line and go back to Normal mode.
":exit", ":xit" and CTRL-\ CTRL-N also work.
":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
:qall Quit Vim, unless there are changes in some buffer.
:qall! Quit Vim, discarding changes to any buffer.
+2 -2
View File
@@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.0. Last change: 2016 Jan 31
*develop.txt* For Vim version 8.0. Last change: 2017 Jan 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -177,7 +177,7 @@ The basic steps to make changes to the code:
5. Make a patch with "git diff". You can also create a pull request on
github, but it's the diff that matters.
6. Make a note about what changed, preferably mentioning the problem and the
solution. Send an email to the vim-dev maillist with an explanation and
solution. Send an email to the |vim-dev| maillist with an explanation and
include the diff. Or create a pull request on github.
+3 -2
View File
@@ -1,4 +1,4 @@
*digraph.txt* For Vim version 8.0. Last change: 2014 Jun 19
*digraph.txt* For Vim version 8.0. Last change: 2016 Nov 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -147,7 +147,7 @@ a standard meaning:
Two 2 Hook
Nine 9 Horn
Equals = Cyrillic (= used as second char)
Equals = Cyrillic (= used as second char)
Asterisk * Greek
Percent sign % Greek/Cyrillic special
Plus + smalls: Arabic, capitals: Hebrew
@@ -926,6 +926,7 @@ char digraph hex dec official name ~
† /- 2020 8224 DAGGER
‡ /= 2021 8225 DOUBLE DAGGER
‥ .. 2025 8229 TWO DOT LEADER
… ,. 2026 8230 HORIZONTAL ELLIPSIS
‰ %0 2030 8240 PER MILLE SIGN
1' 2032 8242 PRIME
″ 2' 2033 8243 DOUBLE PRIME
+6 -5
View File
@@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.0. Last change: 2016 Aug 06
*editing.txt* For Vim version 8.0. Last change: 2016 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -181,7 +181,8 @@ start editing another file, Vim will refuse this. In order to overrule this
protection, add a '!' to the command. The changes will then be lost. For
example: ":q" will not work if the buffer was changed, but ":q!" will. To see
whether the buffer was changed use the "CTRL-G" command. The message includes
the string "[Modified]" if the buffer has been changed.
the string "[Modified]" if the buffer has been changed, or "+" if the 'm' flag
is in 'shortmess'.
If you want to automatically save the changes without asking, switch on the
'autowriteall' option. 'autowrite' is the associated Vi-compatible option
@@ -976,12 +977,12 @@ WRITING WITH MULTIPLE BUFFERS *buffer-write*
*:wa* *:wall*
:wa[ll] Write all changed buffers. Buffers without a file
name or which are readonly are not written. {not in
Vi}
name cause an error message. Buffers which are
readonly are not written. {not in Vi}
:wa[ll]! Write all changed buffers, even the ones that are
readonly. Buffers without a file name are not
written. {not in Vi}
written and cause an error message. {not in Vi}
Vim will warn you if you try to overwrite a file that has been changed
+89 -38
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.0. Last change: 2016 Sep 25
*eval.txt* For Vim version 8.0. Last change: 2017 Jan 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2009,6 +2009,7 @@ byteidxcomp({expr}, {nr}) Number byte index of {nr}'th char in {expr}
call({func}, {arglist} [, {dict}])
any call {func} with arguments {arglist}
ceil({expr}) Float round {expr} up
ch_canread({handle}) Number check if there is something to read
ch_close({handle}) none close {handle}
ch_close_in({handle}) none close in part of {handle}
ch_evalexpr({handle}, {expr} [, {options}])
@@ -2221,8 +2222,8 @@ matchstr({expr}, {pat}[, {start}[, {count}]])
String {count}'th match of {pat} in {expr}
matchstrpos({expr}, {pat}[, {start}[, {count}]])
List {count}'th match of {pat} in {expr}
max({list}) Number maximum value of items in {list}
min({list}) Number minimum value of items in {list}
max({expr}) Number maximum value of items in {expr}
min({expr}) Number minimum value of items in {expr}
mkdir({name} [, {path} [, {prot}]])
Number create directory {name}
mode([expr]) String current editing mode
@@ -2238,6 +2239,7 @@ printf({fmt}, {expr1}...) String format text
pumvisible() Number whether popup menu is visible
pyeval({expr}) any evaluate |Python| expression
py3eval({expr}) any evaluate |python3| expression
pyxeval({expr}) any evaluate |python_x| expression
range({expr} [, {max} [, {stride}]])
List items from {expr} to {max}
readfile({fname} [, {binary} [, {max}]])
@@ -2523,7 +2525,7 @@ assert_exception({error} [, {msg}]) *assert_exception()*
assert_fails({cmd} [, {error}]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error.
When {error} is given it must match |v:errmsg|.
When {error} is given it must match in |v:errmsg|.
assert_false({actual} [, {msg}]) *assert_false()*
When {actual} is not false an error message is added to
@@ -2980,16 +2982,28 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
don't fit, a vertical layout is used anyway. For some systems
the horizontal layout is always used.
ch_canread({handle}) *ch_canread()*
Return non-zero when there is something to read from {handle}.
{handle} can be a Channel or a Job that has a Channel.
This is useful to read from a channel at a convenient time,
e.g. from a timer.
Note that messages are dropped when the channel does not have
a callback. Add a close callback to avoid that.
{only available when compiled with the |+channel| feature}
ch_close({handle}) *ch_close()*
Close {handle}. See |channel-close|.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked.
{only available when compiled with the |+channel| feature}
ch_close_in({handle}) *ch_close_in()*
Close the "in" part of {handle}. See |channel-close-in|.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked.
{only available when compiled with the |+channel| feature}
@@ -2998,7 +3012,7 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
Send {expr} over {handle}. The {expr} is encoded
according to the type of channel. The function cannot be used
with a raw channel. See |channel-use|.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
*E917*
{options} must be a Dictionary. It must not have a "callback"
entry. It can have a "timeout" entry to specify the timeout
@@ -3012,7 +3026,7 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
Send {string} over {handle}.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
Works like |ch_evalexpr()|, but does not encode the request or
decode the response. The caller is responsible for the
@@ -3025,7 +3039,7 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
ch_getbufnr({handle}, {what}) *ch_getbufnr()*
Get the buffer number that {handle} is using for {what}.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
{what} can be "err" for stderr, "out" for stdout or empty for
socket output.
Returns -1 when there is no buffer.
@@ -3071,8 +3085,8 @@ ch_log({msg} [, {handle}]) *ch_log()*
|ch_logfile()|.
When {handle} is passed the channel number is used for the
message.
{handle} can be Channel or a Job that has a Channel. The
Channel must open.
{handle} can be a Channel or a Job that has a Channel. The
Channel must be open for the channel number to be used.
ch_logfile({fname} [, {mode}]) *ch_logfile()*
Start logging channel activity to {fname}.
@@ -3099,7 +3113,7 @@ ch_open({address} [, {options}]) *ch_open()*
ch_read({handle} [, {options}]) *ch_read()*
Read from {handle} and return the received message.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
See |channel-more|.
{only available when compiled with the |+channel| feature}
@@ -3113,7 +3127,7 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
according to the type of channel. The function cannot be used
with a raw channel.
See |channel-use|. *E912*
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
{only available when compiled with the |+channel| feature}
@@ -3134,7 +3148,7 @@ ch_setoptions({handle}, {options}) *ch_setoptions()*
"timeout" default read timeout in msec
"mode" mode for the whole channel
See |ch_open()| for more explanation.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
Note that changing the mode may cause queued messages to be
lost.
@@ -3148,7 +3162,7 @@ ch_status({handle} [, {options}]) *ch_status()*
"open" channel can be used
"buffered" channel can be read, not written to
"closed" channel can not be used
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
"buffered" is used when the channel was closed but there is
still data that can be obtained with |ch_read()|.
@@ -3738,7 +3752,7 @@ filter({expr1}, {expr2}) *filter()*
call filter(myList, {idx, val -> idx * val <= 42})
< If you do not use "val" you can leave it out: >
call filter(myList, {idx -> idx % 2 == 1})
<
The operation is done in-place. If you want a |List| or
|Dictionary| to remain unmodified make a copy first: >
:let l = filter(copy(mylist), 'v:val =~ "KEEP"')
@@ -4158,6 +4172,10 @@ getchar([expr]) *getchar()*
exe "normal " . v:mouse_col . "|"
endif
<
When using bracketed paste only the first character is
returned, the rest of the pasted text is dropped.
|xterm-bracketed-paste|.
There is no prompt, you will somehow have to make clear to the
user that a character has to be typed.
There is no mapping for the character.
@@ -4287,7 +4305,9 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
locale locale names (as output of locale -a)
mapping mapping name
menu menus
messages |:messages| suboptions
option options
packadd optional package |pack-add| names
shellcmd Shell command
sign |:sign| suboptions
syntax syntax file names |'syntax'|
@@ -4369,7 +4389,7 @@ getfperm({fname}) *getfperm()*
< This will hopefully (from a security point of view) display
the string "rw-r--r--" or even "rw-------".
For setting permissins use |setfperm()|.
For setting permissions use |setfperm()|.
getftime({fname}) *getftime()*
The result is a Number, which is the last modification time of
@@ -5214,6 +5234,7 @@ join({list} [, {sep}]) *join()*
js_decode({string}) *js_decode()*
This is similar to |json_decode()| with these differences:
- Object key names do not have to be in quotes.
- Strings can be in single quotes.
- Empty items in an array (between two commas) are allowed and
result in v:none items.
@@ -5240,6 +5261,7 @@ json_decode({string}) *json_decode()*
- A trailing comma in an array and object is ignored.
- More floating point numbers are recognized, e.g. "1." for
"1.0".
However, a duplicate key in an object is not allowed. *E938*
The result must be a valid Vim type:
- An empty object member name is not allowed.
- Duplicate object member names are not allowed.
@@ -5779,16 +5801,20 @@ matchstrpos({expr}, {pat}[, {start}[, {count}]]) *matchstrpos()*
The type isn't changed, it's not necessarily a String.
*max()*
max({list}) Return the maximum value of all items in {list}.
If {list} is not a list or one of the items in {list} cannot
be used as a Number this results in an error.
An empty |List| results in zero.
max({expr}) Return the maximum value of all items in {expr}.
{expr} can be a list or a dictionary. For a dictionary,
it returns the maximum of all values in the dictionary.
If {expr} is neither a list nor a dictionary, or one of the
items in {expr} cannot be used as a Number this results in
an error. An empty |List| or |Dictionary| results in zero.
*min()*
min({list}) Return the minimum value of all items in {list}.
If {list} is not a list or one of the items in {list} cannot
be used as a Number this results in an error.
An empty |List| results in zero.
min({expr}) Return the minimum value of all items in {expr}.
{expr} can be a list or a dictionary. For a dictionary,
it returns the minimum of all values in the dictionary.
If {expr} is neither a list nor a dictionary, or one of the
items in {expr} cannot be used as a Number this results in
an error. An empty |List| or |Dictionary| results in zero.
*mkdir()* *E739*
mkdir({name} [, {path} [, {prot}]])
@@ -5822,9 +5848,13 @@ mode([expr]) Return a string that indicates the current mode.
S Select by line
CTRL-S Select blockwise
i Insert
ic Insert mode completion |compl-generic|
ix Insert mode |i_CTRL-X| completion
R Replace |R|
Rc Replace mode completion |compl-generic|
Rv Virtual Replace |gR|
c Command-line
Rx Replace mode |i_CTRL-X| completion
c Command-line editing
cv Vim Ex mode |gQ|
ce Normal Ex mode |Q|
r Hit-enter prompt
@@ -6146,6 +6176,14 @@ pyeval({expr}) *pyeval()*
non-string keys result in error.
{only available when compiled with the |+python| feature}
pyxeval({expr}) *pyxeval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
Uses Python 2 or 3, see |python_x| and 'pyxversion'.
See also: |pyeval()|, |py3eval()|
{only available when compiled with the |+python| or the
|+python3| feature}
*E726* *E727*
range({expr} [, {max} [, {stride}]]) *range()*
Returns a |List| with Numbers:
@@ -6168,9 +6206,9 @@ range({expr} [, {max} [, {stride}]]) *range()*
*readfile()*
readfile({fname} [, {binary} [, {max}]])
Read file {fname} and return a |List|, each line of the file
as an item. Lines broken at NL characters. Macintosh files
separated with CR will result in a single long line (unless a
NL appears somewhere).
as an item. Lines are broken at NL characters. Macintosh
files separated with CR will result in a single long line
(unless a NL appears somewhere).
All NUL characters are replaced with a NL character.
When {binary} contains "b" binary mode is used:
- When the last line ends in a NL an extra empty list item is
@@ -6772,10 +6810,12 @@ setpos({expr}, {list})
[bufnum, lnum, col, off, curswant]
"bufnum" is the buffer number. Zero can be used for the
current buffer. Setting the cursor is only possible for
the current buffer. To set a mark in another buffer you can
use the |bufnr()| function to turn a file name into a buffer
number.
current buffer. When setting an uppercase mark "bufnum" is
used for the mark position. For other marks it specifies the
buffer to set the mark in. You can use the |bufnr()| function
to turn a file name into a buffer number.
For setting the cursor and the ' mark "bufnum" is ignored,
since these are associated with a window, not a buffer.
Does not change the jumplist.
"lnum" and "col" are the position in the buffer. The first
@@ -7233,7 +7273,7 @@ strcharpart({src}, {start}[, {len}]) *strcharpart()*
Like |strpart()| but using character index and length instead
of byte index and length.
When a character index is used where a character does not
exist it is assumed to be one byte. For example: >
exist it is assumed to be one character. For example: >
strcharpart('abc', -1, 2)
< results in 'a'.
@@ -7390,6 +7430,9 @@ submatch({nr}[, {list}]) *submatch()* *E935*
|substitute()| this list will always contain one or zero
items, since there are no real line breaks.
When substitute() is used recursively only the submatches in
the current (deepest) call can be obtained.
Example: >
:s/\d\+/\=submatch(0) + 1/
< This finds the first number in the line and adds one to it.
@@ -7543,7 +7586,11 @@ system({expr} [, {input}]) *system()* *E677*
If {input} is given and is a |List| it is written to the file
in a way |writefile()| does with {binary} set to "b" (i.e.
with a newline between each list item with newlines inside
list items converted to NULs).
list items converted to NULs).
When {input} is given and is a number that is a valid id for
an existing buffer then the content of the buffer is written
to the file line by line, each line terminated by a NL and
NULs characters where the text has a NL.
Pipes are not used, the 'shelltemp' option is not used.
@@ -7593,7 +7640,8 @@ systemlist({expr} [, {input}]) *systemlist()*
Same as |system()|, but returns a |List| with lines (parts of
output separated by NL) with NULs transformed into NLs. Output
is the same as |readfile()| will output with {binary} argument
set to "b".
set to "b". Note that on MS-Windows you may get trailing CR
characters.
Returns an empty string on error.
@@ -8110,7 +8158,7 @@ winnr([{arg}]) The result is a Number, which is the number of the current
is returned.
The number can be used with |CTRL-W_w| and ":wincmd w"
|:wincmd|.
Also see |tabpagewinnr()|.
Also see |tabpagewinnr()| and |win_getid()|.
*winrestcmd()*
winrestcmd() Returns a sequence of |:resize| commands that should restore
@@ -8209,7 +8257,7 @@ writefile({list}, {fname} [, {flags}])
end does cause the last line in the file to end in a NL.
When {flags} contains "a" then append mode is used, lines are
append to the file: >
appended to the file: >
:call writefile(["foo"], "event.log", "a")
:call writefile(["bar"], "event.log", "a")
>
@@ -8380,6 +8428,7 @@ printer Compiled with |:hardcopy| support.
profile Compiled with |:profile| support.
python Compiled with Python 2.x interface. |has-python|
python3 Compiled with Python 3.x interface. |has-python|
pythonx Compiled with |python_x| interface. |has-pythonx|
qnx QNX version of Vim.
quickfix Compiled with |quickfix| support.
reltime Compiled with |reltime()| support.
@@ -8415,6 +8464,8 @@ timers Compiled with |timer_start()| support.
title Compiled with window title support |'title'|.
toolbar Compiled with support for |gui-toolbar|.
transparency Compiled with 'transparency' support.
ttyin input is a terminal (tty)
ttyout output is a terminal (tty)
unix Unix version of Vim.
user_commands User-defined commands.
vertsplit Compiled with vertically split windows |:vsplit|.
+3 -1
View File
@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.0. Last change: 2016 Sep 09
*filetype.txt* For Vim version 8.0. Last change: 2017 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -573,6 +573,8 @@ Man {number} {name}
Global mapping:
<Leader>K Displays the manual page for the word under the cursor.
<Plug>ManPreGetPage idem, allows for using a mapping: >
nmap <F1> <Plug>ManPreGetPage<CR>
Local mappings:
CTRL-] Jump to the manual page for the word under the cursor.
+7 -28
View File
@@ -49,10 +49,6 @@ If you want Vim to start with a maximized window, add this command to your
vimrc or gvimrc file: >
au GUIEnter * simalt ~x
<
*gui-w32s*
There is a specific version of gvim.exe that runs under the Win32s subsystem
of Windows 3.1 or 3.11. See |win32s|.
Using Vim as a plugin *gui-w32-windowid*
@@ -100,9 +96,10 @@ when you have got a new version):
You can also install Vim in the "Send To" menu:
1. Start a Windows Explorer
2. Navigate to your sendto directory:
Windows 95: %windir%\sendto (e.g. "c:\windows\sendto")
Windows NT: %windir%\profiles\%user%\sendto (e.g.
"c:\winnt\profiles\mattha\sendto").
"c:\winnt\profiles\mattha\sendto")
Windows XP: C:\Documents and Settings\%user%\SendTo
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
3. Right-click in the file pane and select New->Shortcut
4. Follow the shortcut wizard, using the full path to VIM/GVIM.
@@ -274,35 +271,17 @@ WARNING: If you close this window with the "X" button, and confirm the
question if you really want to kill the application, Vim may be killed too!
(This does not apply to commands run asynchronously with ":!start".)
In Windows 95, the window in which the commands are executed is always 25x80
characters, to be as DOS compatible as possible (this matters!). The default
system font is used. On NT, the window will be the default you have set up for
"Console" in Control Panel. On Win32s, the properties of the DOS box are
determined by _default.pif in the windows directory.
*msdos-mode*
If you get a dialog that says "This program is set to run in MS-DOS mode..."
when you run an external program, you can solve this by changing the
properties of the associated shortcut:
- Use a Windows Explorer to find the command.com that is used. It can be
c:\command.com, c:\dos\command.com, c:\windows\command.com, etc.
- With the right mouse button, select properties of this command.com.
- In the Program tab select "Advanced".
- Unselect "MS-DOS mode".
- Click "OK" twice.
The window in which the commands are executed will be the default you have set
up for "Console" in Control Panel.
*win32-!start*
Normally, Vim waits for a command to complete before continuing (this makes
sense for most shell commands which produce output for Vim to use). If you
want Vim to start a program and return immediately, you can use the following
syntax on W95 & NT: >
syntax: >
:!start [/min] {command}
The optional "/min" causes the window to be minimized.
On Win32s, you will have to go to another window instead. Don't forget that
you must tell Windows 3.1x to keep executing a DOS command in the background
while you switch back to Vim.
==============================================================================
5. Special colors *win32-colors*
@@ -311,7 +290,7 @@ On Win32, the normal DOS colors can be used. See |dos-colors|.
Additionally the system configured colors can also be used. These are known
by the names Sys_XXX, where XXX is the appropriate system color name, from the
following list (see the Win32 documentation for full descriptions). Case is
ignored. Note: On Win32s not all of these colors are supported.
ignored.
Sys_3DDKShadow Sys_3DFace Sys_BTNFace
Sys_3DHilight Sys_3DHighlight Sys_BTNHilight
+67 -1
View File
@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.0. Last change: 2016 Sep 17
*if_pyth.txt* For Vim version 8.0. Last change: 2017 Jan 28
VIM REFERENCE MANUAL by Paul Moore
@@ -16,6 +16,7 @@ The Python Interface to Vim *python* *Python*
8. pyeval(), py3eval() Vim functions |python-pyeval|
9. Dynamic loading |python-dynamic|
10. Python 3 |python3|
11. Python X |python_x|
{Vi does not have any of these commands}
@@ -711,6 +712,7 @@ vim.Function object *python-Function*
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
functions to evaluate Python expressions and pass their values to VimL.
|pyxeval()| is also available.
==============================================================================
9. Dynamic loading *python-dynamic*
@@ -811,5 +813,69 @@ dynamically, these has() calls will try to load them. If only one can be
loaded at a time, just checking if Python 2 or 3 are available will prevent
the other one from being available.
==============================================================================
11. Python X *python_x* *pythonx*
Because most python code can be written so that it works with python 2.6+ and
python 3 the pyx* functions and commands have been writen. They work exactly
the same as the Python 2 and 3 variants, but select the Python version using
the 'pyxversion' setting.
You should set 'pyxversion' in your |.vimrc| to prefer Python 2 or Python 3
for Python commands. If you change this setting at runtime you may risk that
state of plugins (such as initialization) may be lost.
If you want to use a module, you can put it in the {rtp}/pythonx directory.
See |pythonx-directory|.
*:pyx* *:pythonx*
The `:pyx` and `:pythonx` commands work similar to `:python`. A simple check
if the `:pyx` command is working: >
:pyx print("Hello")
To see what version of Python is being used: >
:pyx import sys
:pyx print(sys.version)
<
*:pyxfile* *python_x-special-comments*
The `:pyxfile` command works similar to `:pyfile`. However you can add one of
these comments to force Vim using `:pyfile` or `:py3file`: >
#!/any string/python2 " Shebang. Must be the first line of the file.
#!/any string/python3 " Shebang. Must be the first line of the file.
# requires python 2.x " Maximum lines depend on 'modelines'.
# requires python 3.x " Maximum lines depend on 'modelines'.
Unlike normal modelines, the bottom of the file is not checked.
If none of them are found, the 'pyxversion' setting is used.
*W20* *W21*
If Vim does not support the selected Python version a silent message will be
printed. Use `:messages` to read them.
*:pyxdo*
The `:pyxdo` command works similar to `:pydo`.
*has-pythonx*
You can test if pyx* commands are available with: >
if has('pythonx')
echo 'pyx* commands are available. (Python ' . &pyx . ')'
endif
When compiled with only one of |+python| or |+python3|, the has() returns 1.
When compiled with both |+python| and |+python3|, the test depends on the
'pyxversion' setting. If 'pyxversion' is 0, it tests Python 3 first, and if
it is not available then Python 2. If 'pyxversion' is 2 or 3, it tests only
Python 2 or 3 respectively.
Note that for has('pythonx') to work it may try to dynamically load Python 3
or 2. This may have side effects, especially when Vim can only load one of
the two.
If a user prefers Python 2 and want to fallback to Python 3, he needs to set
'pyxversion' explicitly in his |.vimrc|. E.g.: >
if has('python')
set pyx=2
elseif has('python3')
set pyx=3
endif
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
+5 -7
View File
@@ -207,21 +207,19 @@ MS-Windows ~
You need to install the right version of Ruby for this to work. You can find
the package to download from:
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
Currently that is ruby-1.9.2-p136-i386-mswin32.zip
http://rubyinstaller.org/downloads/
Currently that is rubyinstaller-2.2.5.exe
To use the Ruby interface the Ruby DLL must be in your search path. In a
console window type "path" to see what directories are used. The 'rubydll'
option can be also used to specify the Ruby DLL.
The name of the DLL must match the Ruby version Vim was compiled with.
Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know
Currently the name is "msvcrt-ruby220.dll". That is for Ruby 2.2.X. To know
for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file
and comment-out the check for _MSC_VER.
You may also need to rename the include directory name to match the version,
strangely for Ruby 1.9.3 the directory is called 1.9.1.
If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need
some tricks. See the src/INSTALLpc.txt for detail.
Unix ~
+7 -3
View File
@@ -1,4 +1,4 @@
*index.txt* For Vim version 8.0. Last change: 2016 Aug 27
*index.txt* For Vim version 8.0. Last change: 2016 Sep 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1002,7 +1002,7 @@ tag command action in Command-line editing mode ~
|c_CTRL-L| CTRL-L do completion on the pattern in front of the
cursor and insert the longest common part
|c_<CR>| <CR> execute entered command
|c_<CR>| CTRL-M same as <CR>
|c_CTRL-M| CTRL-M same as <CR>
|c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches:
go to next match, otherwise: same as <Down>
CTRL-O not used
@@ -1026,7 +1026,7 @@ tag command action in Command-line editing mode ~
CTRL-Y copy (yank) modeless selection
CTRL-Z not used (reserved for suspend)
|c_<Esc>| <Esc> abandon command-line without executing it
|c_<Esc>| CTRL-[ same as <Esc>
|c_CTRL-[| CTRL-[ same as <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
abandon command-line
@@ -1442,6 +1442,10 @@ tag command action ~
|:python| :py[thon] execute Python command
|:pydo| :pyd[o] execute Python command for each line
|:pyfile| :pyf[ile] execute Python script file
|:pyx| :pyx execute |python_x| command
|:pythonx| :pythonx same as :pyx
|:pyxdo| :pyxd[o] execute |python_x| command for each line
|:pyxfile| :pyxf[ile] execute |python_x| script file
|:quit| :q[uit] quit current window (when one window quit Vim)
|:quitall| :quita[ll] quit Vim
|:qall| :qa[ll] quit Vim
+4 -7
View File
@@ -96,21 +96,18 @@ mention that.
*mail-list* *maillist*
There are several mailing lists for Vim:
<vim@vim.org>
<vim@vim.org> *vim-use* *vim_use*
For discussions about using existing versions of Vim: Useful mappings,
questions, answers, where to get a specific version, etc. There are
quite a few people watching this list and answering questions, also
for beginners. Don't hesitate to ask your question here.
<vim-dev@vim.org> *vim-dev* *vimdev*
<vim-dev@vim.org> *vim-dev* *vim_dev* *vimdev*
For discussions about changing Vim: New features, porting, patches,
beta-test versions, etc.
<vim-announce@vim.org> *vim-announce*
<vim-announce@vim.org> *vim-announce* *vim_announce*
Announcements about new versions of Vim; also for beta-test versions
and ports to different systems. This is a read-only list.
<vim-multibyte@vim.org> *vim-multibyte*
For discussions about using and improving the multi-byte aspects of
Vim.
<vim-mac@vim.org> *vim-mac*
<vim-mac@vim.org> *vim-mac* *vim_mac*
For discussions about using and improving the Macintosh version of
Vim.
+2 -1
View File
@@ -1,4 +1,4 @@
*map.txt* For Vim version 8.0. Last change: 2016 Aug 26
*map.txt* For Vim version 8.0. Last change: 2016 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1280,6 +1280,7 @@ completion can be enabled:
-complete=locale locale names (as output of locale -a)
-complete=mapping mapping name
-complete=menu menus
-complete=messages |:messages| suboptions
-complete=option options
-complete=packadd optional package |pack-add| names
-complete=shellcmd Shell command
+4 -3
View File
@@ -1,4 +1,4 @@
*message.txt* For Vim version 8.0. Last change: 2016 Sep 01
*message.txt* For Vim version 8.0. Last change: 2017 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -129,8 +129,9 @@ closed properly. Mostly harmless.
Command too recursive
This happens when an Ex command executes an Ex command that executes an Ex
command, etc. This is only allowed 200 times. When it's more there probably
is an endless loop. Probably a |:execute| or |:source| command is involved.
command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
larger. When it's more there probably is an endless loop. Probably a
|:execute| or |:source| command is involved.
*E254* >
Cannot allocate color {name}
+2 -1
View File
@@ -1,4 +1,4 @@
*motion.txt* For Vim version 8.0. Last change: 2016 Jul 12
*motion.txt* For Vim version 8.0. Last change: 2016 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -915,6 +915,7 @@ was made yet in the current file.
then the position can be near the end of what the
command changed. For example when inserting a word,
the position will be on the last character.
To jump to older changes use |g;|.
{not in Vi}
*'(* *`(*
+81 -13
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 8.0. Last change: 2016 Sep 16
*options.txt* For Vim version 8.0. Last change: 2017 Jan 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,7 +10,7 @@ Options *options*
2. Automatically setting options |auto-setting|
3. Options summary |option-summary|
For an overview of options see help.txt |option-list|.
For an overview of options see quickref.txt |option-list|.
Vim has a number of internal variables and switches which can be set to
achieve special effects. These options come in three forms:
@@ -242,7 +242,7 @@ opt+=val" the expansion is done before the adding or removing.
Handling of local options *local-options*
Some of the options only apply to a window or buffer. Each window or buffer
has its own copy of this option, thus can each have their own value. This
has its own copy of this option, thus each can have its own value. This
allows you to set 'list' in one window but not in another. And set
'shiftwidth' to 3 in one buffer and 4 in another.
@@ -1747,12 +1747,12 @@ A jump table for the options with a short description can be found at |Q_op|.
option + set value effect ~
'allowrevins' off no CTRL-_ command
'backupcopy' Unix: "yes" backup file is a copy
others: "auto" copy or rename backup file
'backspace' "" normal backspace
'backupcopy' Unix: "yes" backup file is a copy
else: "auto" copy or rename backup file
'backup' off no backup file
'cindent' off no C code indentation
'cedit' + "" no key to open the |cmdwin|
'cindent' off no C code indentation
'cpoptions' + (all flags) Vi-compatible flags
'cscopetag' off don't use cscope for ":tag"
'cscopetagorder' 0 see |cscopetagorder|
@@ -1794,6 +1794,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'textwidth' 0 no automatic line wrap
'tildeop' off tilde is not an operator
'ttimeout' off no terminal timeout
'viminfo' + {unchanged} no viminfo file
'whichwrap' + "" left-right movements don't wrap
'wildchar' + CTRL-E only when the current value is <Tab>
use CTRL-E for cmdline completion
@@ -3429,7 +3430,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'formatprg'* *'fp'*
'formatprg' 'fp' string (default "")
global
global or local to buffer |global-local|
{not in Vi}
The name of an external program that will be used to format the lines
selected with the |gq| operator. The program must take the input on
@@ -3983,6 +3984,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The format of this option is like that of 'statusline'.
'guitabtooltip' is used for the tooltip, see below.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
Only used when the GUI tab pages line is displayed. 'e' must be
present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
@@ -4440,8 +4443,8 @@ A jump table for the options with a short description can be found at |Q_op|.
original position when no match is found and when pressing <Esc>. You
still need to finish the search command with <Enter> to move the
cursor to the match.
You can use the CTRL-N and CTRL-P keys to move to the next and
previous match. |c_CTRL-N| |c_CTRL-P|
You can use the CTRL-G and CTRL-T keys to move to the next and
previous match. |c_CTRL-G| |c_CTRL-T|
When compiled with the |+reltime| feature Vim only searches for about
half a second. With a complicated pattern and/or a lot of text the
match may not be found. This is to avoid that Vim hangs while you
@@ -5170,6 +5173,8 @@ A jump table for the options with a short description can be found at |Q_op|.
catches endless recursion. When using a recursive function with
more depth, set 'maxfuncdepth' to a bigger number. But this will use
more memory, there is the danger of failing when memory is exhausted.
Increasing this limit above 200 also changes the maximum for Ex
command resursion, see |E169|.
See also |:function|.
*'maxmapdepth'* *'mmd'* *E223*
@@ -5291,7 +5296,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} *E21*
When off the buffer contents cannot be changed. The 'fileformat' and
'fileencoding' options also can't be changed.
Can be reset with the |-M| command line argument.
Can be reset on startup with the |-M| command line argument.
*'modified'* *'mod'* *'nomodified'* *'nomod'*
'modified' 'mod' boolean (default off)
@@ -5850,6 +5855,8 @@ A jump table for the options with a short description can be found at |Q_op|.
and |+postscript| features}
Expression used to print the PostScript produced with |:hardcopy|.
See |pexpr-option|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'printfont'* *'pfn'*
'printfont' 'pfn' string (default "courier")
@@ -5920,6 +5927,21 @@ A jump table for the options with a short description can be found at |Q_op|.
DYNAMIC_PYTHON_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonhome'*
'pythonhome' string (default "")
global
{not in Vi}
{only available when compiled with the |+python/dyn|
feature}
Note: EXPERIMENTAL. It may be changed or removed in the future.
Specifies the name of the Python 2.x home directory. When 'pythonhome'
and the PYTHONHOME environment variable are not set, PYTHON_HOME,
which was specified at compile time, will be used for the Python 2.x
home directory.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonthreedll'*
@@ -5931,6 +5953,50 @@ A jump table for the options with a short description can be found at |Q_op|.
Specifies the name of the Python 3 shared library. The default is
DYNAMIC_PYTHON3_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonthreehome'*
'pythonthreehome' string (default "")
global
{not in Vi}
{only available when compiled with the |+python3/dyn|
feature}
Note: EXPERIMENTAL. It may be changed or removed in the future.
Specifies the name of the Python 3 home directory. When
'pythonthreehome' and the PYTHONHOME environment variable are not set,
PYTHON3_HOME, which was specified at compile time, will be used for
the Python 3 home directory.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pyxversion'* *'pyx'*
'pyxversion' 'pyx' number (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+python| or
the |+python3| feature}
Specifies the python version used for pyx* functions and commands
|python_x|. The default value is as follows:
Compiled with Default ~
|+python| and |+python3| 0
only |+python| 2
only |+python3| 3
Available values are 0, 2 and 3.
If 'pyxversion' is 0, it is set to 2 or 3 after the first execution of
any python2/3 commands or functions. E.g. `:py` sets to 2, and `:py3`
sets to 3. `:pyx` sets it to 3 if Python 3 is available, otherwise sets
to 2 if Python 2 is available.
See also: |has-pythonx|
If Vim is compiled with only |+python| or |+python3| setting
'pyxversion' has no effect. The pyx* functions and commands are
always the same as the compiled version.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -5954,6 +6020,7 @@ A jump table for the options with a short description can be found at |Q_op|.
buffer, unless the 'Z' flag is in 'cpoptions'.
{not in Vi:} When using the ":view" command the 'readonly' option is
set for the newly edited buffer.
See 'modifiable' for disallowing changes to the buffer.
*'redrawtime'* *'rdt'*
'redrawtime' 'rdt' number (default 2000)
@@ -7972,7 +8039,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Amiga console, Win32 console, all GUI versions and terminals with a
non-empty 't_ts' option).
When Vim was compiled with HAVE_X11 defined, the original title will
be restored if possible |X11|.
be restored if possible, see |X11|.
When this option contains printf-style '%' items, they will be
expanded according to the rules used for 'statusline'.
Example: >
@@ -8131,8 +8198,9 @@ A jump table for the options with a short description can be found at |Q_op|.
"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
with them).
This option is automatically set to "xterm", when the 'term' option is
set to a name that starts with "xterm", "mlterm", "screen", "st" (full
match only), "st-" or "stterm", and 'ttymouse' is not set already.
set to a name that starts with "xterm", "mlterm", "screen", "tmux",
"st" (full match only), "st-" or "stterm", and 'ttymouse' is not set
already.
Additionally, if vim is compiled with the |+termresponse| feature and
|t_RV| is set to the escape sequence to request the xterm version
number, more intelligent detection process runs.
+16 -134
View File
@@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 8.0. Last change: 2016 Aug 28
*os_win32.txt* For Vim version 8.0. Last change: 2016 Oct 12
VIM REFERENCE MANUAL by George Reilly
@@ -7,20 +7,18 @@
*win32* *Win32* *MS-Windows*
This file documents the idiosyncrasies of the Win32 version of Vim.
The Win32 version of Vim works on Windows NT, 95, 98, ME, XP, Vista and
Windows 7. There are both console and GUI versions.
The Win32 version of Vim works on Windows XP, Vista, 7, 8 and 10. There are
both console and GUI versions.
The 32 bit version also runs on 64 bit MS-Windows systems.
There is GUI version for use in the Win32s subsystem in Windows 3.1[1]. You
can also use the 32-bit DOS version of Vim instead. See |os_msdos.txt|.
1. Known problems |win32-problems|
2. Startup |win32-startup|
3. Restore screen contents |win32-restore|
4. Using the mouse |win32-mouse|
5. Running under Windows 3.1 |win32-win3.1|
6. Win32 mini FAQ |win32-faq|
5. Running under Windows 95 |win32-win95|
6. Running under Windows 3.1 |win32-win3.1|
7. Win32 mini FAQ |win32-faq|
Additionally, there are a number of common Win32 and DOS items:
File locations |dos-locations|
@@ -43,20 +41,7 @@ The GUI version was made by George V. Reilly and Robert Webb.
For compiling see "src/INSTALLpc.txt". *win32-compiling*
==============================================================================
1. Known problems *windows95* *win32-problems*
There are a few known problems with running in a console on Windows 95. As
far as we know, this is the same in Windows 98 and Windows ME.
Comments from somebody working at Microsoft: "Win95 console support has always
been and will always be flaky".
1. Dead key support doesn't work.
2. Resizing the window with ":set columns=nn lines=nn" works, but executing
external commands MAY CAUSE THE SYSTEM TO HANG OR CRASH.
3. Screen updating is slow, unless you change 'columns' or 'lines' to a
non-DOS value. But then the second problem applies!
If this bothers you, use the 32 bit MS-DOS version or the Win32 GUI version.
1. Known problems *win32-problems*
When doing file name completion, Vim also finds matches for the short file
name. But Vim will still find and use the corresponding long file name. For
@@ -141,60 +126,20 @@ When the mouse doesn't work, try disabling the "Quick Edit Mode" feature of
the console.
==============================================================================
5. Running under Windows 3.1 *win32-win3.1*
5. Running under Windows 95 *win32-win95*
*windows95* *windows98* *windowsme*
Windows 95/98/ME support was removed in patch 8.0.0029 If you want to use it
you will need to get a version older than that.
*win32s* *windows-3.1*
==============================================================================
6. Running under Windows 3.1 *win32-win3.1*
*win32s* *windows-3.1* *gui-w32s*
There was a special version of Gvim that runs under Windows 3.1 and 3.11.
Support was removed in patch 7.4.1363.
==============================================================================
6. Win32 mini FAQ *win32-faq*
Q. Why does the Win32 version of Vim update the screen so slowly on Windows 95?
A. The support for Win32 console mode applications is very buggy in Win95.
For some unknown reason, the screen updates very slowly when Vim is run at
one of the standard resolutions (80x25, 80x43, or 80x50) and the 16-bit DOS
version updates the screen much more quickly than the Win32 version.
However, if the screen is set to some other resolution, such as by ":set
columns=100" or ":set lines=40", screen updating becomes about as fast as
it is with the 16-bit version.
WARNING: Changing 'columns' may make Windows 95 crash while updating the
window (complaints --> Microsoft). Since this mostly works, this has not
been disabled, but be careful with changing 'columns'.
Changing the screen resolution makes updates faster, but it brings
additional problems. External commands (e.g., ":!dir") can cause Vim to
freeze when the screen is set to a non-standard resolution, particularly
when 'columns' is not equal to 80. It is not possible for Vim to reliably
set the screen resolution back to the value it had upon startup before
running external commands, so if you change the number of 'lines' or
'columns', be very, very careful. In fact, Vim will not allow you to
execute external commands when 'columns' is not equal to 80, because it is
so likely to freeze up afterwards.
None of the above applies on Windows NT. Screen updates are fast, no
matter how many 'lines' or 'columns' the window has, and external commands
do not cause Vim to freeze.
Q. So if the Win32 version updates the screen so slowly on Windows 95 and the
16-bit DOS version updates the screen quickly, why would I want to run the
Win32 version?
A. Firstly, the Win32 version isn't that slow, especially when the screen is
set to some non-standard number of 'lines' or 'columns'. Secondly, the
16-bit DOS version has some severe limitations: It can't do big changes and
it doesn't know about long file names. The Win32 version doesn't have these
limitations and it's faster overall (the same is true for the 32-bit DJGPP
DOS version of Vim). The Win32 version is smarter about handling the
screen, the mouse, and the keyboard than the DJGPP version is.
Q. And what about the 16-bit DOS version versus the Win32 version on NT?
A. There are no good reasons to run the 16-bit DOS version on NT. The Win32
version updates the screen just as fast as the 16-bit version does when
running on NT. All of the above disadvantages apply. Finally, DOS
applications can take a long time to start up and will run more slowly. On
non-Intel NT platforms, the DOS version is almost unusably slow, because it
runs on top of an 80x86 emulator.
7. Win32 mini FAQ *win32-faq*
Q. How do I change the font?
A. In the GUI version, you can use the 'guifont' option. Example: >
@@ -202,47 +147,6 @@ A. In the GUI version, you can use the 'guifont' option. Example: >
< In the console version, you need to set the font of the console itself.
You cannot do this from within Vim.
Q. When I change the size of the console window with ':set lines=xx' or
similar, the font changes! (Win95)
A. You have the console font set to 'Auto' in Vim's (or your MS-DOS prompt's)
properties. This makes W95 guess (badly!) what font is best. Set an explicit
font instead.
Q. Why can't I paste into Vim when running Windows 95?
A. In the properties dialog box for the MS-DOS window, go to "MS-DOS
Prompt/Misc/Fast pasting" and make sure that it is NOT checked. You should
also do ":set paste" in Vim to avoid unexpected effects. |'paste'|
Q. How do I type dead keys on Windows 95, in the console version?
(A dead key is an accent key, such as acute, grave, or umlaut, that doesn't
produce a character by itself, but when followed by another key, produces
an accented character, such as a-acute, e-grave, u-umlaut, n-tilde, and so
on. Very useful for most European languages. English-language keyboard
layouts don't use dead keys, as far as we know.)
A. You don't. The console mode input routines simply do not work correctly in
Windows 95, and I have not been able to work around them. In the words
of a senior developer at Microsoft:
Win95 console support has always been and will always be flaky.
The flakiness is unavoidable because we are stuck between the world of
MS-DOS keyboard TSRs like KEYB (which wants to cook the data;
important for international) and the world of Win32.
So keys that don't "exist" in MS-DOS land (like dead keys) have a
very tenuous existence in Win32 console land. Keys that act
differently between MS-DOS land and Win32 console land (like
capslock) will act flaky.
Don't even _mention_ the problems with multiple language keyboard
layouts...
You may be able to fashion some sort of workaround with the digraphs
mechanism. |digraphs|
The best solution is to use the Win32 GUI version gvim.exe. Alternatively,
you can try one of the DOS versions of Vim where dead keys reportedly do
work.
Q. How do I type dead keys on Windows NT?
A. Dead keys work on NT 3.51. Just type them as you would in any other
application.
@@ -349,28 +253,6 @@ A. You have two possible solutions depending on what you want:
< The first command runs notepad minimized and the second one runs it
normally.
Q. I'm using Win32s, and when I try to run an external command like "make",
Vim doesn't wait for it to finish! Help!
A. The problem is that a 32-bit application (Vim) can't get notification from
Windows that a 16-bit application (your DOS session) has finished. Vim
includes a work-around for this, but you must set up your DOS commands to
run in a window, not full-screen. Unfortunately the default when you
install Windows is full-screen. To change this:
1) Start PIF editor (in the Main program group).
2) Open the file "_DEFAULT.PIF" in your Windows directory.
3) Changes the display option from "Full Screen" to "Windowed".
4) Save and exit.
To test, start Vim and type >
:!dir C:\<CR>".
< You should see a DOS box window appear briefly with the directory listing.
Q. I use Vim under Win32s and NT. In NT, I can define the console to default to
50 lines, so that I get a 80x50 shell when I ':sh'. Can I do the same in
W3.1x, or am I stuck with 80x25?
A. Edit SYSTEM.INI and add 'ScreenLines=50' to the [NonWindowsApp] section. DOS
prompts and external DOS commands will now run in a 50-line window.
*windows-icon*
Q. I don't like the Vim icon, can I change it?
A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of
+3 -1
View File
@@ -1,4 +1,4 @@
*pi_gzip.txt* For Vim version 8.0. Last change: 2012 Jul 19
*pi_gzip.txt* For Vim version 8.0. Last change: 2016 Nov 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -27,6 +27,8 @@ with these extensions:
*.bz2 bzip2
*.lzma lzma
*.xz xz
*.lz lzip
*.zst zstd
That's actually the only thing you need to know. There are no options.
+1 -1
View File
@@ -1,4 +1,4 @@
*logiPat.txt* Logical Patterns Jun 22, 2015
*pi_logipat.txt* Logical Patterns Jun 22, 2015
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
Copyright: (c) 2004-2015 by Charles E. Campbell *logiPat-copyright*
+2 -2
View File
@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.0. Last change: 2016 Jul 17
*quickfix.txt* For Vim version 8.0. Last change: 2016 Nov 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -878,7 +878,7 @@ need to write down a "todo" list.
The Vim plugins in the "compiler" directory will set options to use the
selected compiler. For ":compiler" local options are set, for ":compiler!"
selected compiler. For `:compiler` local options are set, for `:compiler!`
global options.
*current_compiler*
To support older Vim versions, the plugins always use "current_compiler" and
+6 -1
View File
@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.0. Last change: 2016 Aug 21
*quickref.txt* For Vim version 8.0. Last change: 2016 Dec 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -840,7 +840,10 @@ Short explanation of each option: *option-list*
'prompt' 'prompt' enable prompt in Ex mode
'pumheight' 'ph' maximum height of the popup menu
'pythondll' name of the Python 2 dynamic library
'pythonhome' name of the Python 2 home directory
'pythonthreedll' name of the Python 3 dynamic library
'pythonthreehome' name of the Python 3 home directory
'pyxversion' 'pyx' Python version used for pyx* commands
'quoteescape' 'qe' escape characters used in a string
'readonly' 'ro' disallow writing the buffer
'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting
@@ -1074,6 +1077,8 @@ Short explanation of each option: *option-list*
|c_<Up>| <Up>/<Down> recall older/newer command-line that starts
with current command
|c_<S-Up>| <S-Up>/<S-Down> recall older/newer command-line from history
|c_CTRL-G| CTRL-G next match when 'incsearch' is active
|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|:history| :his[tory] show older command-lines
Context-sensitive completion on the command-line:
+3 -2
View File
@@ -1,4 +1,4 @@
*scroll.txt* For Vim version 8.0. Last change: 2006 Aug 27
*scroll.txt* For Vim version 8.0. Last change: 2016 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -108,7 +108,8 @@ z^ Without [count]: Redraw with the line just above the
3. Scrolling relative to cursor *scroll-cursor*
The following commands reposition the edit window (the part of the buffer that
you see) while keeping the cursor on the same line:
you see) while keeping the cursor on the same line. Note that the 'scrolloff'
option may cause context lines to show above and below the cursor.
*z<CR>*
z<CR> Redraw, line [count] at top of window (default
+7 -2
View File
@@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.0. Last change: 2016 Sep 09
*starting.txt* For Vim version 8.0. Last change: 2017 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -230,6 +230,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
the executable "view" has the same effect as the -R argument.
The 'updatecount' option will be set to 10000, meaning that
the swap file will not be updated automatically very often.
See |-M| for disallowing modifications.
*-m*
-m Modifications not allowed to be written. The 'write' option
@@ -421,6 +422,10 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
not connected to a terminal. This will avoid the warning and
the two second delay that would happen. {not in Vi}
*--ttyfail*
--ttyfail When the stdin or stdout is not a terminal (tty) then exit
right away.
*-d*
-d Start in diff mode, like |vimdiff|.
{not in Vi} {not available when compiled without the |+diff|
@@ -1216,7 +1221,7 @@ There are several ways to exit Vim:
- Use `:cquit`. Also when there are changes.
When using `:cquit` or when there was an error message Vim exits with exit
code 1. Errors can be avoided by using `:silent!`.
code 1. Errors can be avoided by using `:silent!` or with `:catch`.
==============================================================================
8. Saving settings *save-settings*
+44 -22
View File
@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.0. Last change: 2016 Sep 13
*syntax.txt* For Vim version 8.0. Last change: 2017 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2863,9 +2863,11 @@ vimrc file: >
(Adapted from the html.vim help text by Claudio Fleiner <claudio@fleiner.com>)
SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax*
*ft-posix-synax* *ft-dash-syntax*
SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax*
This covers the "normal" Unix (Bourne) sh, bash and the Korn shell.
This covers syntax highlighting for the older Unix (Bourne) sh, and newer
shells such as bash, dash, posix, and the Korn shells.
Vim attempts to determine which shell type is in use by specifying that
various filenames are of specific types: >
@@ -2874,28 +2876,31 @@ various filenames are of specific types: >
bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash
<
If none of these cases pertain, then the first line of the file is examined
(ex. /bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype,
then that shelltype is used. However some files (ex. .profile) are known to
be shell files but the type is not apparent. Furthermore, on many systems
sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix).
(ex. looking for /bin/sh /bin/ksh /bin/bash). If the first line specifies a
shelltype, then that shelltype is used. However some files (ex. .profile) are
known to be shell files but the type is not apparent. Furthermore, on many
systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh"
(Posix).
One may specify a global default by instantiating one of the following three
One may specify a global default by instantiating one of the following
variables in your <.vimrc>:
ksh: >
ksh: >
let g:is_kornshell = 1
< posix: (using this is the same as setting is_kornshell to 1) >
< posix: (using this is the nearly the same as setting g:is_kornshell to 1) >
let g:is_posix = 1
< bash: >
let g:is_bash = 1
< sh: (default) Bourne shell >
let g:is_sh = 1
< (dash users should use posix)
If there's no "#! ..." line, and the user hasn't availed himself/herself of a
default sh.vim syntax setting as just shown, then syntax/sh.vim will assume
the Bourne shell syntax. No need to quote RFCs or market penetration
statistics in error reports, please -- just select the default version of the
sh your system uses in your <.vimrc>.
sh your system uses and install the associated "let..." in your <.vimrc>.
The syntax/sh.vim file provides several levels of syntax-based folding: >
@@ -2904,7 +2909,7 @@ The syntax/sh.vim file provides several levels of syntax-based folding: >
let g:sh_fold_enabled= 2 (enable heredoc folding)
let g:sh_fold_enabled= 4 (enable if/do/for folding)
>
then various syntax items (HereDocuments and function bodies) become
then various syntax items (ie. HereDocuments and function bodies) become
syntax-foldable (see |:syn-fold|). You also may add these together
to get multiple types of folding: >
@@ -2928,14 +2933,7 @@ reduce this, the "sh_maxlines" internal variable can be set. Example: >
The default is to use the twice sh_minlines. Set it to a smaller number to
speed up displaying. The disadvantage is that highlight errors may appear.
*g:sh_isk* *g:sh_noisk*
The shell languages appear to let "." be part of words, commands, etc;
consequently it should be in the isk for sh.vim. As of v116 of syntax/sh.vim,
syntax/sh.vim will append the "." to |'iskeyword'| by default; you may control
this behavior with: >
let g:sh_isk = '..whatever characters you want as part of iskeyword'
let g:sh_noisk= 1 " otherwise, if this exists, the isk will NOT chg
<
*sh-embed* *sh-awk*
Sh: EMBEDDING LANGUAGES~
@@ -3481,6 +3479,8 @@ DEFINING CASE *:syn-case* *E390*
"ignore". Note that any items before this are not affected, and all
items until the next ":syntax case" command are affected.
:sy[ntax] case
Show either "syntax case match" or "syntax case ignore" (translated).
SPELL CHECKING *:syn-spell*
@@ -3498,6 +3498,11 @@ SPELL CHECKING *:syn-spell*
To activate spell checking the 'spell' option must be set.
:sy[ntax] spell
Show either "syntax spell toplevel", "syntax spell notoplevel" or
"syntax spell default" (translated).
SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
:sy[ntax] iskeyword [clear | {option}]
@@ -3580,7 +3585,11 @@ DEFINING KEYWORDS *:syn-keyword*
DEFINING MATCHES *:syn-match*
:sy[ntax] match {group-name} [{options}] [excludenl] {pattern} [{options}]
:sy[ntax] match {group-name} [{options}]
[excludenl]
[keepend]
{pattern}
[{options}]
This defines one match.
@@ -3589,6 +3598,9 @@ DEFINING MATCHES *:syn-match*
[excludenl] Don't make a pattern with the end-of-line "$"
extend a containing match or region. Must be
given before the pattern. |:syn-excludenl|
keepend Don't allow contained matches to go past a
match with the end pattern. See
|:syn-keepend|.
{pattern} The search pattern that defines the match.
See |:syn-pattern| below.
Note that the pattern may match more than one
@@ -4084,6 +4096,9 @@ IMPLICIT CONCEAL *:syn-conceal-implicit*
off" returns to the normal state where the "conceal" flag must be
given explicitly.
:sy[ntax] conceal
Show either "syntax conceal on" or "syntax conceal off" (translated).
==============================================================================
7. Syntax patterns *:syn-pattern* *E401* *E402*
@@ -4592,7 +4607,14 @@ in their own color.
Doesn't work recursively, thus you can't use
":colorscheme" in a color scheme script.
After the color scheme has been loaded the
To customize a colorscheme use another name, e.g.
"~/.vim/colors/mine.vim", and use `:runtime` to load
the original colorscheme: >
runtime colors/evening.vim
hi Statement ctermfg=Blue guifg=Blue
< After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
For info about writing a colorscheme file: >
:edit $VIMRUNTIME/colors/README.txt
+4 -1
View File
@@ -1,4 +1,4 @@
*tabpage.txt* For Vim version 8.0. Last change: 2016 Sep 09
*tabpage.txt* For Vim version 8.0. Last change: 2016 Oct 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -58,6 +58,8 @@ clicking right of the labels.
In the GUI tab pages line you can use the right mouse button to open menu.
|tabline-menu|.
For the related autocommands see |tabnew-autocmd|.
:[count]tabe[dit] *:tabe* *:tabedit* *:tabnew*
:[count]tabnew
Open a new tab page with an empty window, after the current
@@ -287,6 +289,7 @@ Variables local to a tab page start with "t:". |tabpage-variable|
Currently there is only one option local to a tab page: 'cmdheight'.
*tabnew-autocmd*
The TabLeave and TabEnter autocommand events can be used to do something when
switching from one tab page to another. The exact order depends on what you
are doing. When creating a new tab page this works as if you create a new
+41 -6
View File
@@ -790,6 +790,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'pvw' options.txt /*'pvw'*
'pythondll' options.txt /*'pythondll'*
'pythonthreedll' options.txt /*'pythonthreedll'*
'pyx' options.txt /*'pyx'*
'pyxversion' options.txt /*'pyxversion'*
'qe' options.txt /*'qe'*
'quote motion.txt /*'quote*
'quoteescape' options.txt /*'quoteescape'*
@@ -939,6 +941,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_AB' term.txt /*'t_AB'*
't_AF' term.txt /*'t_AF'*
't_AL' term.txt /*'t_AL'*
't_BD' term.txt /*'t_BD'*
't_BE' term.txt /*'t_BE'*
't_CS' term.txt /*'t_CS'*
't_CV' term.txt /*'t_CV'*
't_Ce' term.txt /*'t_Ce'*
@@ -1378,6 +1382,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
--servername remote.txt /*--servername*
--socketid starting.txt /*--socketid*
--startuptime starting.txt /*--startuptime*
--ttyfail starting.txt /*--ttyfail*
--version starting.txt /*--version*
--windowid starting.txt /*--windowid*
-A starting.txt /*-A*
@@ -1865,6 +1870,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:$ cmdline.txt /*:$*
:% cmdline.txt /*:%*
:& change.txt /*:&*
:&& change.txt /*:&&*
:' cmdline.txt /*:'*
:, cmdline.txt /*:,*
:. cmdline.txt /*:.*
@@ -2745,6 +2751,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:pyfile if_pyth.txt /*:pyfile*
:python if_pyth.txt /*:python*
:python3 if_pyth.txt /*:python3*
:pythonx if_pyth.txt /*:pythonx*
:pyx if_pyth.txt /*:pyx*
:pyxdo if_pyth.txt /*:pyxdo*
:pyxfile if_pyth.txt /*:pyxfile*
:q editing.txt /*:q*
:qa editing.txt /*:qa*
:qall editing.txt /*:qall*
@@ -4537,6 +4547,8 @@ E933 eval.txt /*E933*
E934 sign.txt /*E934*
E935 eval.txt /*E935*
E936 autocmd.txt /*E936*
E937 autocmd.txt /*E937*
E938 eval.txt /*E938*
E94 windows.txt /*E94*
E95 message.txt /*E95*
E96 diff.txt /*E96*
@@ -4819,6 +4831,8 @@ W16 message.txt /*W16*
W17 arabic.txt /*W17*
W18 syntax.txt /*W18*
W19 autocmd.txt /*W19*
W20 if_pyth.txt /*W20*
W21 if_pyth.txt /*W21*
WORD motion.txt /*WORD*
WWW intro.txt /*WWW*
Win32 os_win32.txt /*Win32*
@@ -5238,6 +5252,7 @@ c_CTRL-I cmdline.txt /*c_CTRL-I*
c_CTRL-J cmdline.txt /*c_CTRL-J*
c_CTRL-K cmdline.txt /*c_CTRL-K*
c_CTRL-L cmdline.txt /*c_CTRL-L*
c_CTRL-M cmdline.txt /*c_CTRL-M*
c_CTRL-N cmdline.txt /*c_CTRL-N*
c_CTRL-P cmdline.txt /*c_CTRL-P*
c_CTRL-Q cmdline.txt /*c_CTRL-Q*
@@ -5254,6 +5269,7 @@ c_CTRL-U cmdline.txt /*c_CTRL-U*
c_CTRL-V cmdline.txt /*c_CTRL-V*
c_CTRL-W cmdline.txt /*c_CTRL-W*
c_CTRL-Y cmdline.txt /*c_CTRL-Y*
c_CTRL-[ cmdline.txt /*c_CTRL-[*
c_CTRL-\_CTRL-G intro.txt /*c_CTRL-\\_CTRL-G*
c_CTRL-\_CTRL-N intro.txt /*c_CTRL-\\_CTRL-N*
c_CTRL-\_e cmdline.txt /*c_CTRL-\\_e*
@@ -5300,6 +5316,7 @@ catch-text eval.txt /*catch-text*
cc change.txt /*cc*
ceil() eval.txt /*ceil()*
ch.vim syntax.txt /*ch.vim*
ch_canread() eval.txt /*ch_canread()*
ch_close() eval.txt /*ch_close()*
ch_close_in() eval.txt /*ch_close_in()*
ch_evalexpr() eval.txt /*ch_evalexpr()*
@@ -5347,6 +5364,7 @@ channel-close channel.txt /*channel-close*
channel-close-in channel.txt /*channel-close-in*
channel-commands channel.txt /*channel-commands*
channel-demo channel.txt /*channel-demo*
channel-drop channel.txt /*channel-drop*
channel-functions usr_41.txt /*channel-functions*
channel-mode channel.txt /*channel-mode*
channel-more channel.txt /*channel-more*
@@ -6083,6 +6101,7 @@ ft-csh-syntax syntax.txt /*ft-csh-syntax*
ft-css-omni insert.txt /*ft-css-omni*
ft-cweb-syntax syntax.txt /*ft-cweb-syntax*
ft-cynlib-syntax syntax.txt /*ft-cynlib-syntax*
ft-dash-syntax syntax.txt /*ft-dash-syntax*
ft-desktop-syntax syntax.txt /*ft-desktop-syntax*
ft-dircolors-syntax syntax.txt /*ft-dircolors-syntax*
ft-docbk-syntax syntax.txt /*ft-docbk-syntax*
@@ -6143,6 +6162,7 @@ ft-php-syntax syntax.txt /*ft-php-syntax*
ft-php3-syntax syntax.txt /*ft-php3-syntax*
ft-phtml-syntax syntax.txt /*ft-phtml-syntax*
ft-plaintex-syntax syntax.txt /*ft-plaintex-syntax*
ft-posix-synax syntax.txt /*ft-posix-synax*
ft-postscr-syntax syntax.txt /*ft-postscr-syntax*
ft-ppwiz-syntax syntax.txt /*ft-ppwiz-syntax*
ft-printcap-syntax syntax.txt /*ft-printcap-syntax*
@@ -6396,8 +6416,6 @@ g:netrw_win95ftp pi_netrw.txt /*g:netrw_win95ftp*
g:netrw_winsize pi_netrw.txt /*g:netrw_winsize*
g:netrw_wiw pi_netrw.txt /*g:netrw_wiw*
g:netrw_xstrlen pi_netrw.txt /*g:netrw_xstrlen*
g:sh_isk syntax.txt /*g:sh_isk*
g:sh_noisk syntax.txt /*g:sh_noisk*
g:syntax_on syntax.txt /*g:syntax_on*
g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions*
g:tar_cmd pi_tar.txt /*g:tar_cmd*
@@ -6613,7 +6631,7 @@ gui-w32-printing gui_w32.txt /*gui-w32-printing*
gui-w32-start gui_w32.txt /*gui-w32-start*
gui-w32-various gui_w32.txt /*gui-w32-various*
gui-w32-windowid gui_w32.txt /*gui-w32-windowid*
gui-w32s gui_w32.txt /*gui-w32s*
gui-w32s os_win32.txt /*gui-w32s*
gui-win32-maximized gui_w32.txt /*gui-win32-maximized*
gui-x11 gui_x11.txt /*gui-x11*
gui-x11-athena gui_x11.txt /*gui-x11-athena*
@@ -6656,6 +6674,7 @@ hangulin.txt hangulin.txt /*hangulin.txt*
has() eval.txt /*has()*
has-patch eval.txt /*has-patch*
has-python if_pyth.txt /*has-python*
has-pythonx if_pyth.txt /*has-pythonx*
has_key() eval.txt /*has_key()*
haskell.vim syntax.txt /*haskell.vim*
haslocaldir() eval.txt /*haslocaldir()*
@@ -7019,6 +7038,7 @@ job-callback channel.txt /*job-callback*
job-channel-overview channel.txt /*job-channel-overview*
job-close_cb channel.txt /*job-close_cb*
job-control channel.txt /*job-control*
job-drop channel.txt /*job-drop*
job-err_cb channel.txt /*job-err_cb*
job-err_io channel.txt /*job-err_io*
job-exit_cb channel.txt /*job-exit_cb*
@@ -7154,7 +7174,6 @@ logiPat-man pi_logipat.txt /*logiPat-man*
logiPat-manual pi_logipat.txt /*logiPat-manual*
logiPat-operators pi_logipat.txt /*logiPat-operators*
logiPat-pattern pi_logipat.txt /*logiPat-pattern*
logiPat.txt pi_logipat.txt /*logiPat.txt*
long-lines version5.txt /*long-lines*
love intro.txt /*love*
lowercase change.txt /*lowercase*
@@ -7353,7 +7372,6 @@ mouse_winid-variable eval.txt /*mouse_winid-variable*
movement intro.txt /*movement*
ms-dos os_msdos.txt /*ms-dos*
msdos os_msdos.txt /*msdos*
msdos-mode gui_w32.txt /*msdos-mode*
msql.vim syntax.txt /*msql.vim*
mswin.vim gui_w32.txt /*mswin.vim*
multi-byte mbyte.txt /*multi-byte*
@@ -7872,6 +7890,7 @@ php3.vim syntax.txt /*php3.vim*
phtml.vim syntax.txt /*phtml.vim*
pi_getscript.txt pi_getscript.txt /*pi_getscript.txt*
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
pi_logipat.txt pi_logipat.txt /*pi_logipat.txt*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
pi_paren.txt pi_paren.txt /*pi_paren.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
@@ -7989,7 +8008,11 @@ python.vim syntax.txt /*python.vim*
python2-directory if_pyth.txt /*python2-directory*
python3 if_pyth.txt /*python3*
python3-directory if_pyth.txt /*python3-directory*
python_x if_pyth.txt /*python_x*
python_x-special-comments if_pyth.txt /*python_x-special-comments*
pythonx if_pyth.txt /*pythonx*
pythonx-directory if_pyth.txt /*pythonx-directory*
pyxeval() eval.txt /*pyxeval()*
q repeat.txt /*q*
q/ cmdline.txt /*q\/*
q: cmdline.txt /*q:*
@@ -8531,6 +8554,8 @@ t_@7 term.txt /*t_@7*
t_AB term.txt /*t_AB*
t_AF term.txt /*t_AF*
t_AL term.txt /*t_AL*
t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE*
t_CS term.txt /*t_CS*
t_CV term.txt /*t_CV*
t_Ce term.txt /*t_Ce*
@@ -8569,6 +8594,8 @@ t_KI term.txt /*t_KI*
t_KJ term.txt /*t_KJ*
t_KK term.txt /*t_KK*
t_KL term.txt /*t_KL*
t_PE term.txt /*t_PE*
t_PS term.txt /*t_PS*
t_RB term.txt /*t_RB*
t_RI term.txt /*t_RI*
t_RV term.txt /*t_RV*
@@ -8694,6 +8721,7 @@ tab-page-commands tabpage.txt /*tab-page-commands*
tab-page-intro tabpage.txt /*tab-page-intro*
tab-page-other tabpage.txt /*tab-page-other*
tabline-menu tabpage.txt /*tabline-menu*
tabnew-autocmd tabpage.txt /*tabnew-autocmd*
tabpage tabpage.txt /*tabpage*
tabpage-variable eval.txt /*tabpage-variable*
tabpage.txt tabpage.txt /*tabpage.txt*
@@ -9213,16 +9241,19 @@ vim-dev intro.txt /*vim-dev*
vim-mac intro.txt /*vim-mac*
vim-modes intro.txt /*vim-modes*
vim-modes-intro intro.txt /*vim-modes-intro*
vim-multibyte intro.txt /*vim-multibyte*
vim-script-intro usr_41.txt /*vim-script-intro*
vim-use intro.txt /*vim-use*
vim-variable eval.txt /*vim-variable*
vim.vim syntax.txt /*vim.vim*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim: options.txt /*vim:*
vim_announce intro.txt /*vim_announce*
vim_dev intro.txt /*vim_dev*
vim_did_enter-variable eval.txt /*vim_did_enter-variable*
vim_mac gui_mac.txt /*vim_mac*
vim_starting eval.txt /*vim_starting*
vim_use intro.txt /*vim_use*
vimball pi_vimball.txt /*vimball*
vimball-contents pi_vimball.txt /*vimball-contents*
vimball-extract pi_vimball.txt /*vimball-extract*
@@ -9327,6 +9358,7 @@ win32-startup os_win32.txt /*win32-startup*
win32-term os_win32.txt /*win32-term*
win32-vimrun gui_w32.txt /*win32-vimrun*
win32-win3.1 os_win32.txt /*win32-win3.1*
win32-win95 os_win32.txt /*win32-win95*
win32s os_win32.txt /*win32s*
win_findbuf() eval.txt /*win_findbuf()*
win_getid() eval.txt /*win_getid()*
@@ -9356,6 +9388,8 @@ windows-intro windows.txt /*windows-intro*
windows-starting windows.txt /*windows-starting*
windows.txt windows.txt /*windows.txt*
windows95 os_win32.txt /*windows95*
windows98 os_win32.txt /*windows98*
windowsme os_win32.txt /*windowsme*
winheight() eval.txt /*winheight()*
winid windows.txt /*winid*
winline() eval.txt /*winline()*
@@ -9413,6 +9447,7 @@ xterm-8-bit term.txt /*xterm-8-bit*
xterm-8bit term.txt /*xterm-8bit*
xterm-blink syntax.txt /*xterm-blink*
xterm-blinking-cursor syntax.txt /*xterm-blinking-cursor*
xterm-bracketed-paste term.txt /*xterm-bracketed-paste*
xterm-clipboard term.txt /*xterm-clipboard*
xterm-codes term.txt /*xterm-codes*
xterm-color syntax.txt /*xterm-color*
+29 -1
View File
@@ -1,4 +1,4 @@
*term.txt* For Vim version 8.0. Last change: 2016 Sep 02
*term.txt* For Vim version 8.0. Last change: 2017 Feb 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -89,6 +89,28 @@ an external command (e.g., "!!"), the terminal will be put into Normal mode
for a moment. This means that you can stop the output to the screen by
hitting a printing key. Output resumes when you hit <BS>.
*xterm-bracketed-paste*
When the 't_BE' option is set then 't_BE' will be sent to the
terminal when entering "raw" mode and 't_BD' when leaving "raw" mode. The
terminal is then expected to put 't_PS' before pasted text and 't_PE' after
pasted text. This way Vim can separate text that is pasted from characters
that are typed. The pasted text is handled like when the middle mouse button
is used, it is inserted literally and not interpreted as commands.
When the cursor is in the first column, the pasted text will be inserted
before it. Otherwise the pasted text is appended after the cursor position.
This means one cannot paste after the first column. Unfortunately Vim does
not have a way to tell where the mouse pointer was.
Note that in some situations Vim will not recognize the bracketed paste and
you will get the raw text. In other situations Vim will only get the first
pasted character and drop the rest, e.g. when using the "r" command. If you
have a problem with this, disable bracketed paste by putting this in your
.vimrc: >
set t_BE=
If this is done while Vim is running the 't_BD' will be sent to the terminal
to disable bracketed paste.
*cs7-problem*
Note: If the terminal settings are changed after running Vim, you might have
an illegal combination of settings. This has been reported on Solaris 2.5
@@ -306,6 +328,10 @@ Added by Vim (there are no standard codes for these):
|xterm-true-color|
t_8b set background color (R, G, B) *t_8b* *'t_8b'*
|xterm-true-color|
t_BE enable bracketed paste mode *t_BE* *'t_BE'*
|xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|xterm-bracketed-paste|
KEY CODES
Note: Use the <> form if possible
@@ -398,6 +424,8 @@ Note: Use the <> form if possible
t_KK <k8> keypad 8 *<k8>* *t_KK* *'t_KK'*
t_KL <k9> keypad 9 *<k9>* *t_KL* *'t_KL'*
<Mouse> leader of mouse code *<Mouse>*
t_PS start of bracketed paste |xterm-bracketed-paste| *t_PS* 't_PS'
t_PE end of bracketed paste |xterm-bracketed-paste| *t_PE* 't_PE'
Note about t_so and t_mr: When the termcap entry "so" is not present the
entry for "mr" is used. And vice versa. The same is done for "se" and "me".
+194 -342
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,4 +1,4 @@
*usr_22.txt* For Vim version 8.0. Last change: 2012 Nov 15
*usr_22.txt* For Vim version 8.0. Last change: 2016 Dec 13
VIM USER MANUAL - by Bram Moolenaar
@@ -93,7 +93,7 @@ browser. This is what you get: >
o................Browsing with a Horizontal Split...........|netrw-o|
p................Use Preview Window.........................|netrw-p|
P................Edit in Previous Window....................|netrw-p|
q................Listing Bookmarks and History..............|netrw-q|
q................Listing Bookmarks and History..............|netrw-qb|
r................Reversing Sorting Order....................|netrw-r|
< (etc)
+3 -1
View File
@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.0. Last change: 2016 Sep 01
*usr_41.txt* For Vim version 8.0. Last change: 2016 Nov 29
VIM USER MANUAL - by Bram Moolenaar
@@ -930,6 +930,7 @@ Testing: *test-functions*
test_null_string() return a null String
Inter-process communication: *channel-functions*
ch_canread() check if there is something to read
ch_open() open a channel
ch_close() close a channel
ch_close_in() close the in part of a channel
@@ -999,6 +1000,7 @@ Various: *various-functions*
perleval() evaluate Perl expression (|+perl|)
py3eval() evaluate Python expression (|+python3|)
pyeval() evaluate Python expression (|+python|)
pyxeval() evaluate |python_x| expression
==============================================================================
*41.7* Defining a function
+424 -1
View File
@@ -1,4 +1,4 @@
*version8.txt* For Vim version 8.0. Last change: 2016 Sep 14
*version8.txt* For Vim version 8.0. Last change: 2017 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -181,6 +181,12 @@ Insert mode commands: ~
|i_CTRL-G_U| CTRL-G U don't break undo with next cursor movement
Cmdline mode commands: ~
|/_CTRL-G| CTRL-G move to the next match in 'incsearch' mode
|/_CTRL-T| CTRL-T move to the previous match in 'incsearch' mode
Options: ~
'belloff' do not ring the bell for these reasons
@@ -224,6 +230,7 @@ Ex commands: ~
Ex command modifiers: ~
|:keeppatterns| following command keeps search pattern history
|<mods>| supply command modifiers to user defined commands
New and extended functions: ~
@@ -14507,4 +14514,420 @@ Problem: Test runner misses a comma.
Solution: Add the comma.
Files: src/testdir/runtest.vim
Patch 8.0.0001
Problem: Intro screen still mentions version7. (Paul)
Solution: Change it to version8.
Files: src/version.c
Patch 8.0.0002
Problem: The netrw plugin does not work.
Solution: Make it accept version 8.0.
Files: runtime/autoload/netrw.vim
Patch 8.0.0003
Problem: getwinvar() returns wrong Value of boolean and number options,
especially non big endian systems. (James McCoy)
Solution: Cast the pointer to long or int. (closes #1060)
Files: src/option.c, src/testdir/test_bufwintabinfo.vim
Patch 8.0.0004
Problem: A string argument for function() that is not a function name
results in an error message with NULL. (Christian Brabandt)
Solution: Use the argument for the error message.
Files: src/evalfunc.c, src/testdir/test_expr.vim
Patch 8.0.0005
Problem: Netbeans test fails with Python 3. (Jonathonf)
Solution: Encode the string before sending it. (closes #1070)
Files: src/testdir/test_netbeans.py
Patch 8.0.0006
Problem: ":lb" is interpreted as ":lbottom" while the documentation says it
means ":lbuffer".
Solution: Adjust the order of the commands. (haya14busa, closes #1093)
Files: src/ex_cmds.h
Patch 8.0.0007
Problem: Vim 7.4 is still mentioned in a few places.
Solution: Update to Vim 8. (Uncle Bill, closes #1094)
Files: src/INSTALLpc.txt, src/vimtutor, uninstal.txt
Patch 8.0.0008
Problem: Popup complete test is disabled.
Solution: Enable the test and change the assert. (Hirohito Higashi)
Files: src/testdir/test_popup.vim
Patch 8.0.0009
Problem: Unnecessary workaround for AppVeyor.
Solution: Revert patch 7.4.990. (Christian Brabandt)
Files: appveyor.yml
Patch 8.0.0010
Problem: Crash when editing file that starts with crypt header. (igor2x)
Solution: Check for length of text. (Christian Brabandt) Add a test.
Files: src/fileio.c, src/testdir/test_crypt.vim, src/Makefile,
src/testdir/Make_all.mak
Patch 8.0.0011
Problem: On OSX Test_pipe_through_sort_all() sometimes fails.
Solution: Add the test to the list of flaky tests.
Files: src/testdir/runtest.vim
Patch 8.0.0012
Problem: Typos in comments.
Solution: Change "its" to "it's". (Matthew Brener, closes #1088)
Files: src/evalfunc.c, src/main.aap, src/nbdebug.c, src/netbeans.c,
src/quickfix.c, src/workshop.c, src/wsdebug.c
Patch 8.0.0013 (after 8.0.0011)
Problem: Missing comma in list.
Solution: Add the comma.
Files: src/testdir/runtest.vim
Patch 8.0.0014
Problem: Crypt tests are old style.
Solution: Convert to new style.
Files: src/testdir/test71.in, src/testdir/test71.ok,
src/testdir/test71a.in, src/testdir/test_crypt.vim, src/Makefile,
src/testdir/Make_all.mak
Patch 8.0.0015
Problem: Can't tell which part of a channel has "buffered" status.
Solution: Add an optional argument to ch_status(). Let ch_info() also
return "buffered" for out_status and err_status.
Files: src/evalfunc.c, src/channel.c, src/proto/channel.pro,
src/testdir/test_channel.vim, runtime/doc/eval.txt
Patch 8.0.0016 (after 8.0.0015)
Problem: Build fails.
Solution: Include missing change.
Files: src/eval.c
Patch 8.0.0017
Problem: Cannot get the number of the current quickfix or location list.
Solution: Use the current list if "nr" in "what" is zero. (Yegappan
Lakshmanan) Remove debug command from test.
Files: src/quickfix.c, src/testdir/test_quickfix.vim,
runtime/doc/eval.txt
Patch 8.0.0018
Problem: When using ":sleep" channel input is not handled.
Solution: When there is a channel check for input also when not in raw mode.
Check every 100 msec.
Files: src/channel.c, src/proto/channel.pro, src/ui.c, src/proto/ui.pro,
src/ex_docmd.c, src/os_amiga.c, src/proto/os_amiga.pro,
src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c,
src/proto/os_win32.pro
Patch 8.0.0019
Problem: Test_command_count is old style.
Solution: Turn it into a new style test. (Naruhiko Nishino)
Use more assert functions.
Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test_alot.vim,
src/testdir/test_autocmd.vim, src/testdir/test_command_count.in,
src/testdir/test_command_count.ok,
src/testdir/test_command_count.vim
Patch 8.0.0020
Problem: The regexp engines are not reentrant.
Solution: Add regexec_T and save/restore the state when needed.
Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test_expr.vim,
runtime/doc/eval.txt, runtime/doc/change.txt
Patch 8.0.0021
Problem: In the GUI when redrawing the cursor it may be on the second half
of a double byte character.
Solution: Correct the cursor column. (Yasuhiro Matsumoto)
Files: src/screen.c
Patch 8.0.0022
Problem: If a channel in NL mode is missing the NL at the end the remaining
characters are dropped.
Solution: When the channel is closed use the remaining text. (Ozaki Kiichi)
Files: src/channel.c, src/testdir/test_channel.vim
Patch 8.0.0023
Problem: "gd" and "gD" may find a match in a comment or string.
Solution: Ignore matches in comments and strings. (Anton Lindqvist)
Files: src/normal.c, src/testdir/test_goto.vim
Patch 8.0.0024
Problem: When the netbeans channel closes, "DETACH" is put in the output
part. (Ozaki Kiichi)
Solution: Write "DETACH" in the socket part.
Files: src/channel.c, src/testdir/test_netbeans.vim
Patch 8.0.0025
Problem: Inconsistent use of spaces vs tabs in gd test.
Solution: Use tabs. (Anton Lindqvist)
Files: src/testdir/test_goto.vim
Patch 8.0.0026
Problem: Error format with %W, %C and %Z does not work. (Gerd Wachsmuth)
Solution: Skip code when qf_multiignore is set. (Lcd)
Files: src/quickfix.c, src/testdir/test_quickfix.vim
Patch 8.0.0027
Problem: A channel is closed when reading on stderr or stdout fails, but
there may still be something to read on another part.
Solution: Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
Files: src/channel.c, src/eval.c, src/structs.h, src/proto/channel.pro,
src/testdir/test_channel.vim
Patch 8.0.0028
Problem: Superfluous semicolons.
Solution: Remove them. (Ozaki Kiichi)
Files: src/ex_cmds2.c
Patch 8.0.0029
Problem: Code for MS-Windows is complicated because of the exceptions for
old systems.
Solution: Drop support for MS-Windows older than Windows XP. (Ken Takata)
Files: runtime/doc/gui_w32.txt, runtime/doc/os_win32.txt,
runtime/doc/todo.txt, src/GvimExt/Makefile, src/Make_mvc.mak,
src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_w32.c,
src/if_cscope.c, src/misc1.c, src/misc2.c, src/option.c,
src/os_mswin.c, src/os_win32.c, src/os_win32.h,
src/proto/os_mswin.pro, src/proto/os_win32.pro, src/version.c
Patch 8.0.0030
Problem: Mouse mode is not automatically detected for tmux.
Solution: Check for 'term' to be "tmux". (Michael Henry)
Files: src/os_unix.c
Patch 8.0.0031
Problem: After ":bwipeout" 'fileformat' is not set to the right default.
Solution: Get the default from 'fileformats'. (Mike Williams)
Files: src/option.c, src/Makefile, src/testdir/test_fileformat.vim,
src/testdir/test_alot.vim
Patch 8.0.0032
Problem: Tests may change the input file when something goes wrong.
Solution: Avoid writing the input file.
Files: src/testdir/test51.in, src/testdir/test67.in,
src/testdir/test97.in, src/testdir/test_tabpage.vim
Patch 8.0.0033
Problem: Cannot use overlapping positions with matchaddpos().
Solution: Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi)
Files: src/screen.c, src/testdir/test_match.vim
Patch 8.0.0034
Problem: No completion for ":messages".
Solution: Complete "clear" argument. (Hirohito Higashi)
Files: src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro,
src/testdir/test_cmdline.vim, src/vim.h,
runtime/doc/eval.txt, runtime/doc/map.txt
Patch 8.0.0035 (after 7.4.2013)
Problem: Order of matches for 'omnifunc' is messed up. (Danny Su)
Solution: Do not set compl_curr_match when called from complete_check().
(closes #1168)
Files: src/edit.c, src/evalfunc.c, src/proto/edit.pro, src/search.c,
src/spell.c, src/tag.c, src/testdir/test76.in,
src/testdir/test76.ok, src/testdir/test_popup.vim, src/Makefile,
src/testdir/Make_all.mak
Patch 8.0.0036
Problem: Detecting that a job has finished may take a while.
Solution: Check for a finished job more often (Ozaki Kiichi)
Files: src/channel.c, src/os_unix.c, src/os_win32.c,
src/proto/os_unix.pro, src/proto/os_win32.pro,
src/testdir/test_channel.vim
Patch 8.0.0037
Problem: Get E924 when switching tabs. ()
Solution: Use win_valid_any_tab() instead of win_valid(). (Martin Vuille,
closes #1167, closes #1171)
Files: src/quickfix.c, src/testdir/test_quickfix.vim
Patch 8.0.0038
Problem: OPEN_CHR_FILES not defined for FreeBSD using Debian userland
files.
Solution: Check for __FreeBSD_kernel__. (James McCoy, closes #1166)
Files: src/vim.h
Patch 8.0.0039
Problem: When Vim 8 reads an old viminfo and exits, the next time marks are
not read from viminfo. (Ned Batchelder)
Solution: Set a mark when it wasn't set before, even when the timestamp is
zero. (closes #1170)
Files: src/mark.c, src/testdir/test_viminfo.vim
Patch 8.0.0040 (after 8.0.0033)
Problem: Whole line highlighting with matchaddpos() does not work.
Solution: Check for zero length. (Hirohito Higashi)
Files: src/screen.c, src/testdir/test_match.vim
Patch 8.0.0041
Problem: When using Insert mode completion but not actually inserting
anything an undo item is still created. (Tommy Allen)
Solution: Do not call stop_arrow() when not inserting anything.
Files: src/edit.c, src/testdir/test_popup.vim
Patch 8.0.0042 (after 8.0.0041)
Problem: When using Insert mode completion with 'completeopt' containing
"noinsert" change is not saved for undo. (Tommy Allen)
Solution: Call stop_arrow() before inserting for pressing Enter.
Files: src/edit.c, src/testdir/test_popup.vim
Patch 8.0.0043 (after 8.0.0041)
Problem: When using Insert mode completion with 'completeopt' containing
"noinsert" with CTRL-N the change is not saved for undo. (Tommy
Allen)
Solution: Call stop_arrow() before inserting for any key.
Files: src/edit.c, src/testdir/test_popup.vim
Patch 8.0.0044
Problem: In diff mode the cursor may end up below the last line, resulting
in an ml_get error.
Solution: Check the line to be valid.
Files: src/move.c, src/diff.c, src/proto/diff.pro,
src/testdir/test_diffmode.vim
Patch 8.0.0045
Problem: Calling job_stop() right after job_start() does not work.
Solution: Block signals while fork is still busy. (Ozaki Kiichi, closes
#1155)
Files: src/auto/configure, src/config.h.in, src/configure.in,
src/os_unix.c, src/testdir/test_channel.vim
Patch 8.0.0046
Problem: Using NUL instead of NULL.
Solution: Change to NULL. (Dominique Pelle)
Files: src/ex_cmds.c, src/json.c
Patch 8.0.0047
Problem: Crash when using the preview window from an unnamed buffer.
(lifepillar)
Solution: Do not clear the wrong buffer. (closes #1200)
Files: src/popupmnu.c
Patch 8.0.0048
Problem: On Windows job_stop() stops cmd.exe, not the processes it runs.
(Linwei)
Solution: Iterate over all processes and terminate the one where the parent
is the job process. (Yasuhiro Matsumoto, closes #1184)
Files: src/os_win32.c, src/structs.h
Patch 8.0.0049
Problem: When a match ends in part of concealed text highlighting, it might
mess up concealing by resetting prev_syntax_id.
Solution: Do not reset prev_syntax_id and add a test to verify. (Christian
Brabandt, closes #1092)
Files: src/screen.c, src/testdir/test_matchadd_conceal.vim
Patch 8.0.0050
Problem: An exiting job is detected with a large latency.
Solution: Check for pending job more often. (Ozaki Kiichi) Change the
double loop in mch_inchar() into one.
Files: src/channel.c, src/os_unix.c, src/testdir/shared.vim,
src/testdir/test_channel.vim
Patch 8.0.0051 (after 8.0.0048)
Problem: New code for job_stop() breaks channel test on AppVeyor.
Solution: Revert the change.
Files: src/os_win32.c, src/structs.h
Patch 8.0.0052 (after 8.0.0049)
Problem: Conceal test passes even without the bug fix.
Solution: Add a redraw command. (Christian Brabandt)
Files: src/testdir/test_matchadd_conceal.vim
Patch 8.0.0053 (after 8.0.0047)
Problem: No test for what 8.0.0047 fixes.
Solution: Add a test. (Hirohito Higashi)
Files: src/testdir/test_popup.vim
Patch 8.0.0054 (after 8.0.0051)
Problem: On Windows job_stop() stops cmd.exe, not the processes it runs.
(Linwei)
Solution: Iterate over all processes and terminate the one where the parent
is the job process. Now only when there is no job object.
(Yasuhiro Matsumoto, closes #1203)
Files: src/os_win32.c
Patch 8.0.0055
Problem: Minor comment and style deficiencies.
Solution: Update comments and fix style.
Files: src/buffer.c, src/misc2.c, src/os_unix.c
Patch 8.0.0056
Problem: When setting 'filetype' there is no check for a valid name.
Solution: Only allow valid characters in 'filetype', 'syntax' and 'keymap'.
Files: src/option.c, src/testdir/test_options.vim
Patch 8.0.0057 (after 8.0.0056)
Problem: Tests fail without the 'keymap' features.
Solution: Check for feature in test.
Files: src/testdir/test_options.vim
Patch 8.0.0058
Problem: Positioning of the popup menu is not good.
Solution: Position it better. (Hirohito Higashi)
Files: src/popupmnu.c
Patch 8.0.0059
Problem: Vim does not build on VMS systems.
Solution: Various changes for VMS. (Zoltan Arpadffy)
Files: src/json.c, src/macros.h, src/Make_vms.mms, src/os_unix.c,
src/os_unix.h, src/os_vms.c, src/os_vms_conf.h,
src/proto/os_vms.pro, src/testdir/Make_vms.mms
Patch 8.0.0060
Problem: When using an Ex command for 'keywordprg' it is escaped as with a
shell command. (Romain Lafourcade)
Solution: Escape for an Ex command. (closes #1175)
Files: src/normal.c, src/testdir/test_normal.vim
Patch 8.0.0061 (after 8.0.0058)
Problem: Compiler warning for unused variable.
Solution: Add #ifdef. (John Marriott)
Files: src/popupmnu.c
Patch 8.0.0062
Problem: No digraph for HORIZONTAL ELLIPSIS.
Solution: Use ",.". (Hans Ginzel, closes #1226)
Files: src/digraph.c, runtime/doc/digraph.txt
Patch 8.0.0063
Problem: Compiler warning for comparing with unsigned. (Zoltan Arpadffy)
Solution: Change <= to ==.
Files: src/undo.c
Patch 8.0.0064 (after 8.0.0060)
Problem: Normal test fails on MS-Windows.
Solution: Don't try using an illegal file name.
Files: src/testdir/test_normal.vim
Patch 8.0.0065 (after 8.0.0056)
Problem: Compiler warning for unused function in tiny build. (Tony
Mechelynck)
Solution: Add #ifdef.
Files: src/option.c
Patch 8.0.0066
Problem: when calling an operator function when 'linebreak' is set, it is
internally reset before calling the operator function.
Solution: Restore 'linebreak' before calling op_function(). (Christian
Brabandt)
Files: src/normal.c, src/testdir/test_normal.vim
Patch 8.0.0067
Problem: VMS has a problem with infinity.
Solution: Avoid an overflow. (Zoltan Arpadffy)
Files: src/json.c, src/macros.h
Patch 8.0.0068
Problem: Checking did_throw after executing autocommands is wrong. (Daniel
Hahler)
Solution: Call aborting() instead, and only when autocommands were executed.
Files: src/quickfix.c, src/if_cscope.c, src/testdir/test_quickfix.vim
Patch 8.0.0069
Problem: Compiler warning for self-comparison.
Solution: Define ONE_WINDOW and add #ifdef.
Files: src/globals.h, src/buffer.c, src/ex_docmd.c, src/move.c,
src/screen.c, src/quickfix.c, src/window.c
vim:tw=78:ts=8:ft=help:norl:
+5 -3
View File
@@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.0. Last change: 2016 Aug 23
*windows.txt* For Vim version 8.0. Last change: 2016 Dec 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -295,8 +295,8 @@ CTRL-W CTRL-Q *CTRL-W_CTRL-Q*
:1quit " quit the first window
:$quit " quit the last window
:9quit " quit the last window
" if there are less than 9 windows opened
:-quit " quit the previews window
" if there are fewer than 9 windows opened
:-quit " quit the previous window
:+quit " quit the next window
:+2quit " quit the second next window
<
@@ -696,6 +696,8 @@ can also get to them with the buffer list commands, like ":bnext".
- If the file is not open in a window edit the file in the
current window. If the current buffer can't be |abandon|ed,
the window is split first.
- Windows that are not in the argument list or are not full
width will be closed if possible.
The |argument-list| is set, like with the |:next| command.
The purpose of this command is that it can be used from a
program that wants Vim to edit another file, e.g., a debugger.
+21 -6
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Sep 22
" Last Change: 2017 Jan 06
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -309,7 +309,10 @@ au BufNewFile,BufRead *.bl setf blank
au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml
" Bazel (http://bazel.io)
autocmd BufRead,BufNewFile *.bzl,BUILD,WORKSPACE setfiletype bzl
autocmd BufRead,BufNewFile *.bzl,WORKSPACE setfiletype bzl
if has("fname_case")
autocmd BufRead,BufNewFile BUILD setfiletype bzl
endif
" C or lpc
au BufNewFile,BufRead *.c call s:FTlpc()
@@ -673,8 +676,14 @@ au BufNewFile,BufRead *.dtd setf dtd
" DTS/DSTI (device tree files)
au BufNewFile,BufRead *.dts,*.dtsi setf dts
" EDIF (*.edf,*.edif,*.edn,*.edo)
au BufNewFile,BufRead *.ed\(f\|if\|n\|o\) setf edif
" EDIF (*.edf,*.edif,*.edn,*.edo) or edn
au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif
au BufNewFile,BufRead *.edn
\ if getline(1) =~ '^\s*(\s*edif\>' |
\ setf edif |
\ else |
\ setf clojure |
\ endif
" EditorConfig (close enough to dosini)
au BufNewFile,BufRead .editorconfig setf dosini
@@ -862,7 +871,7 @@ au BufNewFile,BufRead *.ht setf haste
au BufNewFile,BufRead *.htpp setf hastepreproc
" Hercules
au BufNewFile,BufRead *.vc,*.ev,*.rs,*.sum,*.errsum setf hercules
au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules
" HEX (Intel)
au BufNewFile,BufRead *.hex,*.h32 setf hex
@@ -1760,6 +1769,9 @@ au BufNewFile,BufRead *.rb,*.rbw setf ruby
" RubyGems
au BufNewFile,BufRead *.gemspec setf ruby
" Rust
au BufNewFile,BufRead *.rs setf rust
" Rackup
au BufNewFile,BufRead *.ru setf ruby
@@ -2254,7 +2266,7 @@ func! s:FTtex()
endfunc
" ConTeXt
au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv setf context
au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv,*.mkvi setf context
" Texinfo
au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo
@@ -2668,6 +2680,9 @@ au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
" Nroff macros
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
" OpenBSD hostname.if
au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config')
" Pam conf
au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf')
+73 -6
View File
@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: ConTeXt typesetting engine
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 30
if exists("b:did_ftplugin")
finish
@@ -11,16 +12,26 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
if !exists('current_compiler')
compiler context
endif
setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
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'
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\)'
let &l:include = '^\s*\%(input\|component\)'
let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
setlocal suffixesadd=.tex
@@ -31,5 +42,61 @@ if exists("loaded_matchit")
\ '\\start\(\a\+\):\\stop\1'
endif
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\)'
\ }
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
" 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>
" 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)
normal! V
call cursor(search(s:tp_regex, 'W') - 1, 1)
endf
" 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>
" $...$ 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$
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()
let &cpo = s:cpo_save
unlet s:cpo_save
+4 -3
View File
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2016 Jun 20
" Last Change: 2017 Jan 18
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
@@ -47,6 +47,7 @@ endif
if exists(":Man") != 2
com -nargs=+ Man call s:GetPage(<f-args>)
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
endif
" Define functions only once.
@@ -96,7 +97,7 @@ func <SID>GetCmdArg(sect, page)
endfunc
func <SID>FindPage(sect, page)
let where = system("/usr/bin/man ".s:man_find_arg.' '.s:GetCmdArg(a:sect, a:page))
let where = system("man ".s:man_find_arg.' '.s:GetCmdArg(a:sect, a:page))
if where !~ "^/"
if matchstr(where, " [^ ]*$") !~ "^ /"
return 0
@@ -175,7 +176,7 @@ func <SID>GetPage(...)
let $MANWIDTH = winwidth(0)
let unsetwidth = 1
endif
silent exec "r!/usr/bin/man ".s:GetCmdArg(sect, page)." | col -b"
silent exec "r !man ".s:GetCmdArg(sect, page)." | col -b"
if unsetwidth
let $MANWIDTH = ''
endif
+56 -5
View File
@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: MetaFont
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Language: METAFONT
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,59 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< fo<"
let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
setlocal suffixesadd=.mf
let &l:include = '\<input\>'
let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
setlocal omnifunc=syntaxcomplete#Complete
let g:omni_syntax_group_include_mf = 'mf\w\+'
let g:omni_syntax_group_exclude_mf = 'mfTodoComment'
let s:mp_regex = {
\ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|beginchar\|beginlogochar\)\>',
\ 'endsection' : '^\s*\%(enddef\|endchar\)\>',
\ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
\ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
\ }
function! s:move_around(count, what, flags, visual)
if a:visual
exe "normal! gv"
endif
call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
endfunction
" 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>
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_words =
\ '\<if\>:\<else\%[if]\>:\<fi\>,' .
\ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
\ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
\ '\<begingroup\>:\<endgroup\>,' .
\ '\<begin\%(logo\)\?char\>:\<endchar\>'
" Ignore comments and strings
let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
\ =~# "mf\\(Comment\\|String\\)$"'
endif
let &cpo = s:cpo_save
unlet s:cpo_save
+59 -5
View File
@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: MetaPost
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Language: MetaPost
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,16 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< fo<"
let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
setlocal suffixesadd=.mp,.mpiv
let &l:include = '\<\%(input\|loadmodule\)\>' " loadmodule is in MetaFun
let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
setlocal omnifunc=syntaxcomplete#Complete
let g:omni_syntax_group_include_mp = 'mf\w\+,mp\w\+'
let g:omni_syntax_group_exclude_mp = 'mfTodoComment'
if exists(":FixBeginfigs") != 2
command -nargs=0 FixBeginfigs call s:fix_beginfigs()
@@ -24,5 +32,51 @@ if exists(":FixBeginfigs") != 2
endfunction
endif
let s:mp_regex = {
\ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|begin\%(fig\|char\|logochar\|glyph\|graph\)\)\>',
\ 'endsection' : '^\s*\%(enddef\|end\%(fig\|char\|glyph\|graph\)\)\>',
\ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
\ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
\ }
function! s:move_around(count, what, flags, visual)
if a:visual
exe "normal! gv"
endif
call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
endfunction
" 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>
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_words =
\ '\<if\>:\<else\%[if]\>:\<fi\>,' .
\ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
\ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
\ '\<beginfig\>:\<endfig\>,' .
\ '\<begingroup\>:\<endgroup\>,' .
\ '\<begin\%(logo\)\?char\>:\<endchar\>,' .
\ '\<beginglyph\>:\<endglyph\>,' .
\ '\<begingraph\>:\<endgraph\>'
" Ignore comments and strings
let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
\ =~# "^mf\\%(Comment\\|String\\|\\)$\\|^mpTeXinsert$"'
endif
let &cpo = s:cpo_save
unlet s:cpo_save
+5 -5
View File
@@ -2,7 +2,7 @@
" Language: python
" Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Tue, 06 September 2016
" Last Change: Tue, 09 October 2016
" https://github.com/sullyj3/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
@@ -22,10 +22,10 @@ setlocal omnifunc=pythoncomplete#Complete
set wildignore+=*.pyc
let b:next_toplevel='\v%$\|^(class\|def)>'
let b:prev_toplevel='\v^(class\|def)>'
let b:next='\v%$\|^\s*(class\|def)>'
let b:prev='\v^\s*(class\|def)>'
let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
let b:prev_toplevel='\v^(class\|def\|async def)>'
let b:next='\v%$\|^\s*(class\|def\|async def)>'
let b:prev='\v^\s*(class\|def\|async def)>'
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
+36
View File
@@ -0,0 +1,36 @@
" ConTeXt indent file
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 15
if exists("b:did_indent")
finish
endif
if !get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
finish
endif
" Load MetaPost indentation script
runtime! indent/mp.vim
let s:keepcpo= &cpo
set cpo&vim
setlocal indentexpr=GetConTeXtIndent()
let b:undo_indent = "setl indentexpr<"
function! GetConTeXtIndent()
" Use MetaPost rules inside MetaPost graphic environments
if len(synstack(v:lnum, 1)) > 0 &&
\ synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic'
return GetMetaPostIndent()
endif
return -1
endfunc
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:sw=2
+11 -9
View File
@@ -1,11 +1,12 @@
" Vim indent file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.45
" Last Change: 2016 Aug. 29
" Version: 47
" Last Change: 2016 Oct. 29
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
" Useful suggestions were made by: Albert Oliver Serra and Takuya Fujiwara.
" Useful suggestions were made, in chronological order, by:
" Albert Oliver Serra, Takuya Fujiwara and Philipp Edelmann.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -99,9 +100,9 @@ function FortranGetIndent(lnum)
endif
endif
"Add a shiftwidth to statements following if, else, else if, case,
"Add a shiftwidth to statements following if, else, else if, case, class,
"where, else where, forall, type, interface and associate statements
if prevstat =~? '^\s*\(case\|else\|else\s*if\|else\s*where\)\>'
if prevstat =~? '^\s*\(case\|class\|else\|else\s*if\|else\s*where\)\>'
\ ||prevstat=~? '^\s*\(type\|interface\|associate\|enum\)\>'
\ ||prevstat=~?'^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*\(forall\|where\|block\)\>'
\ ||prevstat=~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*if\>'
@@ -121,7 +122,8 @@ function FortranGetIndent(lnum)
let prefix='\(\(pure\|impure\|elemental\|recursive\)\s\+\)\{,2}'
let type='\(\(integer\|real\|double\s\+precision\|complex\|logical'
\.'\|character\|type\|class\)\s*\S*\s\+\)\='
if prevstat =~? '^\s*\(module\|contains\/submodule\|program\)\>'
if prevstat =~? '^\s*\(contains\|submodule\|program\)\>'
\ ||prevstat =~? '^\s*'.'module\>\(\s*\procedure\)\@!'
\ ||prevstat =~? '^\s*'.prefix.'subroutine\>'
\ ||prevstat =~? '^\s*'.prefix.type.'function\>'
\ ||prevstat =~? '^\s*'.type.prefix.'function\>'
@@ -129,16 +131,16 @@ function FortranGetIndent(lnum)
endif
if getline(v:lnum) =~? '^\s*contains\>'
\ ||getline(v:lnum)=~? '^\s*end\s*'
\ .'\(function\|subroutine\|module\/submodule\|program\)\>'
\ .'\(function\|subroutine\|module\|submodule\|program\)\>'
let ind = ind - shiftwidth()
endif
endif
"Subtract a shiftwidth from else, else if, elsewhere, case, end if,
"Subtract a shiftwidth from else, else if, elsewhere, case, class, end if,
" end where, end select, end forall, end interface, end associate,
" end enum, end type, end block and end type statements
if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*'
\. '\(else\|else\s*if\|else\s*where\|case\|'
\. '\(else\|else\s*if\|else\s*where\|case\|class\|'
\. 'end\s*\(if\|where\|select\|interface\|'
\. 'type\|forall\|associate\|enum\|block\)\)\>'
let ind = ind - shiftwidth()
+10 -15
View File
@@ -2,7 +2,7 @@
" Header: "{{{
" Maintainer: Bram Moolenaar
" Original Author: Andy Wokula <anwoku@yahoo.de>
" Last Change: 2016 Mar 30
" Last Change: 2017 Jan 17
" Version: 1.0
" Description: HTML indent script with cached state for faster indenting on a
" range of lines.
@@ -25,27 +25,22 @@
if exists("b:did_indent") "{{{
finish
endif
" Load the Javascript indent script first, it defines GetJavascriptIndent().
" Undo the rest.
" Load base python indent.
if !exists('*GetJavascriptIndent')
runtime! indent/javascript.vim
endif
let b:did_indent = 1
setlocal indentexpr=HtmlIndent()
setlocal indentkeys=o,O,<Return>,<>>,{,},!^F
" "j1" is included to make cindent() work better with Javascript.
setlocal cino=j1
" "J1" should be included, but it doen't work properly before 7.4.355.
if has("patch-7.4.355")
setlocal cino+=J1
endif
" Before patch 7.4.355 indenting after "(function() {" does not work well, add
" )2 to limit paren search.
if !has("patch-7.4.355")
setlocal cino+=)2
endif
" Needed for % to work when finding start/end of a tag.
setlocal matchpairs+=<:>
let b:undo_indent = "setlocal inde< indk< cino<"
let b:undo_indent = "setlocal inde< indk<"
" b:hi_indent keeps state to speed up indenting consecutive lines.
let b:hi_indent = {"lnum": -1}
@@ -596,7 +591,7 @@ func! s:Alien3()
return eval(b:hi_js1indent)
endif
if b:hi_indent.scripttype == "javascript"
return cindent(v:lnum)
return GetJavascriptIndent()
else
return -1
endif
+283 -113
View File
@@ -2,7 +2,7 @@
" Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
" Last Change: August 25, 2016
" Last Change: December 31, 2016
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@@ -12,11 +12,10 @@ let b:did_indent = 1
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
setlocal nolisp noautoindent nosmartindent
setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e
setlocal cinoptions+=j1,J1
setlocal autoindent nolisp nosmartindent
setlocal indentkeys+=0],0)
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys< cinoptions<'
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
" Only define the function once.
if exists('*GetJavascriptIndent')
@@ -37,158 +36,329 @@ else
endfunction
endif
let s:line_pre = '^\s*\%(\%(\%(\/\*.\{-}\)\=\*\+\/\s*\)\=\)\@>'
let s:expr_case = s:line_pre . '\%(\%(case\>.\+\)\|default\)\s*:'
" searchpair() wrapper
if has('reltime')
function s:GetPair(start,end,flags,skip,time,...)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
endfunction
else
function s:GetPair(start,end,flags,skip,...)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
endfunction
endif
" Regex of syntax group names that are or delimit string or are comments.
let s:syng_strcom = '\%(s\%(tring\|pecial\)\|comment\|regex\|doc\|template\)'
" Regex of syntax group names that are strings or documentation.
let s:syng_comment = '\%(comment\|doc\)'
let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template'
let s:syng_str = 'string\|template'
let s:syng_com = 'comment\|doc'
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
if has('reltime')
function s:GetPair(start,end,flags,time)
return searchpair(a:start,'',a:end,a:flags,s:skip_expr,max([prevnonblank(v:lnum) - 2000,0]),a:time)
endfunction
else
function s:GetPair(start,end,flags,n)
return searchpair(a:start,'',a:end,a:flags,0,max([prevnonblank(v:lnum) - 2000,0]))
endfunction
endif
function s:skip_func()
if !s:free || search('\m`\|\*\/','nW',s:looksyn)
let s:free = !eval(s:skip_expr)
let s:looksyn = s:free ? line('.') : s:looksyn
return !s:free
endif
let s:looksyn = line('.')
return (search('\m\/','nbW',s:looksyn) || search('\m[''"]\|\\$','nW',s:looksyn)) && eval(s:skip_expr)
endfunction
let s:line_term = '\s*\%(\%(\/\%(\%(\*.\{-}\*\/\)\|\%(\*\+\)\)\)\s*\)\=$'
function s:alternatePair(stop)
let pos = getpos('.')[1:2]
while search('\m[][(){}]','bW',a:stop)
if !s:skip_func()
let idx = stridx('])}',s:looking_at())
if idx + 1
if !s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop)
break
endif
else
return
endif
endif
endwhile
call call('cursor',pos)
endfunction
function s:save_pos(f,...)
let l:pos = getpos('.')[1:2]
let ret = call(a:f,a:000)
call call('cursor',l:pos)
return ret
endfunction
function s:syn_at(l,c)
return synIDattr(synID(a:l,a:c,0),'name')
endfunction
function s:looking_at()
return getline('.')[col('.')-1]
endfunction
function s:token()
return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
endfunction
function s:b_token()
if s:looking_at() =~ '\k'
call search('\m\<','cbW')
endif
return search('\m\S','bW')
endfunction
function s:previous_token()
let l:n = line('.')
while s:b_token()
if (s:looking_at() == '/' || line('.') != l:n && search('\m\/\/','nbW',
\ line('.'))) && s:syn_at(line('.'),col('.')) =~? s:syng_com
call search('\m\_[^/]\zs\/[/*]','bW')
else
return s:token()
endif
endwhile
return ''
endfunction
function s:others(p)
return "((line2byte(line('.')) + col('.')) <= ".(line2byte(a:p[0]) + a:p[1]).") || ".s:skip_expr
endfunction
function s:tern_skip(p)
return s:GetPair('{','}','nbW',s:others(a:p),200,a:p[0]) > 0
endfunction
function s:tern_col(p)
return s:GetPair('?',':\@<!::\@!','nbW',s:others(a:p)
\ .' || s:tern_skip('.string(a:p).')',200,a:p[0]) > 0
endfunction
function s:label_col()
let pos = getpos('.')[1:2]
let [s:looksyn,s:free] = pos
call s:alternatePair(0)
if s:save_pos('s:IsBlock')
let poss = getpos('.')[1:2]
return call('cursor',pos) || !s:tern_col(poss)
elseif s:looking_at() == ':'
return !s:tern_col([0,0])
endif
endfunction
" configurable regexes that define continuation lines, not including (, {, or [.
if !exists('g:javascript_opfirst')
let g:javascript_opfirst = '\%([<>,:?^%|*&]\|\/[^/*]\|\([-.+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)'
endif
if !exists('g:javascript_continuation')
let g:javascript_continuation = '\%([<=,.?/*:^%|&]\|+\@<!+\|-\@<!-\|=\@<!>\|\<in\%(stanceof\)\=\)'
endif
let s:opfirst = '^' . get(g:,'javascript_opfirst',
\ '\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
let s:continuation = get(g:,'javascript_continuation',
\ '\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|delete\|void\|in\|instanceof\)\)') . '$'
let g:javascript_opfirst = s:line_pre . g:javascript_opfirst
let g:javascript_continuation .= s:line_term
function s:OneScope(lnum,text,add)
return a:text =~# '\%(\<else\|\<do\|=>\)' . s:line_term ? 'no b' :
\ ((a:add && a:text =~ s:line_pre . '$' && search('\%' . s:PrevCodeLine(a:lnum - 1) . 'l.)' . s:line_term)) ||
\ cursor(a:lnum, match(a:text, ')' . s:line_term)) > -1) &&
\ s:GetPair('(', ')', 'cbW', 100) > 0 && search('\C\l\+\_s*\%#','bW') &&
\ (a:add || ((expand('<cword>') !=# 'while' || !s:GetPair('\C\<do\>', '\C\<while\>','nbW',100)) &&
\ (expand('<cword>') !=# 'each' || search('\C\<for\_s\+\%#','nbW')))) ? expand('<cword>') : ''
function s:continues(ln,con)
return !cursor(a:ln, match(' '.a:con,s:continuation)) &&
\ eval((['s:syn_at(line("."),col(".")) !~? "regex"'] +
\ repeat(['s:previous_token() != "."'],5) + [1])[
\ index(split('/ typeof in instanceof void delete'),s:token())])
endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
return getline(line('.'))[col('.')-1] == '{' && !search(
\ '\C\%(\<return\s*\|\%([-=~!<*+,.?^%|&\[(]\|=\@<!>\|\*\@<!\/\|\<\%(var\|const\|let\|import\|export\%(\_s\+default\)\=\|yield\|delete\|void\|t\%(ypeof\|hrow\)\|new\|in\%(stanceof\)\=\)\)\_s*\)\%#','bnW') &&
\ (!search(':\_s*\%#','bW') || (!s:GetPair('[({[]','[])}]','bW',200) || s:IsBlock()))
" get the line of code stripped of comments and move cursor to the last
" non-comment char.
function s:Trim(ln)
let pline = substitute(getline(a:ln),'\s*$','','')
let l:max = max([match(pline,'.*[^/]\zs\/[/*]'),0])
while l:max && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
let pline = substitute(strpart(pline, 0, l:max),'\s*$','','')
let l:max = max([match(pline,'.*[^/]\zs\/[/*]'),0])
endwhile
return cursor(a:ln,strlen(pline)) ? pline : pline
endfunction
" Auxiliary Functions {{{2
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
" Find line above 'lnum' that isn't empty or in a comment
function s:PrevCodeLine(lnum)
let l:lnum = prevnonblank(a:lnum)
while l:lnum
if synIDattr(synID(l:lnum,matchend(getline(l:lnum), '^\s*[^''"]'),0),'name') !~? s:syng_strcom
return l:lnum
let l:n = prevnonblank(a:lnum)
while l:n
if getline(l:n) =~ '^\s*\/[/*]'
if (stridx(getline(l:n),'`') > 0 || getline(l:n-1)[-1:] == '\') &&
\ s:syn_at(l:n,1) =~? s:syng_str
return l:n
endif
let l:n = prevnonblank(l:n-1)
elseif s:syn_at(l:n,1) =~? s:syng_com
let l:n = s:save_pos('eval',
\ 'cursor('.l:n.',1) + search(''\m\/\*'',"bW")')
else
return l:n
endif
let l:lnum = prevnonblank(l:lnum - 1)
endwhile
endfunction
" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum)
let [open_0,open_2,open_4] = [0,0,0]
let l:open = 0
let l:line = getline(a:lnum)
let pos = match(l:line, '[][(){}]', 0)
while pos != -1
if synIDattr(synID(a:lnum,pos + 1,0),'name') !~? s:syng_strcom
let idx = stridx('(){}[]', l:line[pos])
if idx % 2 == 0
let open_{idx} = open_{idx} + 1
else
let open_{idx - 1} = open_{idx - 1} - 1
if s:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
let l:open += match(' ' . l:line[pos],'[[({]')
if l:open < 0
return
endif
endif
let pos = match(l:line, '[][(){}]', pos + 1)
endwhile
return (!open_4 + !open_2 + !open_0) - 2
return !l:open
endfunction
function s:OneScope(lnum)
let pline = s:Trim(a:lnum)
let kw = 'else do'
if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
call s:previous_token()
let kw = 'for if let while with'
if index(split('await each'),s:token()) + 1
call s:previous_token()
let kw = 'for'
endif
endif
return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
\ s:save_pos('s:previous_token') != '.'
endfunction
" returns braceless levels started by 'i' and above lines * &sw. 'num' is the
" lineNr which encloses the entire context, 'cont' if whether line 'i' + 1 is
" a continued expression, which could have started in a braceless context
function s:iscontOne(i,num,cont)
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
let pind = a:num ? indent(l:num) + s:W : 0
let ind = indent(l:i) + (a:cont ? 0 : s:W)
while l:i >= l:num && (ind > pind || l:i == l:num)
if indent(l:i) < ind && s:OneScope(l:i)
let bL += s:W
let l:i = line('.')
elseif !a:cont || bL || ind < indent(a:i)
break
endif
let ind = min([ind, indent(l:i)])
let l:i = s:PrevCodeLine(l:i - 1)
endwhile
return bL
endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
if s:looking_at() == '{'
let l:n = line('.')
let char = s:previous_token()
let syn = char =~ '[{>/]' ? s:syn_at(line('.'),col('.')-(char == '{')) : ''
if syn =~? 'xml\|jsx'
return char != '{'
elseif char =~ '\k'
return index(split('return const let import export yield default delete var await void typeof throw case new in instanceof')
\ ,char) < (line('.') != l:n) || s:previous_token() == '.'
elseif char == '>'
return getline('.')[col('.')-2] == '=' || syn =~? '^jsflow'
elseif char == ':'
return getline('.')[col('.')-2] != ':' && s:label_col()
endif
return syn =~? 'regex' || char !~ '[-=~!<*+,/?^%|&([]'
endif
endfunction
" }}}
function GetJavascriptIndent()
if !exists('b:js_cache')
let b:js_cache = [0,0,0]
endif
let b:js_cache = get(b:,'js_cache',[0,0,0])
" Get the current line.
let l:line = getline(v:lnum)
let syns = synIDattr(synID(v:lnum, 1, 0), 'name')
call cursor(v:lnum,1)
let l:line = getline('.')
let syns = s:syn_at(v:lnum, 1)
" start with strings,comments,etc.{{{2
if (l:line !~ '^[''"`]' && syns =~? '\%(string\|template\)') ||
\ (l:line !~ '^\s*[/*]' && syns =~? s:syng_comment)
" start with strings,comments,etc.
if syns =~? s:syng_com
if l:line =~ '^\s*\*'
return cindent(v:lnum)
elseif l:line !~ '^\s*\/[/*]'
return -1
endif
elseif syns =~? s:syng_str && l:line !~ '^[''"]'
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
let b:js_cache[0] = v:lnum
endif
return -1
endif
if l:line !~ '^\%(\/\*\|\s*\/\/\)' && syns =~? s:syng_comment
return cindent(v:lnum)
endif
let l:lnum = s:PrevCodeLine(v:lnum - 1)
if l:lnum == 0
return 0
if !l:lnum
return
endif
if (l:line =~# s:expr_case)
let cpo_switch = &cpo
set cpo+=%
let ind = cindent(v:lnum)
let &cpo = cpo_switch
return ind
let l:line = substitute(l:line,'^\s*','','')
if l:line[:1] == '/*'
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
endif
if l:line =~ '^\/[/*]'
let l:line = ''
endif
"}}}
" the containing paren, bracket, curly. Memoize, last lineNr either has the
" same scope or starts a new one, unless if it closed a scope.
call cursor(v:lnum,1)
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum && b:js_cache[0] &&
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum) > 0)
let num = b:js_cache[1]
elseif syns != '' && l:line[0] =~ '\s'
let pattern = syns =~? 'block' ? ['{','}'] : syns =~? 'jsparen' ? ['(',')'] :
\ syns =~? 'jsbracket'? ['\[','\]'] : ['[({[]','[])}]']
let num = s:GetPair(pattern[0],pattern[1],'bW',2000)
" the containing paren, bracket, or curly. Many hacks for performance
let idx = strlen(l:line) ? stridx('])}',l:line[0]) : -1
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum &&
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum))
call call('cursor',b:js_cache[1:])
else
let num = s:GetPair('[({[]','[])}]','bW',2000)
endif
let b:js_cache = [v:lnum,num,line('.') == v:lnum ? b:js_cache[2] : col('.')]
if l:line =~ s:line_pre . '[])}]'
return indent(num)
let [s:looksyn, s:free, top] = [v:lnum - 1, 1, (!indent(l:lnum) &&
\ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
if idx + 1
call s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,top)
elseif indent(v:lnum) && syns =~? 'block'
call s:GetPair('{','}','bW','s:skip_func()',2000,top)
else
call s:alternatePair(top)
endif
endif
call cursor(b:js_cache[1],b:js_cache[2])
let swcase = getline(l:lnum) =~# s:expr_case
let pline = swcase ? getline(l:lnum) : substitute(getline(l:lnum), '\%(:\@<!\/\/.*\)$', '','')
let inb = num == 0 || num < l:lnum && ((l:line !~ s:line_pre . ',' && pline !~ ',' . s:line_term) || s:IsBlock())
let switch_offset = num == 0 || s:OneScope(num, strpart(getline(num),0,b:js_cache[2] - 1),1) !=# 'switch' ? 0 :
\ &cino !~ ':' || !has('float') ? s:sw() :
\ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (&cino =~# '.*:[^,]*s' ? s:sw() : 1))
" most significant, find the indent amount
if inb && !swcase && ((l:line =~# g:javascript_opfirst || pline =~# g:javascript_continuation) ||
\ num < l:lnum && s:OneScope(l:lnum,pline,0) =~# '\<\%(for\|each\|if\|let\|no\sb\|w\%(hile\|ith\)\)\>' &&
\ l:line !~ s:line_pre . '{')
return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset
elseif num > 0
return indent(num) + s:sw() + switch_offset
if idx + 1 || l:line[:1] == '|}'
if idx == 2 && search('\m\S','bW',line('.')) && s:looking_at() == ')'
call s:GetPair('(',')','bW',s:skip_expr,200)
endif
return indent('.')
endif
let b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
let num = b:js_cache[1]
let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
if !num || s:IsBlock()
let pline = s:save_pos('s:Trim',l:lnum)
if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
let num = line('.')
if s:previous_token() ==# 'switch' && s:previous_token() != '.'
if &cino !~ ':' || !has('float')
let switch_offset = s:W
else
let cinc = matchlist(&cino,'.*:\(-\)\=\([0-9.]*\)\(s\)\=\C')
let switch_offset = float2nr(str2float(cinc[1].(strlen(cinc[2]) ? cinc[2] : strlen(cinc[3])))
\ * (strlen(cinc[3]) ? s:W : 1))
endif
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
return indent(num) + switch_offset
endif
endif
endif
if pline[-1:] !~ '[{;]'
if pline =~# ':\@<!:$'
call cursor(l:lnum,strlen(pline))
let isOp = s:tern_col(b:js_cache[1:2])
else
let isOp = l:line =~# s:opfirst || s:continues(l:lnum,pline)
endif
let bL = s:iscontOne(l:lnum,num,isOp)
let bL -= (bL && l:line[0] == '{') * s:W
endif
endif
" main return
if isOp
return (num ? indent(num) : -s:W) + (s:W * 2) + switch_offset + bL
elseif num
return indent(num) + s:W + switch_offset + bL
endif
return bL
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save
+6
View File
@@ -0,0 +1,6 @@
" METAFONT indent file
" Language: METAFONT
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 1
runtime! indent/mp.vim
+324 -175
View File
@@ -1,56 +1,19 @@
" MetaPost indent file
" Language: MetaPost
" Maintainer: Eugene Minkovskii <emin@mccme.ru>
" Last Change: 2012 May 18
" Version: 0.1
" ==========================================================================
" Language: MetaPost
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Eugene Minkovskii <emin@mccme.ru>
" Last Change: 2016 Oct 2, 4:13pm
" Version: 0.2
" Identation Rules: {{{1
" First of all, MetaPost language don't expect any identation rules.
" This screept need for you only if you (not MetaPost) need to do
" exactly code. If you don't need to use indentation, see
" :help filetype-indent-off
"
" Note: Every rules of identation in MetaPost or TeX languages (and in some
" other of course) is very subjective. I can release only my vision of this
" promlem.
"
" ..........................................................................
" Example of correct (by me) identation {{{2
" shiftwidth=4
" ==========================================================================
" for i=0 upto 99:
" z[i] = (0,1u) rotated (i*360/100);
" endfor
" draw z0 -- z10 -- z20
" withpen ... % <- 2sw because breaked line
" withcolor ...; % <- same as previous
" draw z0 for i=1 upto 99:
" -- z[i] % <- 1sw from left end of 'for' satement
" endfor withpen ... % <- 0sw from left end of 'for' satement
" withcolor ...; % <- 2sw because breaked line
" draw if One: % <- This is internal if (like 'for' above)
" one
" elsif Other:
" other
" fi withpen ...;
" if one: % <- This is external if
" draw one;
" elseif other:
" draw other;
" fi
" draw z0; draw z1;
" }}}
" }}}
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetMetaPostIndent()
setlocal indentkeys+=;,<:>,=if,=for,=def,=end,=else,=fi
setlocal indentkeys+==end,=else,=fi,=fill,0),0]
let b:undo_indent = "setl indentkeys< indentexpr<"
" Only define the function once.
if exists("*GetMetaPostIndent")
@@ -59,151 +22,337 @@ endif
let s:keepcpo= &cpo
set cpo&vim
" Auxiliary Definitions: {{{1
function! MetaNextNonblankNoncomment(pos)
" Like nextnonblank() but ignore comment lines
let tmp = nextnonblank(a:pos)
while tmp && getline(tmp) =~ '^\s*%'
let tmp = nextnonblank(tmp+1)
function GetMetaPostIndent()
let ignorecase_save = &ignorecase
try
let &ignorecase = 0
return GetMetaPostIndentIntern()
finally
let &ignorecase = ignorecase_save
endtry
endfunc
" Regexps {{{
" Note: the next three variables are made global so that a user may add
" further keywords.
"
" Example:
"
" Put these in ~/.vim/after/indent/mp.vim
"
" let g:mp_open_tag .= '\|\<begintest\>'
" let g:mp_close_tag .= '\|\<endtest\>'
" Expressions starting indented blocks
let g:mp_open_tag = ''
\ . '\<if\>'
\ . '\|\<else\%[if]\>'
\ . '\|\<for\%(\|ever\|suffixes\)\>'
\ . '\|\<begingroup\>'
\ . '\|\<\%(\|var\|primary\|secondary\|tertiary\)def\>'
\ . '\|^\s*\<begin\%(fig\|graph\|glyph\|char\|logochar\)\>'
\ . '\|[([{]'
" Expressions ending indented blocks
let g:mp_close_tag = ''
\ . '\<fi\>'
\ . '\|\<else\%[if]\>'
\ . '\|\<end\%(\|for\|group\|def\|fig\|char\|glyph\|graph\)\>'
\ . '\|[)\]}]'
" Statements that may span multiple lines and are ended by a semicolon. To
" keep this list short, statements that are unlikely to be very long or are
" not very common (e.g., keywords like `interim` or `showtoken`) are not
" included.
"
" The regex for assignments and equations (the last branch) is tricky, because
" it must not match things like `for i :=`, `if a=b`, `def...=`, etc... It is
" not perfect, but it works reasonably well.
let g:mp_statement = ''
\ . '\<\%(\|un\|cut\)draw\>'
\ . '\|\<\%(\|un\)fill\%[draw]\>'
\ . '\|\<draw\%(dbl\)\=arrow\>'
\ . '\|\<clip\>'
\ . '\|\<addto\>'
\ . '\|\<save\>'
\ . '\|\<setbounds\>'
\ . '\|\<message\>'
\ . '\|\<errmessage\>'
\ . '\|\<errhelp\>'
\ . '\|\<fontmapline\>'
\ . '\|\<pickup\>'
\ . '\|\<show\>'
\ . '\|\<special\>'
\ . '\|\<write\>'
\ . '\|\%(^\|;\)\%([^;=]*\%('.g:mp_open_tag.'\)\)\@!.\{-}:\=='
" A line ends with zero or more spaces, possibly followed by a comment.
let s:eol = '\s*\%($\|%\)'
" }}}
" Auxiliary functions {{{
" Returns 1 if (0-based) position immediately preceding `pos` in `line` is
" inside a string or a comment; returns 0 otherwise.
" This is the function that is called more often when indenting, so it is
" critical that it is efficient. The method we use is significantly faster
" than using syntax attributes, and more general (it does not require
" syntax_items). It is also faster than using a single regex matching an even
" number of quotes. It helps that MetaPost strings cannot span more than one
" line and cannot contain escaped quotes.
function! s:CommentOrString(line, pos)
let in_string = 0
let q = stridx(a:line, '"')
let c = stridx(a:line, '%')
while q >= 0 && q < a:pos
if c >= 0 && c < q
if in_string " Find next percent symbol
let c = stridx(a:line, '%', q + 1)
else " Inside comment
return 1
endif
endif
let in_string = 1 - in_string
let q = stridx(a:line, '"', q + 1) " Find next quote
endwhile
return tmp
return in_string || (c >= 0 && c <= a:pos)
endfunction
function! MetaPrevNonblankNoncomment(pos)
" Like prevnonblank() but ignore comment lines
let tmp = prevnonblank(a:pos)
while tmp && getline(tmp) =~ '^\s*%'
let tmp = prevnonblank(tmp-1)
" Find the first non-comment non-blank line before the current line.
function! s:PrevNonBlankNonComment(lnum)
let l:lnum = prevnonblank(a:lnum - 1)
while getline(l:lnum) =~# '^\s*%'
let l:lnum = prevnonblank(l:lnum - 1)
endwhile
return tmp
return l:lnum
endfunction
function! MetaSearchNoncomment(pattern, ...)
" Like search() but ignore commented areas
if a:0
let flags = a:1
elseif &wrapscan
let flags = "w"
else
let flags = "W"
endif
let cl = line(".")
let cc = col(".")
let tmp = search(a:pattern, flags)
while tmp && synIDattr(synID(line("."), col("."), 1), "name") =~
\ 'm[fp]\(Comment\|TeXinsert\|String\)'
let tmp = search(a:pattern, flags)
" Returns true if the last tag appearing in the line is an open tag; returns
" false otherwise.
function! s:LastTagIsOpen(line)
let o = s:LastValidMatchEnd(a:line, g:mp_open_tag, 0)
if o == - 1 | return v:false | endif
return s:LastValidMatchEnd(a:line, g:mp_close_tag, o) < 0
endfunction
" A simple, efficient and quite effective heuristics is used to test whether
" a line should cause the next line to be indented: count the "opening tags"
" (if, for, def, ...) in the line, count the "closing tags" (endif, endfor,
" ...) in the line, and compute the difference. We call the result the
" "weight" of the line. If the weight is positive, then the next line should
" most likely be indented. Note that `else` and `elseif` are both opening and
" closing tags, so they "cancel out" in almost all cases, the only exception
" being a leading `else[if]`, which is counted as an opening tag, but not as
" a closing tag (so that, for instance, a line containing a single `else:`
" will have weight equal to one, not zero). We do not treat a trailing
" `else[if]` in any special way, because lines ending with an open tag are
" dealt with separately before this function is called (see
" GetMetaPostIndentIntern()).
"
" Example:
"
" forsuffixes $=a,b: if x.$ = y.$ : draw else: fill fi
" % This line will be indented because |{forsuffixes,if,else}| > |{else,fi}| (3 > 2)
" endfor
function! s:Weight(line)
let [o, i] = [0, s:ValidMatchEnd(a:line, g:mp_open_tag, 0)]
while i > 0
let o += 1
let i = s:ValidMatchEnd(a:line, g:mp_open_tag, i)
endwhile
if !tmp
call cursor(cl,cc)
let [c, i] = [0, matchend(a:line, '^\s*\<else\%[if]\>')] " Skip a leading else[if]
let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
while i > 0
let c += 1
let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
endwhile
return o - c
endfunction
" Similar to matchend(), but skips strings and comments.
" line: a String
function! s:ValidMatchEnd(line, pat, start)
let i = matchend(a:line, a:pat, a:start)
while i > 0 && s:CommentOrString(a:line, i)
let i = matchend(a:line, a:pat, i)
endwhile
return i
endfunction
" Like s:ValidMatchEnd(), but returns the end position of the last (i.e.,
" rightmost) match.
function! s:LastValidMatchEnd(line, pat, start)
let last_found = -1
let i = matchend(a:line, a:pat, a:start)
while i > 0
if !s:CommentOrString(a:line, i)
let last_found = i
endif
let i = matchend(a:line, a:pat, i)
endwhile
return last_found
endfunction
function! s:DecreaseIndentOnClosingTag(curr_indent)
let cur_text = getline(v:lnum)
if cur_text =~# '^\s*\%('.g:mp_close_tag.'\)'
return max([a:curr_indent - shiftwidth(), 0])
endif
return tmp
return a:curr_indent
endfunction
" }}}
function! GetMetaPostIndent()
" not indent in comment ???
if synIDattr(synID(line("."), col("."), 1), "name") =~
\ 'm[fp]\(Comment\|TeXinsert\|String\)'
" Main function {{{
"
" Note: Every rule of indentation in MetaPost is very subjective. We might get
" creative, but things get murky very soon (there are too many corner cases).
" So, we provide a means for the user to decide what to do when this script
" doesn't get it. We use a simple idea: use '%>', '%<' and '%=' to explicitly
" control indentation. The '<' and '>' symbols may be repeated many times
" (e.g., '%>>' will cause the next line to be indented twice).
"
" By using '%>...', '%<...' and '%=', the indentation the user wants is
" preserved by commands like gg=G, even if it does not follow the rules of
" this script.
"
" Example:
"
" def foo =
" makepen(
" subpath(T-n,t) of r %>
" shifted .5down %>
" --subpath(t,T) of r shifted .5up -- cycle %<<<
" )
" withcolor black
" enddef
"
" The default indentation of the previous example would be:
"
" def foo =
" makepen(
" subpath(T-n,t) of r
" shifted .5down
" --subpath(t,T) of r shifted .5up -- cycle
" )
" withcolor black
" enddef
"
" Personally, I prefer the latter, but anyway...
function! GetMetaPostIndentIntern()
" Do not touch indentation inside verbatimtex/btex.. etex blocks.
if synIDattr(synID(v:lnum, 1, 1), "name") =~# '^mpTeXinsert$\|^tex\|^Delimiter'
return -1
endif
" Some RegExps: {{{1
" end_of_item: all of end by ';'
" + all of end by :endfor, :enddef, :endfig, :endgroup, :fi
" + all of start by :beginfig(num), :begingroup
" + all of start by :for, :if, :else, :elseif and end by ':'
" + all of start by :def, :vardef and end by '='
let end_of_item = '\(' .
\ ';\|' .
\ '\<\(end\(for\|def\|fig\|group\)\|fi\)\>\|' .
\ '\<begin\(group\>\|fig\s*(\s*\d\+\s*)\)\|' .
\ '\<\(for\|if\|else\(if\)\=\)\>.\+:\|' .
\ '\<\(var\)\=def\>.\+=' . '\)'
" }}}
" Save: current position {{{1
let cl = line (".")
let cc = col (".")
let cs = getline(".")
" if it is :beginfig or :endfig use zero indent
if cs =~ '^\s*\(begin\|end\)fig\>'
return 0
endif
" }}}
" Initialise: ind variable {{{1
" search previous item not in current line
let p_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
while p_semicol_l == cl
let p_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
endwhile
" if this is first item in program use zero indent
if !p_semicol_l
return 0
endif
" if this is multiline item, remember first indent
if MetaNextNonblankNoncomment(p_semicol_l+1) < cl
let ind = indent(MetaNextNonblankNoncomment(p_semicol_l+1))
" else --- search pre-previous item for search first line in previous item
else
" search pre-previous item not in current line
let pp_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
while pp_semicol_l == p_semicol_l
let pp_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
endwhile
" if we find pre-previous item, remember indent of previous item
" else --- remember zero
if pp_semicol_l
let ind = indent(MetaNextNonblankNoncomment(line(".")+1))
else
let ind = 0
endif
endif
" }}}
" Increase Indent: {{{1
" if it is an internal/external :for or :if statements {{{2
let pnn_s = getline(MetaPrevNonblankNoncomment(cl-1))
if pnn_s =~ '\<\(for\|if\)\>.\+:\s*\($\|%\)'
let ind = match(pnn_s, '\<\(for\|if\)\>.\+:\s*\($\|%\)') + &sw
" }}}
" if it is a :def, :vardef, :beginfig, :begingroup, :else, :elseif {{{2
elseif pnn_s =~ '^\s*\(' .
\ '\(var\)\=def\|' .
\ 'begin\(group\|fig\s*(\s*\d\+\s*)\)\|' .
\ 'else\(if\)\=' . '\)\>'
let ind = ind + &sw
" }}}
" if it is a broken line {{{2
elseif pnn_s !~ end_of_item.'\s*\($\|%\)'
let ind = ind + (2 * &sw)
endif
" }}}
" }}}
" Decrease Indent: {{{1
" if this is :endfor or :enddef statements {{{2
" this is correct because :def cannot be inside :for
if cs =~ '\<end\(for\|def\)\=\>'
call MetaSearchNoncomment('\<for\>.\+:\s*\($\|%\)' . '\|' .
\ '^\s*\(var\)\=def\>',"bW")
if col(".") > 1
let ind = col(".") - 1
else
let ind = indent(".")
endif
" }}}
" if this is :fi, :else, :elseif statements {{{2
elseif cs =~ '\<\(else\(if\)\=\|fi\)\>'
call MetaSearchNoncomment('\<if\>.\+:\s*\($\|%\)',"bW")
let ind = col(".") - 1
" }}}
" if this is :endgroup statement {{{2
elseif cs =~ '^\s*endgroup\>'
let ind = ind - &sw
endif
" }}}
" }}}
return ind
" This is the reference line relative to which the current line is indented
" (but see below).
let lnum = s:PrevNonBlankNonComment(v:lnum)
" At the start of the file use zero indent.
if lnum == 0
return 0
endif
let prev_text = getline(lnum)
" User-defined overrides take precedence over anything else.
" See above for an example.
let j = match(prev_text, '%[<>=]')
if j > 0
let i = strlen(matchstr(prev_text, '%>\+', j)) - 1
if i > 0
return indent(lnum) + i * shiftwidth()
endif
let i = strlen(matchstr(prev_text, '%<\+', j)) - 1
if i > 0
return max([indent(lnum) - i * shiftwidth(), 0])
endif
if match(prev_text, '%=', j)
return indent(lnum)
endif
endif
" If the reference line ends with an open tag, indent.
"
" Example:
"
" if c:
" 0
" else:
" 1
" fi if c2: % Note that this line has weight equal to zero.
" ... % This line will be indented
if s:LastTagIsOpen(prev_text)
return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
endif
" Lines with a positive weight are unbalanced and should likely be indented.
"
" Example:
"
" def f = enddef for i = 1 upto 5: if x[i] > 0: 1 else: 2 fi
" ... % This line will be indented (because of the unterminated `for`)
if s:Weight(prev_text) > 0
return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
endif
" Unterminated statements cause indentation to kick in.
"
" Example:
"
" draw unitsquare
" withcolor black; % This line is indented because of `draw`.
" x := a + b + c
" + d + e; % This line is indented because of `:=`.
"
let i = s:LastValidMatchEnd(prev_text, g:mp_statement, 0)
if i >= 0 " Does the line contain a statement?
if s:ValidMatchEnd(prev_text, ';', i) < 0 " Is the statement unterminated?
return indent(lnum) + shiftwidth()
else
return s:DecreaseIndentOnClosingTag(indent(lnum))
endif
endif
" Deal with the special case of a statement spanning multiple lines. If the
" current reference line L ends with a semicolon, search backwards for
" another semicolon or a statement keyword. If the latter is found first,
" its line is used as the reference line for indenting the current line
" instead of L.
"
" Example:
"
" if cond:
" draw if a: z0 else: z1 fi
" shifted S
" scaled T; % L
"
" for i = 1 upto 3: % <-- Current line: this gets the same indent as `draw ...`
"
" NOTE: we get here only if L does not contain a statement (among those
" listed in g:mp_statement).
if s:ValidMatchEnd(prev_text, ';'.s:eol, 0) >= 0 " L ends with a semicolon
let stm_lnum = s:PrevNonBlankNonComment(lnum)
while stm_lnum > 0
let prev_text = getline(stm_lnum)
let sc_pos = s:LastValidMatchEnd(prev_text, ';', 0)
let stm_pos = s:ValidMatchEnd(prev_text, g:mp_statement, sc_pos)
if stm_pos > sc_pos
let lnum = stm_lnum
break
elseif sc_pos > stm_pos
break
endif
let stm_lnum = s:PrevNonBlankNonComment(stm_lnum)
endwhile
endif
return s:DecreaseIndentOnClosingTag(indent(lnum))
endfunction
"
" }}}
let &cpo = s:keepcpo
unlet s:keepcpo
+4 -3
View File
@@ -92,11 +92,12 @@ let s:end_skip_expr = s:skip_expr .
\ ' && getline(".") =~ "^\\s*\\<\\(while\\|until\\|for\\):\\@!\\>")'
" Regex that defines continuation lines, not including (, {, or [.
let s:non_bracket_continuation_regex = '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
let s:non_bracket_continuation_regex =
\ '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'
" Regex that defines continuation lines.
let s:continuation_regex =
\ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
\ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'
" Regex that defines continuable keywords
let s:continuable_regex =
@@ -389,7 +390,7 @@ function! s:FindContainingClass()
call setpos('.', saved_position)
return found_lnum
endif
endif
endwhile
call setpos('.', saved_position)
return 0
+3 -1
View File
@@ -1,5 +1,5 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 July 20
" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
@@ -98,6 +98,8 @@ f ֆ
7 .
8 «
9 »
* (
( )
\\ '
| ՞
+3 -1
View File
@@ -1,5 +1,5 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 July 20
" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
@@ -98,6 +98,8 @@ f ֆ
7 .
8 «
9 »
* (
( )
\\ '
| ՞
+102
View File
@@ -0,0 +1,102 @@
" Vim Keymap file for kazakh characters, layout 'jcuken', classical variant
" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Maintainer: Darkhan Kubigenov <darkhanu@gmail.com>
" Last Changed: 2016 Oct 25
" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8
let b:keymap_name = "kk"
loadkeymap
~ ) CYRILLIC CAPITAL LETTER IO
` ( CYRILLIC SMALL LETTER IO
F А CYRILLIC CAPITAL LETTER A
< Б CYRILLIC CAPITAL LETTER BE
D В CYRILLIC CAPITAL LETTER VE
U Г CYRILLIC CAPITAL LETTER GHE
L Д CYRILLIC CAPITAL LETTER DE
T Е CYRILLIC CAPITAL LETTER IE
: Ж CYRILLIC CAPITAL LETTER ZHE
P З CYRILLIC CAPITAL LETTER ZE
B И CYRILLIC CAPITAL LETTER I
Q Й CYRILLIC CAPITAL LETTER SHORT I
R К CYRILLIC CAPITAL LETTER KA
K Л CYRILLIC CAPITAL LETTER EL
V М CYRILLIC CAPITAL LETTER EM
Y Н CYRILLIC CAPITAL LETTER EN
J О CYRILLIC CAPITAL LETTER O
G П CYRILLIC CAPITAL LETTER PE
H Р CYRILLIC CAPITAL LETTER ER
C С CYRILLIC CAPITAL LETTER ES
N Т CYRILLIC CAPITAL LETTER TE
E У CYRILLIC CAPITAL LETTER U
A Ф CYRILLIC CAPITAL LETTER EF
{ Х CYRILLIC CAPITAL LETTER HA
W Ц CYRILLIC CAPITAL LETTER TSE
X Ч CYRILLIC CAPITAL LETTER CHE
I Ш CYRILLIC CAPITAL LETTER SHA
O Щ CYRILLIC CAPITAL LETTER SHCHA
} Ъ CYRILLIC CAPITAL LETTER HARD SIGN
S Ы CYRILLIC CAPITAL LETTER YERU
M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
\" Э CYRILLIC CAPITAL LETTER E
> Ю CYRILLIC CAPITAL LETTER YU
Z Я CYRILLIC CAPITAL LETTER YA
f а CYRILLIC SMALL LETTER A
, б CYRILLIC SMALL LETTER BE
d в CYRILLIC SMALL LETTER VE
u г CYRILLIC SMALL LETTER GHE
l д CYRILLIC SMALL LETTER DE
t е CYRILLIC SMALL LETTER IE
; ж CYRILLIC SMALL LETTER ZHE
p з CYRILLIC SMALL LETTER ZE
b и CYRILLIC SMALL LETTER I
q й CYRILLIC SMALL LETTER SHORT I
r к CYRILLIC SMALL LETTER KA
k л CYRILLIC SMALL LETTER EL
v м CYRILLIC SMALL LETTER EM
y н CYRILLIC SMALL LETTER EN
j о CYRILLIC SMALL LETTER O
g п CYRILLIC SMALL LETTER PE
h р CYRILLIC SMALL LETTER ER
c с CYRILLIC SMALL LETTER ES
n т CYRILLIC SMALL LETTER TE
e у CYRILLIC SMALL LETTER U
a ф CYRILLIC SMALL LETTER EF
[ х CYRILLIC SMALL LETTER HA
w ц CYRILLIC SMALL LETTER TSE
x ч CYRILLIC SMALL LETTER CHE
i ш CYRILLIC SMALL LETTER SHA
o щ CYRILLIC SMALL LETTER SHCHA
] ъ CYRILLIC SMALL LETTER HARD SIGN
s ы CYRILLIC SMALL LETTER YERU
m ь CYRILLIC SMALL LETTER SOFT SIGN
' э CYRILLIC SMALL LETTER E
. ю CYRILLIC SMALL LETTER YU
z я CYRILLIC SMALL LETTER YA
@ Ә CYRILLIC CAPITAL LETTER SCHWA
# І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
$ Ң CYRILLIC CAPITAL LETTER EN WITH DESCENDER
% Ғ CYRILLIC CAPITAL LETTER GHE WITH STROKE
^ ;
& :
* Ү CYRILLIC CAPITAL LETTER STRAIGHT U
( Ұ CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
) Қ CYRILLIC CAPITAL LETTER KA WITH DESCENDER
_ Ө CYRILLIC CAPITAL LETTER BARRED O
+ Һ CYRILLIC CAPITAL LETTER SHHA
1 "
2 ә CYRILLIC SMALL LETTER SCHWA
3 і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
4 ң CYRILLIC SMALL LETTER EN WITH DESCENDER
5 ғ CYRILLIC SMALL LETTER GHE WITH STROKE
6 ,
7 .
8 ү CYRILLIC SMALL LETTER STRAIGHT U
9 ұ CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
0 қ CYRILLIC SMALL LETTER KA WITH DESCENDER
- ө CYRILLIC SMALL LETTER BARRED O
= һ CYRILLIC SMALL LETTER SHHA
+6 -6
View File
@@ -1,7 +1,7 @@
" Menu Translations: Slovenian / Slovensko
" Maintainer: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change: Sat, 17 Jun 2006
" Last Change: 2016 Oct 17
" vim:set foldmethod=marker tabstop=8:
" TODO: add/check all '&'s
@@ -31,7 +31,7 @@ menutrans E&xit<Tab>:qa &Izhod<Tab>:qa
if has("diff")
menutrans Split\ &Diff\ with\.\.\. Primerjaj\ z\ (di&ff)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ z\ (patch)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA
@@ -96,12 +96,12 @@ menutrans Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\. Širina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\. Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme &Barvna\ shema\ \.\.\.
menutrans &Keymap &Keymap
menutrans &Keymap Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\. Pisava\ \.\.\.
" }}} EDIT / UREDI
" {{{ TOOLS / ORODJA
menutrans &Tools &Orodja
menutrans &Tools O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^] &Skoèi\ k\ tej\ znaèki<Tab>g^]
menutrans Jump\ &back<Tab>^T Skoèi\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File Napravi\ datoteke\ z\ znaèkami\ (tag)
@@ -175,7 +175,7 @@ menutrans &Set\ Compiler Nastavi\ &prevajalnik
menutrans Se&T\ Compiler Nastavi\ &prevajalnik " bug in original translation?
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pretvori\ nazaj<Tab>:%!xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}} TOOLS / ORODJA
" {{{ SYNTAX / BARVANJE KODE
@@ -242,7 +242,7 @@ menutrans &About &O\ programu
" {{{ POPUP
menutrans &Undo &Razveljavi
menutrans Cu&t &Izreži
menutrans &Copy &Kopieraj
menutrans &Copy &Kopiraj
menutrans &Paste &Prilepi
menutrans &Delete &Zbriši
menutrans Select\ Blockwise Izbiraj\ po\ blokih
+6 -6
View File
@@ -1,7 +1,7 @@
" Menu Translations: Slovenian / Slovensko
" Maintainer: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change: Mon, 12 Jun 2006 00:00:00 CEST
" Last Change: 2016 Oct 17
" vim:set foldmethod=marker tabstop=8:
" TODO: add/check all '&'s
@@ -31,7 +31,7 @@ menutrans E&xit<Tab>:qa &Izhod<Tab>:qa
if has("diff")
menutrans Split\ &Diff\ with\.\.\. Primerjaj\ z\ (di&ff)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ z\ (patch)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA
@@ -96,12 +96,12 @@ menutrans Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\. ©irina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\. Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme &Barvna\ shema\ \.\.\.
menutrans &Keymap &Keymap
menutrans &Keymap Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\. Pisava\ \.\.\.
" }}} EDIT / UREDI
" {{{ TOOLS / ORODJA
menutrans &Tools &Orodja
menutrans &Tools O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^] &Skoèi\ k\ tej\ znaèki<Tab>g^]
menutrans Jump\ &back<Tab>^T Skoèi\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File Napravi\ datoteke\ z\ znaèkami\ (tag)
@@ -175,7 +175,7 @@ menutrans &Set\ Compiler Nastavi\ &prevajalnik
menutrans Se&T\ Compiler Nastavi\ &prevajalnik " bug in original translation?
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pretvori\ nazaj<Tab>:%!xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}} TOOLS / ORODJA
" {{{ SYNTAX / BARVANJE KODE
@@ -242,7 +242,7 @@ menutrans &About &O\ programu
" {{{ POPUP
menutrans &Undo &Razveljavi
menutrans Cu&t &Izre¾i
menutrans &Copy &Kopieraj
menutrans &Copy &Kopiraj
menutrans &Paste &Prilepi
menutrans &Delete &Zbri¹i
menutrans Select\ Blockwise Izbiraj\ po\ blokih
+6 -6
View File
@@ -1,7 +1,7 @@
" Menu Translations: Slovenian / Slovensko
" Maintainer: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change: Sat, 17 Jun 2006
" Last Change: 2016 Oct 17
" vim:set foldmethod=marker tabstop=8:
" TODO: add/check all '&'s
@@ -31,7 +31,7 @@ menutrans E&xit<Tab>:qa &Izhod<Tab>:qa
if has("diff")
menutrans Split\ &Diff\ with\.\.\. Primerjaj\ z\ (di&ff)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ z\ (patch)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA
@@ -96,12 +96,12 @@ menutrans Soft\ &Tabstop Širina\ &tabulatorja
menutrans Te&xt\ Width\.\.\. Širina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\. Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme &Barvna\ shema\ \.\.\.
menutrans &Keymap &Keymap
menutrans &Keymap Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\. Pisava\ \.\.\.
" }}} EDIT / UREDI
" {{{ TOOLS / ORODJA
menutrans &Tools &Orodja
menutrans &Tools O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^] &Skoči\ k\ tej\ znački<Tab>g^]
menutrans Jump\ &back<Tab>^T Skoči\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File Napravi\ datoteke\ z\ značkami\ (tag)
@@ -175,7 +175,7 @@ menutrans &Set\ Compiler Nastavi\ &prevajalnik
menutrans Se&T\ Compiler Nastavi\ &prevajalnik " bug in original translation?
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pretvori\ nazaj<Tab>:%!xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}} TOOLS / ORODJA
" {{{ SYNTAX / BARVANJE KODE
@@ -242,7 +242,7 @@ menutrans &About &O\ programu
" {{{ POPUP
menutrans &Undo &Razveljavi
menutrans Cu&t &Izreži
menutrans &Copy &Kopieraj
menutrans &Copy &Kopiraj
menutrans &Paste &Prilepi
menutrans &Delete &Zbriši
menutrans Select\ Blockwise Izbiraj\ po\ blokih
+38 -5
View File
@@ -80,6 +80,9 @@ if has("gui_macvim")
an <silent> 9998.350 Window.Select\ Previous\ Tab :tabprevious<CR>
an 9998.360 Window.-SEP2- <Nop>
an <silent> 9998.370 Window.Bring\ All\ To\ Front <Nop>
an <silent> 9998.380 Window.Stay\ in\ Front <Nop>
an <silent> 9998.390 Window.Stay\ in\ Back <Nop>
an <silent> 9998.400 Window.Stay\ Level\ Normal <Nop>
endif
" Help menu
@@ -389,19 +392,46 @@ endfun
" get NL separated string with file names
let s:n = globpath(&runtimepath, "colors/*.vim")
let s:n .= globpath(&packpath, "pack/*/{opt,start}/*/colors/*.vim")
" split at NL, Ignore case for VMS and windows, sort on name
let s:names = sort(map(split(s:n, "\n"), 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
" define all the submenu entries
let s:idx = 100
let s:cs_idx = 100
for s:name in s:names
exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
let s:idx = s:idx + 10
exe "an 20.450." . s:cs_idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
let s:cs_idx = s:cs_idx + 10
endfor
unlet s:name s:names s:n s:idx
exe "an 20.450." . s:cs_idx . ' &Edit.C&olor\ Scheme.-SEP- <Nop>'
let s:cs_idx = s:cs_idx + 10
exe "an <silent> 20.450." . s:cs_idx '&Edit.C&olor\ Scheme.Find\ More\ Color\ Schemes' ":call <SID>Colorschemes()<CR>"
let s:cs_idx = s:cs_idx + 10
unlet s:name s:names s:n
let s:undo_colorschemes = ['aun &Edit.C&olor\ Scheme.Find\ More\ Color\ Schemes']
func! s:Colorschemes()
for cmd in s:undo_colorschemes
exe "silent! " . cmd
endfor
let s:undo_colorschemes = []
let s = globpath(&packpath, "pack/*/{opt,start}/*/colors/*.vim")
let names = sort(map(split(s, "\n"), 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
let n = s:cs_idx
for name in names
let menuname = '&Edit.C&olor\ Scheme.' . name
exe 'an 20.450.' . n . ' ' . menuname . " :colors " . name . "<CR>"
let s:undo_colorschemes += ['aun ' . menuname]
let n += 10
endfor
if empty(names)
echomsg "Could not find other color schemes"
elseif len(names) == 1
echomsg "Found color scheme " . names[0]
else
echomsg "Found " . len(names) . " more color schemes"
endif
endfun
" Setup the Edit.Keymap submenu
if has("keymap")
@@ -1228,6 +1258,9 @@ if has("gui_macvim")
macm Window.Select\ Next\ Tab key=<D-}>
macm Window.Select\ Previous\ Tab key=<D-{>
macm Window.Bring\ All\ To\ Front action=arrangeInFront:
macm Window.Stay\ in\ Front action=stayInFront:
macm Window.Stay\ in\ Back action=stayInBack:
macm Window.Stay\ Level\ Normal action=stayLevelNormal:
macm Help.MacVim\ Help key=<D-?>
macm Help.MacVim\ Website action=openWebsite:
+13 -1
View File
@@ -940,7 +940,7 @@ if has("folding")
call append("$", "foldmarker\tmarkers used when 'foldmethod' is \"marker\"")
call append("$", "\t(local to window)")
call <SID>OptionL("fmr")
call append("$", "foldnestmax\tmaximum fold depth for when 'foldmethod is \"indent\" or \"syntax\"")
call append("$", "foldnestmax\tmaximum fold depth for when 'foldmethod' is \"indent\" or \"syntax\"")
call append("$", "\t(local to window)")
call <SID>OptionL("fdn")
endif
@@ -1341,14 +1341,26 @@ if exists("&perldll")
call append("$", "perldll\tname of the Perl dynamic library")
call <SID>OptionG("perldll", &perldll)
endif
if has('pythonx')
call append("$", "pyxversion\twhether to use Python 2 or 3")
call append("$", " \tset pyx=" . &wd)
endif
if exists("&pythondll")
call append("$", "pythondll\tname of the Python 2 dynamic library")
call <SID>OptionG("pythondll", &pythondll)
endif
if exists("&pythonhome")
call append("$", "pythonhome\tname of the Python 2 home directory")
call <SID>OptionG("pythonhome", &pythonhome)
endif
if exists("&pythonthreedll")
call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
call <SID>OptionG("pythonthreedll", &pythonthreedll)
endif
if exists("&pythonthreehome")
call append("$", "pythonthreehome\tname of the Python 3 home directory")
call <SID>OptionG("pythonthreehome", &pythonthreehome)
endif
if exists("&rubydll")
call append("$", "rubydll\tname of the Ruby dynamic library")
call <SID>OptionG("rubydll", &rubydll)
+10 -2
View File
@@ -1,6 +1,6 @@
" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2010 Mar 10
" Last Change: 2016 Oct 30
" Exit quickly when:
" - this plugin was already loaded
@@ -20,25 +20,33 @@ augroup gzip
"
" Set binary mode before reading the file.
" Use "gzip -d", gunzip isn't always available.
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz setlocal bin
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz,*.zst setlocal bin
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
autocmd BufReadPost,FileReadPost *.lz call gzip#read("lzip -d")
autocmd BufReadPost,FileReadPost *.zst call gzip#read("zstd -d --rm")
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
autocmd BufWritePost,FileWritePost *.lz call gzip#write("lzip")
autocmd BufWritePost,FileWritePost *.zst call gzip#write("zstd --rm")
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
autocmd FileAppendPre *.Z call gzip#appre("uncompress")
autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
autocmd FileAppendPre *.xz call gzip#appre("xz -d")
autocmd FileAppendPre *.lz call gzip#appre("lzip -d")
autocmd FileAppendPre *.zst call gzip#appre("zstd -d --rm")
autocmd FileAppendPost *.gz call gzip#write("gzip")
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
autocmd FileAppendPost *.Z call gzip#write("compress -f")
autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
autocmd FileAppendPost *.xz call gzip#write("xz -z")
autocmd FileAppendPost *.lz call gzip#write("lzip")
autocmd FileAppendPost *.zst call gzip#write("zstd --rm")
augroup END
+107 -81
View File
@@ -1,8 +1,10 @@
" Vim syntax file
" Language: AutoHotkey script file
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-10-29
" Maintainer: Michael Wong
" https://github.com/mmikeww/autohotkey.vim
" Latest Revision: 2017-01-23
" Previous Maintainers: SungHyun Nam <goweol@gmail.com>
" Nikolai Weibull <now@bitwi.se>
if exists("b:current_syntax")
finish
@@ -17,68 +19,11 @@ syn keyword autohotkeyTodo
\ contained
\ TODO FIXME XXX NOTE
syn cluster autohotkeyCommentGroup
\ contains=
\ autohotkeyTodo,
\ @Spell
syn match autohotkeyComment
\ display
\ contains=@autohotkeyCommentGroup
\ '`\@<!;.*$'
syn region autohotkeyComment
\ contains=@autohotkeyCommentGroup
\ matchgroup=autohotkeyCommentStart
\ start='/\*'
\ end='\*/'
" only these chars are valid as escape sequences: ,%`;nrbtvaf
" https://autohotkey.com/docs/commands/_EscapeChar.htm
syn match autohotkeyEscape
\ display
\ '`.'
syn match autohotkeyHotkey
\ contains=autohotkeyKey,
\ autohotkeyHotkeyDelimiter
\ display
\ '^.\{-}::'
syn match autohotkeyKey
\ contained
\ display
\ '^.\{-}'
syn match autohotkeyDelimiter
\ contained
\ display
\ '::'
syn match autohotkeyHotstringDefinition
\ contains=autohotkeyHotstring,
\ autohotkeyHotstringDelimiter
\ display
\ '^:\%(B0\|C1\|K\d\+\|P\d\+\|S[IPE]\|Z\d\=\|[*?COR]\)*:.\{-}::'
syn match autohotkeyHotstring
\ contained
\ display
\ '.\{-}'
syn match autohotkeyHotstringDelimiter
\ contained
\ display
\ '::'
syn match autohotkeyHotstringDelimiter
\ contains=autohotkeyHotstringOptions
\ contained
\ display
\ ':\%(B0\|C1\|K\d\+\|P\d\+\|S[IPE]\|Z\d\=\|[*?COR]\):'
syn match autohotkeyHotstringOptions
\ contained
\ display
\ '\%(B0\|C1\|K\d\+\|P\d\+\|S[IPE]\|Z\d\=\|[*?COR]\)'
\ '`[,%`;nrbtvaf]'
syn region autohotkeyString
\ display
@@ -88,39 +33,46 @@ syn region autohotkeyString
\ end=+"+
\ contains=autohotkeyEscape
syn region autohotkeyVariable
syn match autohotkeyVariable
\ display
\ oneline
\ contains=autohotkeyBuiltinVariable
\ matchgroup=autohotkeyVariableDelimiter
\ start="%"
\ end="%"
\ keepend
\ '%\S\{-}%'
syn keyword autohotkeyBuiltinVariable
\ A_Space A_Tab
\ A_WorkingDir A_ScriptDir A_ScriptName A_ScriptFullPath A_LineNumber
\ A_LineFile A_AhkVersion A_AhkPAth A_IsCompiled A_ExitReason
\ A_YYYY A_MM A_DD A_MMMM A_MMM A_DDDD A_DDD A_WDay A_YWeek A_Hour A_Min
\ A_WorkingDir A_ScriptDir A_ScriptName A_ScriptFullPath A_ScriptHwnd A_LineNumber
\ A_LineFile A_ThisFunc A_ThisLabel A_AhkVersion A_AhkPath A_IsUnicode A_IsCompiled A_ExitReason
\ A_YYYY A_MM A_DD A_MMMM A_MMM A_DDDD A_DDD A_WDay A_YDay A_YWeek A_Hour A_Min
\ A_Mon A_Year A_MDay A_NumBatchLines
\ A_Sec A_MSec A_Now A_NowUTC A_TickCount
\ A_IsSuspended A_BatchLines A_TitleMatchMode A_TitleMatchModeSpeed
\ A_DetectHiddenWindows A_DetectHiddenText A_AutoTrim A_STringCaseSense
\ A_FormatInteger A_FormatFloat A_KeyDelay A_WinDelay A_ControlDelay
\ A_MouseDelay A_DefaultMouseSpeed A_IconHidden A_IconTip A_IconFile
\ A_IsSuspended A_IsPaused A_IsCritical A_BatchLines A_TitleMatchMode A_TitleMatchModeSpeed
\ A_DetectHiddenWindows A_DetectHiddenText A_AutoTrim A_StringCaseSense
\ A_FileEncoding A_FormatInteger A_FormatFloat A_KeyDelay A_WinDelay A_ControlDelay
\ A_SendMode A_SendLevel A_StoreCapsLockMode A_KeyDelay A_KeyDelayDuration
\ A_KeyDelayPlay A_KeyDelayPlayDuration A_MouseDelayPlay
\ A_MouseDelay A_DefaultMouseSpeed A_RegView A_IconHidden A_IconTip A_IconFile
\ A_CoordModeToolTip A_CoordModePixel A_CoordModeMouse A_CoordModeCaret A_CoordModeMenu
\ A_IconNumber
\ A_TimeIdle A_TimeIdlePhysical
\ A_TimeIdle A_TimeIdlePhysical A_DefaultGui A_DefaultListView A_DefaultTreeView
\ A_Gui A_GuiControl A_GuiWidth A_GuiHeight A_GuiX A_GuiY A_GuiEvent
\ A_GuiControlEvent A_EventInfo
\ A_ThisMenuItem A_ThisMenu A_ThisMenuItemPos A_ThisHotkey A_PriorHotkey
\ A_TimeSinceThisHotkey A_TimeSincePriorHotkey A_EndChar
\ A_PriorKey A_TimeSinceThisHotkey A_TimeSincePriorHotkey A_EndChar
\ ComSpec A_Temp A_OSType A_OSVersion A_Language A_ComputerName A_UserName
\ A_Is64BitOS A_PtrSize
\ A_WinDir A_ProgramFiles ProgramFiles A_AppData A_AppDataCommon A_Desktop
\ A_DesktopCommon A_StartMenu A_StartMenuCommon A_Programs
\ A_ProgramsCommon A_Startup A_StartupCommon A_MyDocuments A_IsAdmin
\ A_ScreenWidth A_ScreenHeight A_IPAddress1 A_IPAddress2 A_IPAddress3
\ A_ScreenWidth A_ScreenHeight A_ScreenDPI A_IPAddress1 A_IPAddress2 A_IPAddress3
\ A_IPAddress4
\ A_Cursor A_CaretX A_CaretY Clipboard ClipboardAll ErrorLevel A_LastError
\ A_Index A_LoopFileName A_LoopRegName A_LoopReadLine A_LoopField
\ A_LoopFileExt A_LoopFileFullPath A_LoopFileLongPath A_LoopFileShortPath
\ A_LoopFileShortName A_LoopFileDir A_LoopFileTimeModified A_LoopFileTimeCreated
\ A_LoopFileTimeAccessed A_LoopFileAttrib A_LoopFileSize A_LoopFileSizeKB A_LoopFileSizeMB
\ A_LoopRegType A_LoopRegKey A_LoopRegSubKey A_LoopRegTimeModified
syn match autohotkeyBuiltinVariable
\ contained
@@ -130,7 +82,7 @@ syn match autohotkeyBuiltinVariable
syn keyword autohotkeyCommand
\ ClipWait EnvGet EnvSet EnvUpdate
\ Drive DriveGet DriveSpaceFree FileAppend FileCopy FileCopyDir
\ FileCreateDir FileCreateShortcut FileDelete FileGetAttrib
\ FileCreateDir FileCreateShortcut FileDelete FileGetAttrib FileEncoding
\ FileGetShortcut FileGetSize FileGetTime FileGetVersion FileInstall
\ FileMove FileMoveDir FileReadLine FileRead FileRecycle FileRecycleEmpty
\ FileRemoveDir FileSelectFolder FileSelectFile FileSetAttrib FileSetTime
@@ -153,7 +105,7 @@ syn keyword autohotkeyCommand
\ SoundSetWaveVolume
\ FormatTime IfInString IfNotInString Sort StringCaseSense StringGetPos
\ StringLeft StringRight StringLower StringUpper StringMid StringReplace
\ StringSplit StringTrimLeft StringTrimRight
\ StringSplit StringTrimLeft StringTrimRight StringLen
\ Control ControlClick ControlFocus ControlGet ControlGetFocus
\ ControlGetPos ControlGetText ControlMove ControlSend ControlSendRaw
\ ControlSetText Menu PostMessage SendMessage SetControlDelay
@@ -164,12 +116,16 @@ syn keyword autohotkeyCommand
\ WinGetText WinGetTitle WinHide WinKill WinMaximize WinMinimize
\ WinMinimizeAll WinMinimizeAllUndo WinMove WinRestore WinSet
\ WinSetTitle WinShow WinWait WinWaitActive WinWaitNotActive WinWaitClose
\ SetCapsLockState SetNumLockState SetScrollLockState
syn keyword autohotkeyFunction
\ InStr RegExMatch RegExReplace StrLen SubStr Asc Chr
\ DllCall VarSetCapacity WinActive WinExist IsLabel OnMessage
\ Abs Ceil Exp Floor Log Ln Mod Round Sqrt Sin Cos Tan ASin ACos ATan
\ FileExist GetKeyState
\ FileExist GetKeyState NumGet NumPut StrGet StrPut RegisterCallback
\ IsFunc Trim LTrim RTrim IsObject Object Array FileOpen
\ ComObjActive ComObjArray ComObjConnect ComObjCreate ComObjGet
\ ComObjError ComObjFlags ComObjQuery ComObjType ComObjValue ComObject
syn keyword autohotkeyStatement
\ Break Continue Exit ExitApp Gosub Goto OnExit Pause Return
@@ -180,7 +136,9 @@ syn keyword autohotkeyRepeat
syn keyword autohotkeyConditional
\ IfExist IfNotExist If IfEqual IfLess IfGreater Else
\ IfWinExist IfWinNotExist
\ IfWinExist IfWinNotExist IfWinActive IfWinNotActive
\ IfNotEqual IfLessOrEqual IfGreaterOrEqual
\ while until for in
syn match autohotkeyPreProcStart
\ nextgroup=
@@ -200,6 +158,7 @@ syn keyword autohotkeyPreProc
\ HotkeyInterval HotKeyModifierTimeout
\ Hotstring
\ IfWinActive IfWinNotActive IfWinExist IfWinNotExist
\ If IfTimeout
\ MaxHotkeysPerInterval MaxThreads MaxThreadsBuffer MaxThreadsPerHotkey
\ UseHook InstallKeybdHook InstallMouseHook
\ KeyHistory
@@ -213,6 +172,10 @@ syn keyword autohotkeyPreProc
\ MaxMem
\ NoEnv
\ Persistent
\ LTrim
\ InputLevel
\ MenuMaskKey
\ Warn
syn keyword autohotkeyMatchClass
\ ahk_group ahk_class ahk_id ahk_pid
@@ -243,11 +206,74 @@ syn match autohotkeyFloat
syn keyword autohotkeyType
\ local
\ global
\ static
\ byref
syn keyword autohotkeyBoolean
\ true
\ false
syn match autohotkeyHotkey
\ contains=autohotkeyKey,
\ autohotkeyHotkeyDelimiter
\ display
\ '^.\{-}::'
syn match autohotkeyKey
\ contained
\ display
\ '^.\{-}'
syn match autohotkeyDelimiter
\ contained
\ display
\ '::'
" allowable hotstring options:
" https://autohotkey.com/docs/Hotstrings.htm
syn match autohotkeyHotstringDefinition
\ contains=autohotkeyHotstring,
\ autohotkeyHotstringDelimiter
\ display
\ '^\s*:\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:.\{-}::'
syn match autohotkeyHotstring
\ contained
\ display
\ '.\{-}'
syn match autohotkeyHotstringDelimiter
\ contained
\ display
\ '::'
syn match autohotkeyHotstringDelimiter
\ contains=autohotkeyHotstringOptions
\ contained
\ display
\ ':\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:'
syn match autohotkeyHotstringOptions
\ contained
\ display
\ '\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*'
syn cluster autohotkeyCommentGroup
\ contains=
\ autohotkeyTodo,
\ @Spell
syn match autohotkeyComment
\ display
\ contains=@autohotkeyCommentGroup
\ '\%(^;\|\s\+;\).*$'
syn region autohotkeyComment
\ contains=@autohotkeyCommentGroup
\ matchgroup=autohotkeyCommentStart
\ start='^\s*/\*'
\ end='^\s*\*/'
" TODO: Shouldn't we look for g:, b:, variables before defaulting to
" something?
if exists("g:autohotkey_syntax_sync_minlines")
+1 -3
View File
@@ -2,14 +2,12 @@
" Language: AVR Assembler (AVRA)
" AVRA Home: http://avra.sourceforge.net/index.html
" AVRA Version: 1.3.0
" Last Update: 2016 Oct 7
" Maintainer: Marius Ghita <mhitza@gmail.com>
let s:cpo_save = &cpo
set cpo&vim
setlocal iskeyword=a-z,A-Z,48-57,.,_
" 'isident' is a global option, better not set it
" setlocal isident=a-z,A-Z,48-57,.,_
syn case ignore
syn keyword avraRegister r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14
+16 -16
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Jul 07
" Last Change: 2016 Nov 18
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -358,11 +358,11 @@ if !exists("c_no_c99") " ISO C99
endif
" Accept %: for # (C99)
syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
syn match cPreConditMatch display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
syn region cPreCondit start="^\s*\zs\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
syn match cPreConditMatch display "^\s*\zs\(%:\|#\)\s*\(else\|endif\)\>"
if !exists("c_no_if0")
syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
syn region cCppOutWrapper start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
syn region cCppOutWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
if !exists("c_no_if0_fold")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
@@ -370,7 +370,7 @@ if !exists("c_no_if0")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
endif
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
syn region cCppInWrapper start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
syn region cCppInWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
if !exists("c_no_if0_fold")
syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
@@ -383,11 +383,11 @@ if !exists("c_no_if0")
endif
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match cIncluded display contained "<[^>]*>"
syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
syn match cInclude display "^\s*\zs\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
"syn match cLineSkip "\\$"
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock
syn region cDefine start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
" Highlight User Labels
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
@@ -396,21 +396,21 @@ if s:ft ==# 'c' || exists("cpp_no_cpp11")
endif
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
syn cluster cLabelGroup contains=cUserLabel
syn match cUserCont display "^\s*\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup
if s:ft ==# 'cpp'
syn match cUserCont display "^\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else
syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display "^\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
endif
syn match cUserLabel display "\I\i*" contained
" Avoid recognizing most bitfields as labels
syn match cBitField display "^\s*\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
syn match cBitField display ";\s*\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
syn match cBitField display "^\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
syn match cBitField display ";\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
if exists("c_minlines")
let b:c_minlines = c_minlines
+74 -41
View File
@@ -1,7 +1,8 @@
" Vim syntax file
" Language: ConTeXt typesetting engine
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-08-10
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 16
if exists("b:current_syntax")
finish
@@ -13,65 +14,93 @@ unlet b:current_syntax
let s:cpo_save = &cpo
set cpo&vim
if !exists('g:context_include')
let g:context_include = ['mp', 'javascript', 'xml']
" Dictionary of (filetype, group) pairs to highlight between \startGROUP \stopGROUP.
let s:context_include = get(b:, 'context_include', get(g:, 'context_include', {'xml': 'XML'}))
" For backward compatibility (g:context_include used to be a List)
if type(s:context_include) ==# type([])
let g:context_metapost = (index(s:context_include, 'mp') != -1)
let s:context_include = filter(
\ {'c': 'C', 'javascript': 'JS', 'ruby': 'Ruby', 'xml': 'XML'},
\ { k,_ -> index(s:context_include, k) != -1 }
\ )
endif
syn iskeyword @,48-57,a-z,A-Z,192-255
syn spell toplevel
syn match contextBlockDelim display '\\\%(start\|stop\)\a\+'
\ contains=@NoSpell
" ConTeXt options, i.e., [...] blocks
syn region contextOptions matchgroup=contextDelimiter start='\[' end=']\|\ze\\stop' skip='\\\[\|\\\]' contains=ALLBUT,contextBeginEndLua,@Spell
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\type\z(\A\)' end='\z1'
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\type\={' end='}'
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\type\=<<' end='>>'
" Highlight braces
syn match contextDelimiter '[{}]'
" Comments
syn match contextComment '\\\@<!\%(\\\\\)*\zs%.*$' display contains=initexTodo
syn match contextComment '^\s*%[CDM].*$' display contains=initexTodo
syn match contextBlockDelim '\\\%(start\|stop\)\a\+' contains=@NoSpell
syn region contextEscaped matchgroup=contextPreProc start='\\type\%(\s*\|\n\)*\z([^A-Za-z%]\)' end='\z1'
syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s\|\n\)*{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s*\|\n\)*<<' end='>>'
syn region contextEscaped matchgroup=contextPreProc
\ start='\\start\z(\a*\%(typing\|typen\)\)'
\ end='\\stop\z1' contains=plaintexComment keepend
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\\h\+Type{' end='}'
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\Typed\h\+{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\\h\+Type\%(\s\|\n\)*{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\Typed\h\+\%(\s\|\n\)*{' end='}'
syn match contextBuiltin display contains=@NoSpell
\ '\\\%(unprotect\|protect\|unexpanded\)'
\ '\\\%(unprotect\|protect\|unexpanded\)\>'
syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\)\>'
\ contains=@NoSpell
if index(g:context_include, 'mp') != -1
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
let b:mp_metafun_macros = 1 " Highlight MetaFun keywords
syn include @mpTop syntax/mp.vim
unlet b:current_syntax
syn region contextMPGraphic transparent matchgroup=contextBlockDelim
\ start='\\start\z(\a*MPgraphic\|MP\%(page\|inclusions\|run\)\).*'
syn region contextMPGraphic matchgroup=contextBlockDelim
\ start='\\start\z(MP\%(clip\|code\|definitions\|drawing\|environment\|extensions\|inclusions\|initializations\|page\|\)\)\>.*$'
\ end='\\stop\z1'
\ contains=@mpTop
\ contains=@mpTop,@NoSpell
syn region contextMPGraphic matchgroup=contextBlockDelim
\ start='\\start\z(\%(\%[re]usable\|use\|unique\|static\)MPgraphic\|staticMPfigure\|uniqueMPpagegraphic\)\>.*$'
\ end='\\stop\z1'
\ contains=@mpTop,@NoSpell
endif
" TODO: also need to implement this for \\typeC or something along those
" lines.
function! s:include_syntax(name, group)
if index(g:context_include, a:name) != -1
execute 'syn include @' . a:name . 'Top' 'syntax/' . a:name . '.vim'
unlet b:current_syntax
execute 'syn region context' . a:group . 'Code'
\ 'transparent matchgroup=contextBlockDelim'
\ 'start=+\\start' . a:group . '+ end=+\\stop' . a:group . '+'
\ 'contains=@' . a:name . 'Top'
endif
endfunction
if get(b:, 'context_lua', get(g:, 'context_lua', 1))
syn include @luaTop syntax/lua.vim
unlet b:current_syntax
call s:include_syntax('c', 'C')
call s:include_syntax('ruby', 'Ruby')
call s:include_syntax('javascript', 'JS')
call s:include_syntax('xml', 'XML')
syn region contextLuaCode matchgroup=contextBlockDelim
\ start='\\startluacode\>'
\ end='\\stopluacode\>' keepend
\ contains=@luaTop,@NoSpell
syn match contextSectioning '\\chapter\>' contains=@NoSpell
syn match contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
syn match contextDirectLua "\\\%(directlua\|ctxlua\)\>\%(\s*%.*$\)\="
\ nextgroup=contextBeginEndLua skipwhite skipempty
\ contains=initexComment
syn region contextBeginEndLua matchgroup=contextSpecial
\ start="{" end="}" skip="\\[{}]"
\ contained contains=@luaTop,@NoSpell
endif
for synname in keys(s:context_include)
execute 'syn include @' . synname . 'Top' 'syntax/' . synname . '.vim'
unlet b:current_syntax
execute 'syn region context' . s:context_include[synname] . 'Code'
\ 'matchgroup=contextBlockDelim'
\ 'start=+\\start' . s:context_include[synname] . '+'
\ 'end=+\\stop' . s:context_include[synname] . '+'
\ 'contains=@' . synname . 'Top,@NoSpell'
endfor
syn match contextSectioning '\\\%(start\|stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>'
\ contains=@NoSpell
syn match contextSpecial '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
\ contains=@NoSpell
@@ -92,15 +121,19 @@ syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
syn match contextFont '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
\ contains=@NoSpell
hi def link contextOptions Typedef
hi def link contextComment Comment
hi def link contextBlockDelim Keyword
hi def link contextBuiltin Keyword
hi def link contextDelimiter Delimiter
hi def link contextEscaped String
hi def link contextPreProc PreProc
hi def link contextSectioning PreProc
hi def link contextSpecial Special
hi def link contextType Type
hi def link contextStyle contextType
hi def link contextFont contextType
hi def link contextDirectLua Keyword
let b:current_syntax = "context"
+7 -3
View File
@@ -2,7 +2,7 @@
" Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2016 Jul 07
" Last Change: 2016 Oct 28
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -31,7 +31,7 @@ syn keyword cppConstant __cplusplus
" C++ 11 extensions
if !exists("cpp_no_cpp11")
syn keyword cppModifier override final
syn keyword cppType nullptr_t
syn keyword cppType nullptr_t auto
syn keyword cppExceptions noexcept
syn keyword cppStorageClass constexpr decltype thread_local
syn keyword cppConstant nullptr
@@ -46,7 +46,11 @@ endif
" C++ 14 extensions
if !exists("cpp_no_cpp14")
syn match cppNumber display "\<0b[01]\+\(u\=l\{0,2}\|ll\=u\)\>"
syn case ignore
syn match cppNumber display "\<0b[01]\('\=[01]\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
syn match cppNumber display "\<[1-9]\('\=\d\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
syn match cppNumber display "\<0x\x\('\=\x\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
syn case match
endif
" The minimum and maximum operators in GNU C++
+3 -2
View File
@@ -6,7 +6,8 @@
" Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim
" Last Change: 2015 Apr.17
" Last Change: 2017 Jan 14
" cssClassName updated by Ryuichi Hayashida Jan 2016
" quit when a syntax file was already loaded
if !exists("main_syntax")
@@ -56,7 +57,7 @@ syn match cssSelectorOp2 "[~|^$*]\?=" contained
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
" .class and #id
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" contains=cssClassNameDot
syn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
syn match cssClassNameDot contained '\.'
try
+2 -2
View File
@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2016 Aug 30
" Last Change: 2016 Nov 12
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
" Standard syntax initialization
@@ -21,7 +21,7 @@ let binNMU='binary-only=yes'
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"'
exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.binNMU.'\)"'
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion contained "(.\{-})"
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
+1 -1
View File
@@ -38,7 +38,7 @@ unlet s:kernels s:archs s:pairs
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|javascript|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolPackageType contained "u\?deb"
syn match debcontrolVariable contained "\${.\{-}}"
syn match debcontrolDmUpload contained "\cyes"
+3 -3
View File
@@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2016 Aug 30
" Last Change: 2016 Nov 12
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
" Standard syntax initialization
@@ -25,7 +25,7 @@ let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
\
\ 'precise', 'trusty', 'xenial', 'yakkety', 'devel'
\ 'precise', 'trusty', 'xenial', 'yakkety', 'zesty', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
@@ -39,7 +39,7 @@ let s:unsupported = [
let &cpo=s:cpo
" Match uri's
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
syn match debsourcesUri +\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:supported, '\|'). '\)\([-[:alnum:]_./]*\)+'
exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:unsupported, '\|') .'\)\([-[:alnum:]_./]*\)+'
+6 -4
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.99
" Last Change: 2016 Sep. 23
" Version: 100
" Last Change: 2016 Oct. 29
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-syntax from Vim
" Credits:
@@ -397,6 +397,7 @@ if exists("fortran_fold")
syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
else
@@ -406,6 +407,7 @@ if exists("fortran_fold")
syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\s*[!#].*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
endif
@@ -415,12 +417,12 @@ if exists("fortran_fold")
syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(.\+)\s*then\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
else
syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\s*[!#].*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(\(.\|&\s*\n\)\+)\(\s\|&\s*\n\)*then\>" skip="^\s*[!#].*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
endif
endif
+27 -5
View File
@@ -1,9 +1,10 @@
" Vim syntax file
" Language: HTML
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/html.vim
" Last Change: 2015 Jan 07
" included patch from David Felix
" Language: HTML
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
" Last Change: 2017 Jan 21
" included patch from Jorge Maldonado Ventura
" Please check :help html.vim for some comments and a description of the options
@@ -53,6 +54,14 @@ syn keyword htmlTagName contained abbr acronym bdo button col label
syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
" new html 5 tags
syn keyword htmlTagName contained article aside audio bdi canvas data
syn keyword htmlTagName contained datalist details embed figcaption figure
syn keyword htmlTagName contained footer header hgroup keygen main mark
syn keyword htmlTagName contained menuitem meter nav output picture
syn keyword htmlTagName contained progress rb rp rt rtc ruby section
syn keyword htmlTagName contained slot source template time track video wbr
" legal arg names
syn keyword htmlArg contained action
syn keyword htmlArg contained align alink alt archive background bgcolor
@@ -87,6 +96,19 @@ syn keyword htmlArg contained multiple nohref nowrap object profile readonly
syn keyword htmlArg contained rules scheme scope span standby style
syn keyword htmlArg contained summary tabindex valuetype version
" html 5 arg names
syn keyword htmlArg contained allowfullscreen async autocomplete autofocus
syn keyword htmlArg contained autoplay challenge contenteditable contextmenu
syn keyword htmlArg contained controls crossorigin default dirname download
syn keyword htmlArg contained draggable dropzone form formaction formenctype
syn keyword htmlArg contained formmethod formnovalidate formtarget hidden
syn keyword htmlArg contained high icon inputmode keytype kind list loop low
syn keyword htmlArg contained max min minlength muted nonce novalidate open
syn keyword htmlArg contained optimum pattern placeholder poster preload
syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate
syn keyword htmlArg contained typemustmatch
" special characters
syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
+7 -3
View File
@@ -1,11 +1,13 @@
" Vim syntax file
" Language: Matlab
" Maintainer: Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
" Maintainer: Alex Burka <vim@alexburka.com>
" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
" Original author: Mario Eusebio
" Last Change: Wed Jan 13 11:12:34 CET 2010
" sinh added to matlab implicit commands
" Last Change: Mon Jan 23 2017
" added support for cell mode
" Change History:
" - now highlights cell-mode separator comments
" - 'global' and 'persistent' keyword are now recognized
" quit when a syntax file was already loaded
@@ -60,6 +62,7 @@ syn match matlabComment "%.*$" contains=matlabTodo,matlabTab
" MT_ADDON - correctly highlights words after '...' as comments
syn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab
syn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
syn match matlabCellComment "^%%.*$"
syn keyword matlabOperator break zeros default margin round ones rand
syn keyword matlabOperator ceil floor size clear zeros eye mean std cov
@@ -96,6 +99,7 @@ hi def link matlabOO Statement
hi def link matlabSemicolon SpecialChar
hi def link matlabComment Comment
hi def link matlabMultilineComment Comment
hi def link matlabCellComment Todo
hi def link matlabScope Type
hi def link matlabArithmeticOperator matlabOperator
+241 -130
View File
@@ -1,184 +1,295 @@
" Vim syntax file
" Language: Metafont
" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: April 25, 2001
" Language: METAFONT
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: 2016 Oct 1
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'
syn iskeyword @,_
" METAFONT 'primitives' as defined in chapter 25 of 'The METAFONTbook'
" Page 210: 'boolean expressions'
syn keyword mfBoolExp true false known unknown odd charexists not and or
syn keyword mfBoolExp and charexists false known not odd or true unknown
" Page 210: 'numeric expression'
syn keyword mfNumExp normaldeviate length ASCII oct hex angle turningnumber
syn keyword mfNumExp totalweight directiontime xpart ypart xxpart xypart
syn keyword mfNumExp yxpart yypart sqrt sind cosd mlog mexp floor
syn keyword mfNumExp uniformdeviate
syn keyword mfNumExp ASCII angle cosd directiontime floor hex length
syn keyword mfNumExp mexp mlog normaldeviate oct sind sqrt totalweight
syn keyword mfNumExp turningnumber uniformdeviate xpart xxpart xypart
syn keyword mfNumExp ypart yxpart yypart
" Page 211: 'internal quantities'
syn keyword mfInternal tracingtitles tracingequations tracingcapsules
syn keyword mfInternal tracingchoices tracingspecs tracingpens
syn keyword mfInternal tracingcommands tracingrestores tracingmacros
syn keyword mfInternal tracingedges tracingoutput tracingonline tracingstats
syn keyword mfInternal pausing showstopping fontmaking proofing
syn keyword mfInternal turningcheck warningcheck smoothing autorounding
syn keyword mfInternal granularity fillin year month day time
syn keyword mfInternal charcode charext charwd charht chardp charic
syn keyword mfInternal chardx chardy designsize hppp vppp xoffset yoffset
syn keyword mfInternal boundarychar
syn keyword mfInternal autorounding boundarychar charcode chardp chardx
syn keyword mfInternal chardy charext charht charic charwd day designsize
syn keyword mfInternal fillin fontmaking granularity hppp jobname month
syn keyword mfInternal pausing proofing showstopping smoothing time
syn keyword mfInternal tracingcapsules tracingchoices tracingcommands
syn keyword mfInternal tracingedges tracingequations tracingmacros
syn keyword mfInternal tracingonline tracingoutput tracingpens
syn keyword mfInternal tracingrestores tracingspecs tracingstats
syn keyword mfInternal tracingtitles turningcheck vppp warningcheck
syn keyword mfInternal xoffset year yoffset
" Page 212: 'pair expressions'
syn keyword mfPairExp point of precontrol postcontrol penoffset rotated
syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
syn keyword mfPairExp zscaled
syn keyword mfPairExp of penoffset point postcontrol precontrol rotated
syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
syn keyword mfPairExp zscaled
" Page 213: 'path expressions'
syn keyword mfPathExp makepath reverse subpath curl tension atleast
syn keyword mfPathExp controls cycle
syn keyword mfPathExp atleast controls curl cycle makepath reverse
syn keyword mfPathExp subpath tension
" Page 214: 'pen expressions'
syn keyword mfPenExp nullpen pencircle makepen
syn keyword mfPenExp makepen nullpen pencircle
" Page 214: 'picutre expressions'
syn keyword mfPicExp nullpicture
" Page 214: 'picture expressions'
syn keyword mfPicExp nullpicture
" Page 214: 'string expressions'
syn keyword mfStringExp jobname readstring str char decimal substring
syn keyword mfStringExp char decimal readstring str substring
" Page 217: 'commands and statements'
syn keyword mfCommand end dump save interim newinternal randomseed let
syn keyword mfCommand delimiters outer everyjob show showvariable showtoken
syn keyword mfCommand showdependencies showstats message errmessage errhelp
syn keyword mfCommand batchmode nonstopmode scrollmode errorstopmode
syn keyword mfCommand addto also contour doublepath withpen withweight cull
syn keyword mfCommand keeping dropping display inwindow openwindow at from to
syn keyword mfCommand shipout special numspecial
syn keyword mfCommand addto also at batchmode contour cull delimiters
syn keyword mfCommand display doublepath dropping dump end errhelp
syn keyword mfCommand errmessage errorstopmode everyjob from interim
syn keyword mfCommand inwindow keeping let message newinternal
syn keyword mfCommand nonstopmode numspecial openwindow outer randomseed
syn keyword mfCommand save scrollmode shipout show showdependencies
syn keyword mfCommand showstats showtoken showvariable special to withpen
syn keyword mfCommand withweight
" Page 56: 'types'
syn keyword mfType boolean numeric pair path pen picture string transform
syn keyword mfType boolean numeric pair path pen picture string
syn keyword mfType transform
" Page 155: 'grouping'
syn keyword mfStatement begingroup endgroup
syn keyword mfStatement begingroup endgroup
" Page 165: 'definitions'
syn keyword mfDefinition enddef def expr suffix text primary secondary
syn keyword mfDefinition tertiary vardef primarydef secondarydef tertiarydef
syn keyword mfDefinition def enddef expr primary primarydef secondary
syn keyword mfDefinition secondarydef suffix tertiary tertiarydef text
syn keyword mfDefinition vardef
" Page 169: 'conditions and loops'
syn keyword mfCondition if fi else elseif endfor for forsuffixes forever
syn keyword mfCondition step until exitif
syn keyword mfCondition else elseif endfor exitif fi for forever
syn keyword mfCondition forsuffixes if step until
" Other primitives listed in the index
syn keyword mfPrimitive charlist endinput expandafter extensible
syn keyword mfPrimitive fontdimen headerbyte inner input intersectiontimes
syn keyword mfPrimitive kern ligtable quote scantokens skipto
syn keyword mfPrimitive charlist endinput expandafter extensible fontdimen
syn keyword mfPrimitive headerbyte inner input intersectiontimes kern
syn keyword mfPrimitive ligtable quote scantokens skipto
" Implicit suffix parameters
syn match mfSuffixParam "@#\|#@\|@"
" These are just tags, but given their special status, we
" highlight them as variables
syn keyword mfVariable x y
" Keywords defined by plain.mf (defined on pp.262-278)
if !exists("plain_mf_macros")
let plain_mf_macros = 1 " Set this to '0' if your source gets too colourful
" metapost.vim does so to turn off Metafont macros
if get(g:, "plain_mf_macros", 1)
syn keyword mfDef addto_currentpicture beginchar capsule_def
syn keyword mfDef change_width clear_pen_memory clearit clearpen
syn keyword mfDef clearxy culldraw cullit cutdraw
syn keyword mfDef define_blacker_pixels define_corrected_pixels
syn keyword mfDef define_good_x_pixels define_good_y_pixels
syn keyword mfDef define_horizontal_corrected_pixels define_pixels
syn keyword mfDef define_whole_blacker_pixels define_whole_pixels
syn keyword mfDef define_whole_vertical_blacker_pixels
syn keyword mfDef define_whole_vertical_pixels downto draw drawdot
syn keyword mfDef endchar erase exitunless fill filldraw fix_units
syn keyword mfDef flex font_coding_scheme font_extra_space
syn keyword mfDef font_identifier font_normal_shrink
syn keyword mfDef font_normal_space font_normal_stretch font_quad
syn keyword mfDef font_size font_slant font_x_height gfcorners gobble
syn keyword mfDef hide imagerules interact italcorr killtext
syn keyword mfDef loggingall lowres_fix makebox makegrid maketicks
syn keyword mfDef mode_def mode_setup nodisplays notransforms numtok
syn keyword mfDef openit penrazor pensquare penstroke pickup
syn keyword mfDef proofoffset proofrule range reflectedabout
syn keyword mfDef rotatedaround screenchars screenrule screenstrokes
syn keyword mfDef shipit showit smode stop superellipse takepower
syn keyword mfDef tracingall tracingnone undraw undrawdot unfill
syn keyword mfDef unfilldraw upto z
syn match mfDef "???"
syn keyword mfVardef bot byte ceiling counterclockwise cutoff decr dir
syn keyword mfVardef direction directionpoint grayfont hround incr
syn keyword mfVardef interpath inverse labelfont labels lft magstep
" Note: nodot is not a vardef, it is used as in makelabel.lft.nodot("5",z5)
" (METAFONT only)
syn keyword mfVardef makelabel max min nodot penlabels penpos
syn keyword mfVardef proofrulethickness round rt savepen slantfont solve
syn keyword mfVardef tensepath titlefont top unitvector vround whatever
syn match mpVardef "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
syn keyword mfPrimaryDef div dotprod gobbled mod
syn keyword mfSecondaryDef intersectionpoint
syn keyword mfTertiaryDef softjoin thru
syn keyword mfNewInternal blacker currentwindow displaying eps epsilon
syn keyword mfNewInternal infinity join_radius number_of_modes o_correction
syn keyword mfNewInternal pen_bot pen_lft pen_rt pen_top pixels_per_inch
syn keyword mfNewInternal screen_cols screen_rows tolerance
" Predefined constants
syn keyword mfConstant base_name base_version blankpicture ditto down
syn keyword mfConstant fullcircle halfcircle identity left lowres origin
syn keyword mfConstant penspeck proof quartercircle right rulepen smoke
syn keyword mfConstant unitpixel unitsquare up
" Other predefined variables
syn keyword mfVariable aspect_ratio currentpen extra_beginchar
syn keyword mfVariable extra_endchar currentpen_path currentpicture
syn keyword mfVariable currenttransform d extra_setup h localfont mag mode
syn keyword mfVariable mode_name w
" let statements:
syn keyword mfnumExp abs
syn keyword mfPairExp rotatedabout
syn keyword mfCommand bye relax
endif
if plain_mf_macros
syn keyword mfMacro abs addto_currentpicture aspect_ratio base_name
syn keyword mfMacro base_version beginchar blacker blankpicture bot bye byte
syn keyword mfMacro capsule_def ceiling change_width clear_pen_memory clearit
syn keyword mfMacro clearpen clearxy counterclockwise culldraw cullit
syn keyword mfMacro currentpen currentpen_path currentpicture
syn keyword mfMacro currenttransform currentwindow cutdraw cutoff d decr
syn keyword mfMacro define_blacker_pixels define_corrected_pixels
syn keyword mfMacro define_good_x_pixels define_good_y_pixels
syn keyword mfMacro define_horizontal_corrected_pixels define_pixels
syn keyword mfMacro define_whole_blacker_pixels define_whole_pixels
syn keyword mfMacro define_whole_vertical_blacker_pixels
syn keyword mfMacro define_whole_vertical_pixels dir direction directionpoint
syn keyword mfMacro displaying ditto div dotprod down downto draw drawdot
syn keyword mfMacro endchar eps epsilon extra_beginchar extra_endchar
syn keyword mfMacro extra_setup erase exitunless fill filldraw fix_units flex
syn keyword mfMacro font_coding_scheme font_extra_space font_identifier
syn keyword mfMacro font_normal_shrink font_normal_space font_normal_stretch
syn keyword mfMacro font_quad font_setup font_size font_slant font_x_height
syn keyword mfMacro fullcircle generate gfcorners gobble gobbled grayfont h
syn keyword mfMacro halfcircle hide hround identity image_rules incr infinity
syn keyword mfMacro interact interpath intersectionpoint inverse italcorr
syn keyword mfMacro join_radius killtext labelfont labels left lft localfont
syn keyword mfMacro loggingall lowres lowres_fix mag magstep makebox makegrid
syn keyword mfMacro makelabel maketicks max min mod mode mode_def mode_name
syn keyword mfMacro mode_setup nodisplays notransforms number_of_modes numtok
syn keyword mfMacro o_correction openit origin pen_bot pen_lft pen_rt pen_top
syn keyword mfMacro penlabels penpos penrazor penspeck pensquare penstroke
syn keyword mfMacro pickup pixels_per_inch proof proofoffset proofrule
syn keyword mfMacro proofrulethickness quartercircle range reflectedabout
syn keyword mfMacro relax right rotatedabout rotatedaround round rt rulepen
syn keyword mfMacro savepen screenchars screen_rows screen_cols screenrule
syn keyword mfMacro screenstrokes shipit showit slantfont smode smoke softjoin
syn keyword mfMacro solve stop superellipse takepower tensepath titlefont
syn keyword mfMacro tolerance top tracingall tracingnone undraw undrawdot
syn keyword mfMacro unfill unfilldraw unitpixel unitsquare unitvector up upto
syn keyword mfMacro vround w whatever
" By default, METAFONT loads modes.mf, too
if get(g:, "plain_mf_modes", 1)
syn keyword mfConstant APSSixMed AgfaFourZeroZero AgfaThreeFourZeroZero
syn keyword mfConstant AtariNineFive AtariNineSix AtariSLMEightZeroFour
syn keyword mfConstant AtariSMOneTwoFour CItohEightFiveOneZero
syn keyword mfConstant CItohThreeOneZero CanonBJCSixZeroZero CanonCX
syn keyword mfConstant CanonEX CanonLBPLX CanonLBPTen CanonSX ChelgraphIBX
syn keyword mfConstant CompugraphicEightSixZeroZero
syn keyword mfConstant CompugraphicNineSixZeroZero DD DEClarge DECsmall
syn keyword mfConstant DataDiscNew EightThree EpsonAction
syn keyword mfConstant EpsonLQFiveZeroZeroLo EpsonLQFiveZeroZeroMed
syn keyword mfConstant EpsonMXFX EpsonSQEightSevenZero EpsonStylusPro
syn keyword mfConstant EpsonStylusProHigh EpsonStylusProLow
syn keyword mfConstant EpsonStylusProMed FourFour GThreefax HPDeskJet
syn keyword mfConstant HPLaserJetIIISi IBMFourTwoFiveZero IBMFourTwoOneSix
syn keyword mfConstant IBMFourTwoThreeZero IBMFourZeroOneNine
syn keyword mfConstant IBMFourZeroThreeNine IBMFourZeroTwoNine
syn keyword mfConstant IBMProPrinter IBMSixOneFiveFour IBMSixSixSevenZero
syn keyword mfConstant IBMThreeEightOneTwo IBMThreeEightTwoZero
syn keyword mfConstant IBMThreeOneNineThree IBMThreeOneSevenNine
syn keyword mfConstant IBMUlfHolleberg LASevenFive LNOthreR LNOthree
syn keyword mfConstant LNZeroOne LNZeroThree LPSFourZero LPSTwoZero
syn keyword mfConstant LexmarkFourZeroThreeNine LexmarkOptraR
syn keyword mfConstant LexmarkOptraS LinotypeLThreeThreeZero
syn keyword mfConstant LinotypeOneZeroZero LinotypeOneZeroZeroLo
syn keyword mfConstant LinotypeThreeZeroZeroHi MacTrueSize NeXTprinter
syn keyword mfConstant NeXTscreen NecTwoZeroOne Newgen NineOne
syn keyword mfConstant OCESixSevenFiveZeroPS OneTwoZero OneZeroZero
syn keyword mfConstant PrintwareSevenTwoZeroIQ Prism QMSOneSevenTwoFive
syn keyword mfConstant QMSOneSevenZeroZero QMSTwoFourTwoFive RicohA
syn keyword mfConstant RicohFortyEighty RicohFourZeroEightZero RicohLP
syn keyword mfConstant SparcPrinter StarNLOneZero VAXstation VTSix
syn keyword mfConstant VarityperFiveZeroSixZeroW
syn keyword mfConstant VarityperFourThreeZeroZeroHi
syn keyword mfConstant VarityperFourThreeZeroZeroLo
syn keyword mfConstant VarityperFourTwoZeroZero VarityperSixZeroZero
syn keyword mfConstant XeroxDocutech XeroxEightSevenNineZero
syn keyword mfConstant XeroxFourZeroFiveZero XeroxNineSevenZeroZero
syn keyword mfConstant XeroxPhaserSixTwoZeroZeroDP XeroxThreeSevenZeroZero
syn keyword mfConstant Xerox_world agfafzz agfatfzz amiga aps apssixhi
syn keyword mfConstant aselect atariezf atarinf atarins atariotf bitgraph
syn keyword mfConstant bjtenex bjtzzex bjtzzl bjtzzs boise canonbjc
syn keyword mfConstant canonex canonlbp cg cgl cgnszz citohtoz corona crs
syn keyword mfConstant cthreeten cx datadisc declarge decsmall deskjet
syn keyword mfConstant docutech dover dp dpdfezzz eighthre elvira epscszz
syn keyword mfConstant epsdraft epsdrft epsdrftl epsfast epsfastl epshi
syn keyword mfConstant epslo epsmed epsmedl epson epsonact epsonfx epsonl
syn keyword mfConstant epsonlo epsonlol epsonlq epsonsq epstylus epstylwr
syn keyword mfConstant epstyplo epstypmd epstypml epstypro epswlo epswlol
syn keyword mfConstant esphi fourfour gpx gtfax gtfaxhi gtfaxl gtfaxlo
syn keyword mfConstant gtfaxlol help hifax highfax hplaser hprugged ibm_a
syn keyword mfConstant ibmd ibmega ibmegal ibmfzon ibmfztn ibmpp ibmppl
syn keyword mfConstant ibmsoff ibmteot ibmtetz ibmtont ibmtosn ibmtosnl
syn keyword mfConstant ibmvga ibx imagen imagewriter itoh itohl itohtoz
syn keyword mfConstant itohtozl iw jetiiisi kyocera laserjet laserjetfive
syn keyword mfConstant laserjetfivemp laserjetfour laserjetfourthousand
syn keyword mfConstant laserjetfourzerozerozero laserjethi laserjetlo
syn keyword mfConstant laserjettwoonezerozero
syn keyword mfConstant laserjettwoonezerozerofastres lasermaster
syn keyword mfConstant laserwriter lasf lexmarkr lexmarks lexmarku
syn keyword mfConstant linohalf linohi linolo linolttz linoone linosuper
syn keyword mfConstant linothree linothreelo linotzzh ljfive ljfivemp
syn keyword mfConstant ljfour ljfzzz ljfzzzfr ljlo ljtozz ljtozzfr lmaster
syn keyword mfConstant lnotr lnzo lps lpstz lqhires lqlores lqmed lqmedl
syn keyword mfConstant lqmedres lview lviewl lwpro macmag mactrue modes_mf
syn keyword mfConstant ncd nec nechi neclm nectzo newdd newddl nexthi
syn keyword mfConstant nextscreen nextscrn nineone nullmode ocessfz
syn keyword mfConstant okidata okidatal okifourten okifte okihi onetz
syn keyword mfConstant onezz pcprevw pcscreen phaser phaserfs phasertf
syn keyword mfConstant phasertfl phasertl pixpt printware prntware
syn keyword mfConstant proprinter qms qmsesz qmsostf qmsoszz qmstftf ricoh
syn keyword mfConstant ricoha ricohlp ricohsp sherpa sparcptr starnlt
syn keyword mfConstant starnltl styletwo stylewr stylewri stylewriter sun
syn keyword mfConstant supre swtwo toshiba ultre varityper vs vtftzz
syn keyword mfConstant vtftzzhi vtftzzlo vtfzszw vtszz xpstzz xpstzzl
syn keyword mfConstant xrxesnz xrxfzfz xrxnszz xrxtszz
syn keyword mfDef BCPL_string coding_scheme font_face_byte
syn keyword mfDef font_family landscape
syn keyword mfDef mode_extra_info mode_help mode_param
syn keyword mfNewInternal blacker_min
endif
" Some other basic macro names, e.g., from cmbase, logo, etc.
if !exists("other_mf_macros")
let other_mf_macros = 1 " Set this to '0' if your code gets too colourful
" metapost.vim does so to turn off Metafont macros
endif
if other_mf_macros
syn keyword mfMacro beginlogochar
if get(g:, "other_mf_macros", 1)
syn keyword mfDef beginlogochar
syn keyword mfDef font_setup
syn keyword mfPrimitive generate
endif
" Numeric tokens
syn match mfNumeric "[-]\=\d\+"
syn match mfNumeric "[-]\=\.\d\+"
syn match mfNumeric "[-]\=\d\+\.\d\+"
syn match mfNumeric "[-]\=\d\+"
syn match mfNumeric "[-]\=\.\d\+"
syn match mfNumeric "[-]\=\d\+\.\d\+"
" Metafont lengths
syn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"
syn match mfLength "\<[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
syn match mfLength "\<[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
syn match mfLength "\<[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
" Metafont coordinates and points
syn match mfCoord "\<[xy]\d\+\>"
syn match mfPoint "\<z\d\+\>"
" METAFONT lengths
syn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"
syn match mfLength "[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
syn match mfLength "[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
syn match mfLength "[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
" String constants
syn region mfString start=+"+ end=+"+
syn match mfOpenString /"[^"]*/
syn region mfString oneline keepend start=+"+ end=+"+
" Comments:
syn match mfComment "%.*$"
syn keyword mfTodoComment contained TODO FIXME XXX DEBUG NOTE
syn match mfComment "%.*$" contains=mfTodoComment,@Spell
" synchronizing
syn sync maxlines=50
" Define the default highlighting
" Only when an item doesn't have highlighting yet
hi def link mfBoolExp Statement
hi def link mfNumExp Statement
hi def link mfInternal Identifier
hi def link mfPairExp Statement
hi def link mfPathExp Statement
hi def link mfPenExp Statement
hi def link mfPicExp Statement
hi def link mfStringExp Statement
hi def link mfCommand Statement
hi def link mfType Type
hi def link mfStatement Statement
hi def link mfDefinition Statement
hi def link mfCondition Conditional
hi def link mfPrimitive Statement
hi def link mfMacro Macro
hi def link mfCoord Identifier
hi def link mfPoint Identifier
hi def link mfNumeric Number
hi def link mfLength Number
hi def link mfComment Comment
hi def link mfString String
hi def link mfBoolExp Statement
hi def link mfNumExp Statement
hi def link mfPairExp Statement
hi def link mfPathExp Statement
hi def link mfPenExp Statement
hi def link mfPicExp Statement
hi def link mfStringExp Statement
hi def link mfInternal Identifier
hi def link mfCommand Statement
hi def link mfType Type
hi def link mfStatement Statement
hi def link mfDefinition Statement
hi def link mfCondition Conditional
hi def link mfPrimitive Statement
hi def link mfDef Function
hi def link mfVardef mfDef
hi def link mfPrimaryDef mfDef
hi def link mfSecondaryDef mfDef
hi def link mfTertiaryDef mfDef
hi def link mfCoord Identifier
hi def link mfPoint Identifier
hi def link mfNumeric Number
hi def link mfLength Number
hi def link mfComment Comment
hi def link mfString String
hi def link mfOpenString Todo
hi def link mfSuffixParam Label
hi def link mfNewInternal mfInternal
hi def link mfVariable Identifier
hi def link mfConstant Constant
hi def link mfTodoComment Todo
let b:current_syntax = "mf"
" vim: ts=8
" vim:sw=2
+744 -90
View File
@@ -1,115 +1,769 @@
" Vim syntax file
" Language: MetaPost
" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: April 30, 2001
" Language: MetaPost
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: 2016 Oct 14
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
let other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither
let s:cpo_sav = &cpo
set cpo&vim
" Read the Metafont syntax to start with
if exists("g:plain_mf_macros")
let s:plain_mf_macros = g:plain_mf_macros
endif
if exists("g:plain_mf_modes")
let s:plain_mf_modes = g:plain_mf_modes
endif
if exists("g:other_mf_macros")
let s:other_mf_macros = g:other_mf_macros
endif
let g:plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
let g:plain_mf_modes = 0 " No METAFONT modes
let g:other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither
" Read the METAFONT syntax to start with
runtime! syntax/mf.vim
unlet b:current_syntax " Necessary for syn include below
" MetaPost has TeX inserts for typeset labels
" verbatimtex, btex, and etex will be treated as keywords
syn match mpTeXbegin "\(verbatimtex\|btex\)"
syn match mpTeXend "etex"
syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 contains=mpTeXbegin,mpTeXend keepend
" Restore the value of existing global variables
if exists("s:plain_mf_macros")
let g:plain_mf_macros = s:plain_mf_macros
else
unlet g:plain_mf_macros
endif
if exists("s:plain_mf_modes")
let g:plain_mf_modes = s:plain_mf_modes
else
unlet g:plain_mf_modes
endif
if exists("s:other_mf_macros")
let g:other_mf_macros = s:other_mf_macros
else
unlet g:other_mf_macros
endif
" MetaPost primitives not found in Metafont
syn keyword mpInternal bluepart clip color dashed fontsize greenpart infont
syn keyword mpInternal linecap linejoin llcorner lrcorner miterlimit mpxbreak
syn keyword mpInternal prologues redpart setbounds tracinglostchars
syn keyword mpInternal truecorners ulcorner urcorner withcolor
" Use TeX highlighting inside verbatimtex/btex... etex
syn include @MPTeX syntax/tex.vim
unlet b:current_syntax
" These are defined as keywords rather than using matchgroup
" in order to make them available to syntaxcomplete.
syn keyword mpTeXdelim btex etex verbatimtex contained
syn region mpTeXinsert
\ start=/\<verbatimtex\>\|\<btex\>/rs=e+1
\ end=/\<etex\>/re=s-1 keepend
\ contains=@MPTeX,mpTeXdelim
" Metafont primitives not found in MetaPost
syn keyword notDefined autorounding chardx chardy fillin granularity hppp
syn keyword notDefined proofing smoothing tracingedges tracingpens
syn keyword notDefined turningcheck vppp xoffset yoffset
" iskeyword must be set after the syn include above, because tex.vim sets `syn
" iskeyword`. Note that keywords do not contain numbers (numbers are
" subscripts)
syntax iskeyword @,_
" MetaPost primitives not found in METAFONT
syn keyword mpBoolExp bounded clipped filled stroked textual arclength
syn keyword mpNumExp arctime blackpart bluepart colormodel cyanpart
syn keyword mpNumExp fontsize greenpart greypart magentapart redpart
syn keyword mpPairExp yellowpart llcorner lrcorner ulcorner urcorner
" envelope is seemingly undocumented, but it exists since mpost 1.003.
" The syntax is: envelope <polygonal pen> of <path primary>. For example,
" path p;
" p := envelope pensquare of (up--left);
" (Thanks to Daniel H. Luecking for the example!)
syn keyword mpPathExp envelope pathpart
syn keyword mpPenExp penpart
syn keyword mpPicExp dashpart glyph infont
syn keyword mpStringExp fontpart readfrom textpart
syn keyword mpType cmykcolor color rgbcolor
" Other MetaPost primitives listed in the manual
syn keyword mpPrimitive mpxbreak within
" Internal quantities not found in METAFONT
" (Table 6 in MetaPost: A User's Manual)
syn keyword mpInternal defaultcolormodel hour minute linecap linejoin
syn keyword mpInternal miterlimit mpprocset mpversion numberprecision
syn keyword mpInternal numbersystem outputfilename outputformat
syn keyword mpInternal outputformatoptions outputtemplate prologues
syn keyword mpInternal restoreclipcolor tracinglostchars troffmode
syn keyword mpInternal truecorners
" List of commands not found in METAFONT (from MetaPost: A User's Manual)
syn keyword mpCommand clip closefrom dashed filenametemplate fontmapfile
syn keyword mpCommand fontmapline setbounds withcmykcolor withcolor
syn keyword mpCommand withgreyscale withoutcolor withpostscript
syn keyword mpCommand withprescript withrgbcolor write
" METAFONT internal variables not found in MetaPost
syn keyword notDefined autorounding chardx chardy fillin granularity
syn keyword notDefined proofing smoothing tracingedges tracingpens
syn keyword notDefined turningcheck xoffset yoffset
" Suffix defined only in METAFONT:
syn keyword notDefined nodot
" Other not implemented primitives (see MetaPost: A User's Manual, §C.1)
syn keyword notDefined cull display openwindow numspecial totalweight
syn keyword notDefined withweight
" Keywords defined by plain.mp
if !exists("plain_mp_macros")
let plain_mp_macros = 1 " Set this to '0' if your source gets too colourful
endif
if plain_mp_macros
syn keyword mpMacro ahangle ahlength background bbox bboxmargin beginfig
syn keyword mpMacro beveled black blue buildcycle butt center cutafter
syn keyword mpMacro cutbefore cuttings dashpattern defaultfont defaultpen
syn keyword mpMacro defaultscale dotlabel dotlabels drawarrow drawdblarrow
syn keyword mpMacro drawoptions endfig evenly extra_beginfig extra_endfig
syn keyword mpMacro green label labeloffset mitered red rounded squared
syn keyword mpMacro thelabel white base_name base_version
syn keyword mpMacro upto downto exitunless relax gobble gobbled
syn keyword mpMacro interact loggingall tracingall tracingnone
syn keyword mpMacro eps epsilon infinity right left up down origin
syn keyword mpMacro quartercircle halfcircle fullcircle unitsquare identity
syn keyword mpMacro blankpicture withdots ditto EOF pensquare penrazor
syn keyword mpMacro penspeck whatever abs round ceiling byte dir unitvector
syn keyword mpMacro inverse counterclockwise tensepath mod div dotprod
syn keyword mpMacro takepower direction directionpoint intersectionpoint
syn keyword mpMacro softjoin incr decr reflectedabout rotatedaround
syn keyword mpMacro rotatedabout min max flex superellipse interpath
syn keyword mpMacro magstep currentpen currentpen_path currentpicture
syn keyword mpMacro fill draw filldraw drawdot unfill undraw unfilldraw
syn keyword mpMacro undrawdot erase cutdraw image pickup numeric_pickup
syn keyword mpMacro pen_lft pen_rt pen_top pen_bot savepen clearpen
syn keyword mpMacro clear_pen_memory lft rt top bot ulft urt llft lrt
syn keyword mpMacro penpos penstroke arrowhead makelabel labels penlabel
syn keyword mpMacro range numtok thru clearxy clearit clearpen pickup
syn keyword mpMacro shipit bye hide stop solve
if get(g:, "plain_mp_macros", 1) || get(g:, "mp_metafun_macros", 0)
syn keyword mpDef beginfig clear_pen_memory clearit clearpen clearpen
syn keyword mpDef clearxy colorpart cutdraw downto draw drawarrow
syn keyword mpDef drawdblarrow drawdot drawoptions endfig erase
syn keyword mpDef exitunless fill filldraw flex gobble hide interact
syn keyword mpDef label loggingall makelabel numtok penstroke pickup
syn keyword mpDef range reflectedabout rotatedaround shipit
syn keyword mpDef stop superellipse takepower tracingall tracingnone
syn keyword mpDef undraw undrawdot unfill unfilldraw upto
syn match mpDef "???"
syn keyword mpVardef arrowhead bbox bot buildcycle byte ceiling center
syn keyword mpVardef counterclockwise decr dir direction directionpoint
syn keyword mpVardef dotlabel dotlabels image incr interpath inverse
syn keyword mpVardef labels lft magstep max min penlabels penpos round
syn keyword mpVardef rt savepen solve tensepath thelabel top unitvector
syn keyword mpVardef whatever z
syn keyword mpPrimaryDef div dotprod gobbled mod
syn keyword mpSecondaryDef intersectionpoint
syn keyword mpTertiaryDef cutafter cutbefore softjoin thru
syn keyword mpNewInternal ahangle ahlength bboxmargin beveled butt defaultpen
syn keyword mpNewInternal defaultscale dotlabeldiam eps epsilon infinity
syn keyword mpNewInternal join_radius labeloffset mitered pen_bot pen_lft
syn keyword mpNewInternal pen_rt pen_top rounded squared tolerance
" Predefined constants
syn keyword mpConstant EOF background base_name base_version black
syn keyword mpConstant blankpicture blue ditto down evenly fullcircle
syn keyword mpConstant green halfcircle identity left origin penrazor
syn keyword mpConstant penspeck pensquare quartercircle red right
syn keyword mpConstant unitsquare up white withdots
" Other predefined variables
syn keyword mpVariable currentpen currentpen_path currentpicture cuttings
syn keyword mpVariable defaultfont extra_beginfig extra_endfig
syn match mpVariable /\<\%(laboff\|labxf\|labyf\)\>/
syn match mpVariable /\<\%(laboff\|labxf\|labyf\)\.\%(lft\|rt\|bot\|top\|ulft\|urt\|llft\|lrt\)\>/
" let statements:
syn keyword mpnumExp abs
syn keyword mpDef rotatedabout
syn keyword mpCommand bye relax
" on and off are not technically keywords, but it is nice to highlight them
" inside dashpattern().
syn keyword mpOnOff off on contained
syn keyword mpDash dashpattern contained
syn region mpDashPattern
\ start="dashpattern\s*"
\ end=")"he=e-1
\ contains=mfNumeric,mfLength,mpOnOff,mpDash
endif
" Keywords defined by mfplain.mp
if !exists("mfplain_mp_macros")
let mfplain_mp_macros = 0 " Set this to '1' to include these macro names
endif
if mfplain_mp_macros
syn keyword mpMacro beginchar blacker capsule_def change_width
syn keyword mpMacro define_blacker_pixels define_corrected_pixels
syn keyword mpMacro define_good_x_pixels define_good_y_pixels
syn keyword mpMacro define_horizontal_corrected_pixels
syn keyword mpMacro define_pixels define_whole_blacker_pixels
syn keyword mpMacro define_whole_vertical_blacker_pixels
syn keyword mpMacro define_whole_vertical_pixels endchar
syn keyword mpMacro extra_beginchar extra_endchar extra_setup
syn keyword mpMacro font_coding_scheme font_extra_space font_identifier
syn keyword mpMacro font_normal_shrink font_normal_space
syn keyword mpMacro font_normal_stretch font_quad font_size
syn keyword mpMacro font_slant font_x_height italcorr labelfont
syn keyword mpMacro makebox makegrid maketicks mode_def mode_setup
syn keyword mpMacro o_correction proofrule proofrulethickness rulepen smode
if get(g:, "mfplain_mp_macros", 0)
syn keyword mpDef beginchar capsule_def change_width
syn keyword mpDef define_blacker_pixels define_corrected_pixels
syn keyword mpDef define_good_x_pixels define_good_y_pixels
syn keyword mpDef define_horizontal_corrected_pixels define_pixels
syn keyword mpDef define_whole_blacker_pixels define_whole_pixels
syn keyword mpDef define_whole_vertical_blacker_pixels
syn keyword mpDef define_whole_vertical_pixels endchar
syn keyword mpDef font_coding_scheme font_extra_space font_identifier
syn keyword mpDef font_normal_shrink font_normal_space
syn keyword mpDef font_normal_stretch font_quad font_size font_slant
syn keyword mpDef font_x_height italcorr labelfont lowres_fix makebox
syn keyword mpDef makegrid maketicks mode_def mode_setup proofrule
syn keyword mpDef smode
syn keyword mpVardef hround proofrulethickness vround
syn keyword mpNewInternal blacker o_correction
syn keyword mpVariable extra_beginchar extra_endchar extra_setup rulepen
" plus some no-ops, also from mfplain.mp
syn keyword mpMacro cullit currenttransform gfcorners grayfont hround
syn keyword mpMacro imagerules lowres_fix nodisplays notransforms openit
syn keyword mpMacro proofoffset screenchars screenrule screenstrokes
syn keyword mpMacro showit slantfont titlefont unitpixel vround
syn keyword mpDef cull cullit gfcorners imagerules nodisplays
syn keyword mpDef notransforms openit proofoffset screenchars
syn keyword mpDef screenrule screenstrokes showit
syn keyword mpVardef grayfont slantfont titlefont
syn keyword mpVariable currenttransform
syn keyword mpConstant unitpixel
" These are not listed in the MetaPost manual, and some are ignored by
" MetaPost, but are nonetheless defined in mfplain.mp
syn keyword mpDef killtext
syn match mpVardef "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
syn keyword mpVariable aspect_ratio localfont mag mode mode_name
syn keyword mpVariable proofcolor
syn keyword mpConstant lowres proof smoke
syn keyword mpNewInternal autorounding bp_per_pixel granularity
syn keyword mpNewInternal number_of_modes proofing smoothing turningcheck
endif
" Keywords defined by other macro packages, e.g., boxes.mp
if !exists("other_mp_macros")
let other_mp_macros = 1 " Set this to '0' if your source gets too colourful
endif
if other_mp_macros
syn keyword mpMacro circmargin defaultdx defaultdy
syn keyword mpMacro boxit boxjoin bpath circleit drawboxed drawboxes
syn keyword mpMacro drawunboxed fixpos fixsize pic
" Keywords defined by all base macro packages:
" - (r)boxes.mp
" - format.mp
" - graph.mp
" - marith.mp
" - sarith.mp
" - string.mp
" - TEX.mp
if get(g:, "other_mp_macros", 1)
" boxes and rboxes
syn keyword mpDef boxjoin drawboxed drawboxes drawunboxed
syn keyword mpNewInternal circmargin defaultdx defaultdy rbox_radius
syn keyword mpVardef boxit bpath circleit fixpos fixsize generic_declare
syn keyword mpVardef generic_redeclare generisize pic rboxit str_prefix
" format
syn keyword mpVardef Mformat format init_numbers roundd
syn keyword mpVariable Fe_base Fe_plus
syn keyword mpConstant Ten_to
" graph
syn keyword mpDef Gfor Gxyscale OUT auto begingraph endgraph gdata
syn keyword mpDef gdraw gdrawarrow gdrawdblarrow gfill plot
syn keyword mpVardef augment autogrid frame gdotlabel glabel grid itick
syn keyword mpVardef otick
syn keyword mpVardef Mreadpath setcoords setrange
syn keyword mpNewInternal Gmarks Gminlog Gpaths linear log
syn keyword mpVariable Autoform Gemarks Glmarks Gumarks
syn keyword mpConstant Gtemplate
syn match mpVariable /Gmargin\.\%(low\|high\)/
" marith
syn keyword mpVardef Mabs Meform Mexp Mexp_str Mlog Mlog_Str Mlog_str
syn keyword mpPrimaryDef Mdiv Mmul
syn keyword mpSecondaryDef Madd Msub
syn keyword mpTertiaryDef Mleq
syn keyword mpNewInternal Mten Mzero
" sarith
syn keyword mpVardef Sabs Scvnum
syn keyword mpPrimaryDef Sdiv Smul
syn keyword mpSecondaryDef Sadd Ssub
syn keyword mpTertiaryDef Sleq Sneq
" string
syn keyword mpVardef cspan isdigit loptok
" TEX
syn keyword mpVardef TEX TEXPOST TEXPRE
endif
" Up to date as of 23-Sep-2016.
if get(b:, 'mp_metafun_macros', get(g:, 'mp_metafun_macros', 0))
" Highlight TeX keywords (for use in ConTeXt documents)
syn match mpTeXKeyword '\\[a-zA-Z@]\+'
" These keywords have been added manually.
syn keyword mpPrimitive runscript
" The following MetaFun keywords have been extracted automatically from
" ConTeXt source code. They include all "public" macros (where a macro is
" considered public if and only if it does not start with _, mfun_, mlib_, or
" do_, and it does not end with _), all "public" unsaved variables, and all
" `let` statements.
" mp-abck.mpiv
syn keyword mpDef abck_grid_line anchor_box box_found boxfilloptions
syn keyword mpDef boxgridoptions boxlineoptions draw_multi_pars
syn keyword mpDef draw_multi_side draw_multi_side_path freeze_box
syn keyword mpDef initialize_box initialize_box_pos
syn keyword mpDef multi_side_draw_options show_multi_kind
syn keyword mpDef show_multi_pars
syn keyword mpVardef abck_baseline_grid abck_draw_path abck_graphic_grid
syn keyword mpVariable boxdashtype boxfilloffset boxfilltype
syn keyword mpVariable boxgriddirection boxgriddistance boxgridshift
syn keyword mpVariable boxgridtype boxgridwidth boxlineoffset
syn keyword mpVariable boxlineradius boxlinetype boxlinewidth multikind
syn keyword mpConstant context_abck
" mp-apos.mpiv
syn keyword mpDef anch_sidebars_draw boxfilloptions boxlineoptions
syn keyword mpDef connect_positions
syn keyword mpConstant context_apos
" mp-asnc.mpiv
syn keyword mpDef FlushSyncTasks ProcessSyncTask ResetSyncTasks
syn keyword mpDef SetSyncColor SetSyncThreshold SyncTask
syn keyword mpVardef PrepareSyncTasks SyncBox TheSyncColor
syn keyword mpVardef TheSyncThreshold
syn keyword mpVariable CurrentSyncClass NOfSyncPaths SyncColor
syn keyword mpVariable SyncLeftOffset SyncPaths SyncTasks SyncThreshold
syn keyword mpVariable SyncThresholdMethod SyncWidth
syn keyword mpConstant context_asnc
" mp-back.mpiv
syn keyword mpDef some_double_back some_hash
syn keyword mpVariable back_nillcolor
syn keyword mpConstant context_back
" mp-bare.mpiv
syn keyword mpVardef colordecimals rawtextext
syn keyword mpPrimaryDef infont
syn keyword mpConstant context_bare
" mp-base.mpiv
" This is essentially plain.mp with only a few keywords added
syn keyword mpNumExp graypart
syn keyword mpType graycolor greycolor
syn keyword mpConstant cyan magenta yellow
" mp-butt.mpiv
syn keyword mpDef predefinedbutton some_button
syn keyword mpConstant context_butt
" mp-char.mpiv
syn keyword mpDef flow_begin_chart flow_begin_sub_chart
syn keyword mpDef flow_chart_draw_comment flow_chart_draw_exit
syn keyword mpDef flow_chart_draw_label flow_chart_draw_text
syn keyword mpDef flow_clip_chart flow_collapse_points
syn keyword mpDef flow_connect_bottom_bottom flow_connect_bottom_left
syn keyword mpDef flow_connect_bottom_right flow_connect_bottom_top
syn keyword mpDef flow_connect_left_bottom flow_connect_left_left
syn keyword mpDef flow_connect_left_right flow_connect_left_top
syn keyword mpDef flow_connect_right_bottom flow_connect_right_left
syn keyword mpDef flow_connect_right_right flow_connect_right_top
syn keyword mpDef flow_connect_top_bottom flow_connect_top_left
syn keyword mpDef flow_connect_top_right flow_connect_top_top
syn keyword mpDef flow_draw_connection flow_draw_connection_point
syn keyword mpDef flow_draw_midpoint flow_draw_shape
syn keyword mpDef flow_draw_test_area flow_draw_test_shape
syn keyword mpDef flow_draw_test_shapes flow_end_chart
syn keyword mpDef flow_end_sub_chart flow_flush_connections
syn keyword mpDef flow_flush_picture flow_flush_pictures
syn keyword mpDef flow_flush_shape flow_flush_shapes
syn keyword mpDef flow_initialize_grid flow_new_chart flow_new_shape
syn keyword mpDef flow_scaled_to_grid flow_show_connection
syn keyword mpDef flow_show_connections flow_show_shapes
syn keyword mpDef flow_xy_offset flow_y_pos
syn keyword mpVardef flow_connection_path flow_down_on_grid
syn keyword mpVardef flow_down_to_grid flow_i_point flow_left_on_grid
syn keyword mpVardef flow_left_to_grid flow_offset
syn keyword mpVardef flow_points_initialized flow_right_on_grid
syn keyword mpVardef flow_right_to_grid flow_smooth_connection
syn keyword mpVardef flow_trim_points flow_trimmed flow_up_on_grid
syn keyword mpVardef flow_up_to_grid flow_valid_connection
syn keyword mpVardef flow_x_on_grid flow_xy_bottom flow_xy_left
syn keyword mpVardef flow_xy_on_grid flow_xy_right flow_xy_top
syn keyword mpVardef flow_y_on_grid
syn keyword mpVariable flow_arrowtip flow_chart_background_color
syn keyword mpVariable flow_chart_offset flow_comment_offset
syn keyword mpVariable flow_connection_arrow_size
syn keyword mpVariable flow_connection_dash_size
syn keyword mpVariable flow_connection_line_color
syn keyword mpVariable flow_connection_line_width
syn keyword mpVariable flow_connection_smooth_size flow_connections
syn keyword mpVariable flow_cpath flow_dash_pattern flow_dashline
syn keyword mpVariable flow_exit_offset flow_forcevalid flow_grid_height
syn keyword mpVariable flow_grid_width flow_label_offset flow_max_x
syn keyword mpVariable flow_max_y flow_peepshape flow_reverse_connection
syn keyword mpVariable flow_reverse_y flow_shape_action flow_shape_archive
syn keyword mpVariable flow_shape_decision flow_shape_down
syn keyword mpVariable flow_shape_fill_color flow_shape_height
syn keyword mpVariable flow_shape_left flow_shape_line_color
syn keyword mpVariable flow_shape_line_width flow_shape_loop
syn keyword mpVariable flow_shape_multidocument flow_shape_node
syn keyword mpVariable flow_shape_procedure flow_shape_product
syn keyword mpVariable flow_shape_right flow_shape_singledocument
syn keyword mpVariable flow_shape_subprocedure flow_shape_up
syn keyword mpVariable flow_shape_wait flow_shape_width
syn keyword mpVariable flow_show_all_points flow_show_con_points
syn keyword mpVariable flow_show_mid_points flow_showcrossing flow_smooth
syn keyword mpVariable flow_touchshape flow_xypoint flow_zfactor
syn keyword mpConstant context_flow
" mp-chem.mpiv
syn keyword mpDef chem_init_all chem_reset chem_start_structure
syn keyword mpDef chem_transformed
syn keyword mpVardef chem_ad chem_adj chem_align chem_arrow chem_au
syn keyword mpVardef chem_b chem_bb chem_bd chem_bw chem_c chem_cc
syn keyword mpVardef chem_ccd chem_cd chem_crz chem_cz chem_dash chem_db
syn keyword mpVardef chem_diff chem_dir chem_do chem_dr chem_draw
syn keyword mpVardef chem_drawarrow chem_eb chem_ed chem_ep chem_er
syn keyword mpVardef chem_es chem_et chem_fill chem_hb chem_init_some
syn keyword mpVardef chem_label chem_ldb chem_ldd chem_line chem_lr
syn keyword mpVardef chem_lrb chem_lrbd chem_lrd chem_lrh chem_lrn
syn keyword mpVardef chem_lrt chem_lrz chem_lsr chem_lsub chem_mark
syn keyword mpVardef chem_marked chem_mid chem_mids chem_midz chem_mir
syn keyword mpVardef chem_mov chem_move chem_number chem_oe chem_off
syn keyword mpVardef chem_pb chem_pe chem_r chem_r_fragment chem_rb
syn keyword mpVardef chem_rbd chem_rd chem_rdb chem_rdd chem_restore
syn keyword mpVardef chem_rh chem_rm chem_rn chem_rot chem_rr chem_rrb
syn keyword mpVardef chem_rrbd chem_rrd chem_rrh chem_rrn chem_rrt
syn keyword mpVardef chem_rrz chem_rsr chem_rsub chem_rt chem_rz chem_s
syn keyword mpVardef chem_save chem_sb chem_sd chem_set chem_sr chem_ss
syn keyword mpVardef chem_start_component chem_stop_component
syn keyword mpVardef chem_stop_structure chem_sub chem_symbol chem_tb
syn keyword mpVardef chem_text chem_z chem_zln chem_zlt chem_zn chem_zrn
syn keyword mpVardef chem_zrt chem_zt
syn keyword mpVariable chem_mark_pair chem_stack_mirror chem_stack_origin
syn keyword mpVariable chem_stack_p chem_stack_previous
syn keyword mpVariable chem_stack_rotation chem_trace_boundingbox
syn keyword mpVariable chem_trace_nesting chem_trace_text
syn keyword mpConstant context_chem
" mp-core.mpiv
syn keyword mpDef FlushSyncTasks ProcessSyncTask
syn keyword mpDef RegisterLocalTextArea RegisterPlainTextArea
syn keyword mpDef RegisterRegionTextArea RegisterTextArea
syn keyword mpDef ResetLocalTextArea ResetSyncTasks ResetTextAreas
syn keyword mpDef SaveTextAreas SetSyncColor SetSyncThreshold
syn keyword mpDef SyncTask anchor_box box_found boxfilloptions
syn keyword mpDef boxgridoptions boxlineoptions collapse_multi_pars
syn keyword mpDef draw_box draw_multi_pars draw_par freeze_box
syn keyword mpDef initialize_area initialize_area_par initialize_box
syn keyword mpDef initialize_box_pos initialize_par
syn keyword mpDef prepare_multi_pars relocate_multipars save_multipar
syn keyword mpDef set_par_line_height show_multi_pars show_par
syn keyword mpDef simplify_multi_pars sort_multi_pars
syn keyword mpVardef InsideSavedTextArea InsideSomeSavedTextArea
syn keyword mpVardef InsideSomeTextArea InsideTextArea PrepareSyncTasks
syn keyword mpVardef SyncBox TextAreaH TextAreaW TextAreaWH TextAreaX
syn keyword mpVardef TextAreaXY TextAreaY TheSyncColor TheSyncThreshold
syn keyword mpVardef baseline_grid graphic_grid multi_par_at_top
syn keyword mpVariable CurrentSyncClass NOfSavedTextAreas
syn keyword mpVariable NOfSavedTextColumns NOfSyncPaths NOfTextAreas
syn keyword mpVariable NOfTextColumns PlainTextArea RegionTextArea
syn keyword mpVariable SavedTextColumns SyncColor SyncLeftOffset SyncPaths
syn keyword mpVariable SyncTasks SyncThreshold SyncThresholdMethod
syn keyword mpVariable SyncWidth TextAreas TextColumns
syn keyword mpVariable auto_multi_par_hsize boxdashtype boxfilloffset
syn keyword mpVariable boxfilltype boxgriddirection boxgriddistance
syn keyword mpVariable boxgridshift boxgridtype boxgridwidth boxlineradius
syn keyword mpVariable boxlinetype boxlinewidth check_multi_par_chain
syn keyword mpVariable compensate_multi_par_topskip
syn keyword mpVariable enable_multi_par_fallback force_multi_par_chain
syn keyword mpVariable ignore_multi_par_page last_multi_par_shift lefthang
syn keyword mpVariable local_multi_par_area multi_column_first_page_hack
syn keyword mpVariable multi_par_pages multiloc multilocs multipar
syn keyword mpVariable multipars multiref multirefs nofmultipars
syn keyword mpVariable obey_multi_par_hang obey_multi_par_more
syn keyword mpVariable one_piece_multi_par par_hang_after par_hang_indent
syn keyword mpVariable par_indent par_left_skip par_line_height
syn keyword mpVariable par_right_skip par_start_pos par_stop_pos
syn keyword mpVariable par_strut_depth par_strut_height ppos righthang
syn keyword mpVariable snap_multi_par_tops somehang span_multi_column_pars
syn keyword mpVariable use_multi_par_region
syn keyword mpConstant context_core
syn keyword LET anchor_area anchor_par draw_area
" mp-cows.mpiv
syn keyword mpConstant context_cows cow
" mp-crop.mpiv
syn keyword mpDef page_marks_add_color page_marks_add_lines
syn keyword mpDef page_marks_add_marking page_marks_add_number
syn keyword mpVardef crop_color crop_gray crop_marks_cmyk
syn keyword mpVardef crop_marks_cmykrgb crop_marks_gray crop_marks_lines
syn keyword mpVariable crop_colors more page
syn keyword mpConstant context_crop
" mp-figs.mpiv
syn keyword mpDef naturalfigure registerfigure
syn keyword mpVardef figuredimensions figureheight figuresize
syn keyword mpVardef figurewidth
syn keyword mpConstant context_figs
" mp-fobg.mpiv
syn keyword mpDef DrawFoFrame
syn keyword mpVardef equalpaths
syn keyword mpPrimaryDef inset outset
syn keyword mpVariable FoBackground FoBackgroundColor FoFrame FoLineColor
syn keyword mpVariable FoLineStyle FoLineWidth FoSplit
syn keyword mpConstant FoAll FoBottom FoDash FoDotted FoDouble FoGroove
syn keyword mpConstant FoHidden FoInset FoLeft FoMedium FoNoColor FoNone
syn keyword mpConstant FoOutset FoRidge FoRight FoSolid FoThick FoThin
syn keyword mpConstant FoTop context_fobg
" mp-form.mpiv
syn keyword mpConstant context_form
" mp-func.mpiv
syn keyword mpDef constructedfunction constructedpairs
syn keyword mpDef constructedpath curvedfunction curvedpairs
syn keyword mpDef curvedpath function pathconnectors straightfunction
syn keyword mpDef straightpairs straightpath
syn keyword mpConstant context_func
" mp-grap.mpiv
syn keyword mpDef Gfor OUT auto begingraph circles crosses diamonds
syn keyword mpDef downtriangles endgraph gdata gdraw gdrawarrow
syn keyword mpDef gdrawdblarrow gfill graph_addto
syn keyword mpDef graph_addto_currentpicture graph_comma
syn keyword mpDef graph_coordinate_multiplication graph_draw
syn keyword mpDef graph_draw_label graph_errorbar_text graph_fill
syn keyword mpDef graph_generate_exponents
syn keyword mpDef graph_generate_label_position
syn keyword mpDef graph_generate_numbers graph_label_location
syn keyword mpDef graph_scan_mark graph_scan_marks graph_setbounds
syn keyword mpDef graph_suffix graph_tick_label
syn keyword mpDef graph_with_pen_and_color graph_withlist
syn keyword mpDef graph_xyscale lefttriangles makefunctionpath plot
syn keyword mpDef plotsymbol points rainbow righttriangles smoothpath
syn keyword mpDef squares stars uptriangles witherrorbars
syn keyword mpVardef addtopath augment autogrid constant_fit
syn keyword mpVardef constant_function det escaped_format exp
syn keyword mpVardef exponential_fit exponential_function format
syn keyword mpVardef formatted frame functionpath gaussian_fit
syn keyword mpVardef gaussian_function gdotlabel glabel graph_Feform
syn keyword mpVardef graph_Meform graph_arrowhead_extent graph_bounds
syn keyword mpVardef graph_clear_bounds
syn keyword mpVardef graph_convert_user_path_to_internal graph_cspan
syn keyword mpVardef graph_draw_arrowhead graph_error graph_errorbars
syn keyword mpVardef graph_exp graph_factor_and_exponent_to_string
syn keyword mpVardef graph_gridline_picture graph_is_null
syn keyword mpVardef graph_label_convert_user_to_internal graph_loptok
syn keyword mpVardef graph_match_exponents graph_mlog
syn keyword mpVardef graph_modified_exponent_ypart graph_pair_adjust
syn keyword mpVardef graph_picture_conversion graph_post_draw
syn keyword mpVardef graph_read_line graph_readpath graph_remap
syn keyword mpVardef graph_scan_path graph_select_exponent_mark
syn keyword mpVardef graph_select_mark graph_set_bounds
syn keyword mpVardef graph_set_default_bounds graph_shapesize
syn keyword mpVardef graph_stash_label graph_tick_mark_spacing
syn keyword mpVardef graph_unknown_pair_bbox grid isdigit itick
syn keyword mpVardef linear_fit linear_function ln logten lorentzian_fit
syn keyword mpVardef lorentzian_function otick polynomial_fit
syn keyword mpVardef polynomial_function power_law_fit
syn keyword mpVardef power_law_function powten setcoords setrange
syn keyword mpVardef sortpath strfmt tick varfmt
syn keyword mpNewInternal Mzero doubleinfinity graph_log_minimum
syn keyword mpNewInternal graph_minimum_number_of_marks largestmantissa
syn keyword mpNewInternal linear lntwo log mlogten singleinfinity
syn keyword mpVariable Autoform determinant fit_chi_squared
syn keyword mpVariable graph_errorbar_picture graph_exp_marks
syn keyword mpVariable graph_frame_pair_a graph_frame_pair_b
syn keyword mpVariable graph_lin_marks graph_log_marks graph_modified_bias
syn keyword mpVariable graph_modified_higher graph_modified_lower
syn keyword mpVariable graph_shape r_s resistance_color resistance_name
syn keyword mpConstant context_grap
" mp-grid.mpiv
syn keyword mpDef hlingrid hloggrid vlingrid vloggrid
syn keyword mpVardef hlinlabel hlintext hlogtext linlin linlinpath
syn keyword mpVardef linlog linlogpath loglin loglinpath loglog
syn keyword mpVardef loglogpath processpath vlinlabel vlintext vlogtext
syn keyword mpVariable fmt_initialize fmt_pictures fmt_precision
syn keyword mpVariable fmt_separator fmt_zerocheck grid_eps
syn keyword mpConstant context_grid
" mp-grph.mpiv
syn keyword mpDef beginfig begingraphictextfig data_mpo_file
syn keyword mpDef data_mpy_file doloadfigure draw endfig
syn keyword mpDef endgraphictextfig fill fixedplace graphictext
syn keyword mpDef loadfigure new_graphictext normalwithshade number
syn keyword mpDef old_graphictext outlinefill protectgraphicmacros
syn keyword mpDef resetfig reversefill withdrawcolor withfillcolor
syn keyword mpDef withshade
syn keyword mpVariable currentgraphictext figureshift
syn keyword mpConstant context_grph
" mp-idea.mpiv
syn keyword mpVardef bcomponent ccomponent gcomponent mcomponent
syn keyword mpVardef rcomponent somecolor ycomponent
" mp-luas.mpiv
syn keyword mpDef luacall message
syn keyword mpVardef MP lua lualist
syn keyword mpConstant context_luas
" mp-mlib.mpiv
syn keyword mpDef autoalign bitmapimage circular_shade cmyk comment
syn keyword mpDef defineshade eofill eofillup externalfigure figure
syn keyword mpDef fillup label linear_shade multitonecolor namedcolor
syn keyword mpDef nofill onlayer passarrayvariable passvariable
syn keyword mpDef plain_label register resolvedcolor scantokens
syn keyword mpDef set_circular_vector set_linear_vector shaded
syn keyword mpDef spotcolor startpassingvariable stoppassingvariable
syn keyword mpDef thelabel transparent[] usemetafunlabels
syn keyword mpDef useplainlabels withcircularshade withlinearshade
syn keyword mpDef withmask withproperties withshadecenter
syn keyword mpDef withshadecolors withshadedirection withshadedomain
syn keyword mpDef withshadefactor withshadefraction withshadeorigin
syn keyword mpDef withshaderadius withshadestep withshadetransform
syn keyword mpDef withshadevector withtransparency
syn keyword mpVardef anchored checkbounds checkedbounds
syn keyword mpVardef define_circular_shade define_linear_shade dotlabel
syn keyword mpVardef escaped_format fmttext fontsize format formatted
syn keyword mpVardef installlabel onetimefmttext onetimetextext
syn keyword mpVardef outlinetext plain_thelabel properties rawfmttext
syn keyword mpVardef rawtexbox rawtextext rule strfmt strut texbox
syn keyword mpVardef textext thefmttext thelabel thetexbox thetextext
syn keyword mpVardef tostring transparency_alternative_to_number
syn keyword mpVardef validtexbox varfmt verbatim
syn keyword mpPrimaryDef asgroup infont normalinfont shadedinto
syn keyword mpPrimaryDef shownshadecenter shownshadedirection
syn keyword mpPrimaryDef shownshadeorigin shownshadevector withshade
syn keyword mpPrimaryDef withshademethod
syn keyword mpNewInternal colorburntransparent colordodgetransparent
syn keyword mpNewInternal colortransparent darkentransparent
syn keyword mpNewInternal differencetransparent exclusiontransparent
syn keyword mpNewInternal hardlighttransparent huetransparent
syn keyword mpNewInternal lightentransparent luminositytransparent
syn keyword mpNewInternal multiplytransparent normaltransparent
syn keyword mpNewInternal overlaytransparent saturationtransparent
syn keyword mpNewInternal screentransparent shadefactor softlighttransparent
syn keyword mpNewInternal textextoffset
syn keyword mpType property transparency
syn keyword mpVariable currentoutlinetext shadeddown shadedleft
syn keyword mpVariable shadedright shadedup shadeoffset trace_shades
syn keyword mpConstant context_mlib
" mp-page.mpiv
syn keyword mpDef BoundCoverAreas BoundPageAreas Enlarged FakeRule
syn keyword mpDef FakeWord LoadPageState OverlayBox RuleColor
syn keyword mpDef SetAreaVariables SetPageArea SetPageBackPage
syn keyword mpDef SetPageCoverPage SetPageField SetPageFrontPage
syn keyword mpDef SetPageHsize SetPageHstep SetPageLocation
syn keyword mpDef SetPagePage SetPageSpine SetPageVariables
syn keyword mpDef SetPageVsize SetPageVstep StartCover StartPage
syn keyword mpDef StopCover StopPage SwapPageState innerenlarged
syn keyword mpDef llEnlarged lrEnlarged outerenlarged ulEnlarged
syn keyword mpDef urEnlarged
syn keyword mpVardef BackPageHeight BackPageWidth BackSpace BaseLineSkip
syn keyword mpVardef BodyFontSize BottomDistance BottomHeight
syn keyword mpVardef BottomSpace CoverHeight CoverWidth CurrentColumn
syn keyword mpVardef CurrentHeight CurrentWidth CutSpace EmWidth
syn keyword mpVardef ExHeight FooterDistance FooterHeight
syn keyword mpVardef FrontPageHeight FrontPageWidth HSize HeaderDistance
syn keyword mpVardef HeaderHeight InPageBody InnerEdgeDistance
syn keyword mpVardef InnerEdgeWidth InnerMarginDistance InnerMarginWidth
syn keyword mpVardef InnerSpaceWidth LastPageNumber LayoutColumnDistance
syn keyword mpVardef LayoutColumnWidth LayoutColumns LeftEdgeDistance
syn keyword mpVardef LeftEdgeWidth LeftMarginDistance LeftMarginWidth
syn keyword mpVardef LineHeight MakeupHeight MakeupWidth NOfColumns
syn keyword mpVardef NOfPages OnOddPage OnRightPage OuterEdgeDistance
syn keyword mpVardef OuterEdgeWidth OuterMarginDistance OuterMarginWidth
syn keyword mpVardef OuterSpaceWidth OverlayDepth OverlayHeight
syn keyword mpVardef OverlayLineWidth OverlayOffset OverlayWidth
syn keyword mpVardef PageDepth PageFraction PageNumber PageOffset
syn keyword mpVardef PaperBleed PaperHeight PaperWidth PrintPaperHeight
syn keyword mpVardef PrintPaperWidth RealPageNumber RightEdgeDistance
syn keyword mpVardef RightEdgeWidth RightMarginDistance RightMarginWidth
syn keyword mpVardef SpineHeight SpineWidth StrutDepth StrutHeight
syn keyword mpVardef TextHeight TextWidth TopDistance TopHeight TopSkip
syn keyword mpVardef TopSpace VSize defaultcolormodel
syn keyword mpVariable Area BackPage CoverPage CurrentLayout Field
syn keyword mpVariable FrontPage HorPos Hsize Hstep Location Page
syn keyword mpVariable PageStateAvailable RuleDepth RuleDirection
syn keyword mpVariable RuleFactor RuleH RuleHeight RuleOffset RuleOption
syn keyword mpVariable RuleThickness RuleV RuleWidth Spine VerPos Vsize
syn keyword mpVariable Vstep
syn keyword mpConstant context_page
" mp-shap.mpiv
syn keyword mpDef drawline drawshape some_shape
syn keyword mpDef start_predefined_shape_definition
syn keyword mpDef stop_predefined_shape_definition
syn keyword mpVardef drawpredefinedline drawpredefinedshape
syn keyword mpVardef some_shape_path
syn keyword mpVariable predefined_shapes predefined_shapes_xradius
syn keyword mpVariable predefined_shapes_xxradius
syn keyword mpVariable predefined_shapes_yradius
syn keyword mpVariable predefined_shapes_yyradius
syn keyword mpConstant context_shap
" mp-step.mpiv
syn keyword mpDef initialize_step_variables midbottomboundary
syn keyword mpDef midtopboundary step_begin_cell step_begin_chart
syn keyword mpDef step_cell_ali step_cell_bot step_cell_top
syn keyword mpDef step_cells step_end_cell step_end_chart
syn keyword mpDef step_text_bot step_text_mid step_text_top
syn keyword mpDef step_texts
syn keyword mpVariable cell_distance_x cell_distance_y cell_fill_color
syn keyword mpVariable cell_line_color cell_line_width cell_offset
syn keyword mpVariable chart_align chart_category chart_vertical
syn keyword mpVariable line_distance line_height line_line_color
syn keyword mpVariable line_line_width line_offset nofcells
syn keyword mpVariable text_distance_set text_fill_color text_line_color
syn keyword mpVariable text_line_width text_offset
syn keyword mpConstant context_cell
" mp-symb.mpiv
syn keyword mpDef finishglyph prepareglyph
syn keyword mpConstant lefttriangle midbar onebar righttriangle sidebar
syn keyword mpConstant sublefttriangle subrighttriangle twobar
" mp-text.mpiv
syn keyword mpDef build_parshape
syn keyword mpVardef found_point
syn keyword mpVariable trace_parshape
syn keyword mpConstant context_text
" mp-tool.mpiv
syn keyword mpCommand dump
syn keyword mpDef addbackground b_color beginglyph break centerarrow
syn keyword mpDef clearxy condition data_mpd_file detaileddraw
syn keyword mpDef detailpaths dowithpath draw drawboundary
syn keyword mpDef drawboundingbox drawcontrollines drawcontrolpoints
syn keyword mpDef drawfill draworigin drawpath drawpathonly
syn keyword mpDef drawpathwithpoints drawpoint drawpointlabels
syn keyword mpDef drawpoints drawticks drawwholepath drawxticks
syn keyword mpDef drawyticks endglyph fill finishsavingdata g_color
syn keyword mpDef inner_boundingbox job_name leftarrow loadmodule
syn keyword mpDef midarrowhead naturalizepaths newboolean newcolor
syn keyword mpDef newnumeric newpair newpath newpicture newstring
syn keyword mpDef newtransform normalcolors normaldraw normalfill
syn keyword mpDef normalwithcolor outer_boundingbox pop_boundingbox
syn keyword mpDef popboundingbox popcurrentpicture push_boundingbox
syn keyword mpDef pushboundingbox pushcurrentpicture r_color readfile
syn keyword mpDef recolor redraw refill register_dirty_chars
syn keyword mpDef remapcolor remapcolors remappedcolor reprocess
syn keyword mpDef resetarrows resetcolormap resetdrawoptions
syn keyword mpDef resolvedcolor restroke retext rightarrow savedata
syn keyword mpDef saveoptions scale_currentpicture set_ahlength
syn keyword mpDef set_grid showgrid startplaincompatibility
syn keyword mpDef startsavingdata stopplaincompatibility
syn keyword mpDef stopsavingdata stripe_path_a stripe_path_n undashed
syn keyword mpDef undrawfill untext visualizeddraw visualizedfill
syn keyword mpDef visualizepaths withcolor withgray
syn keyword mpDef xscale_currentpicture xshifted
syn keyword mpDef xyscale_currentpicture yscale_currentpicture
syn keyword mpDef yshifted
syn keyword mpVardef acos acosh anglebetween area arrowhead
syn keyword mpVardef arrowheadonpath arrowpath asciistring asin asinh
syn keyword mpVardef atan basiccolors bbheight bbwidth bcomponent
syn keyword mpVardef blackcolor bottomboundary boundingbox c_phantom
syn keyword mpVardef ccomponent center cleanstring colorcircle
syn keyword mpVardef colordecimals colordecimalslist colorlike colorpart
syn keyword mpVardef colortype complementary complemented copylist cos
syn keyword mpVardef cosh cot cotd curved ddddecimal dddecimal ddecimal
syn keyword mpVardef decorated drawarrowpath epsed exp freedotlabel
syn keyword mpVardef freelabel gcomponent getunstringed grayed greyed
syn keyword mpVardef hsvtorgb infinite innerboundingbox interpolated inv
syn keyword mpVardef invcos inverted invsin invtan laddered leftboundary
syn keyword mpVardef leftpath leftrightpath listsize listtocurves
syn keyword mpVardef listtolines ln log mcomponent new_on_grid
syn keyword mpVardef outerboundingbox paired pen_size penpoint phantom
syn keyword mpVardef pointarrow pow punked rangepath rcomponent
syn keyword mpVardef redecorated repathed rightboundary rightpath
syn keyword mpVardef rotation roundedsquare set_inner_boundingbox
syn keyword mpVardef set_outer_boundingbox setunstringed shapedlist
syn keyword mpVardef simplified sin sinh sortlist sqr straightpath tan
syn keyword mpVardef tand tanh tensecircle thefreelabel topboundary
syn keyword mpVardef tripled undecorated unitvector unspiked unstringed
syn keyword mpVardef whitecolor ycomponent
syn keyword mpPrimaryDef along blownup bottomenlarged cornered crossed
syn keyword mpPrimaryDef enlarged enlonged leftenlarged llenlarged llmoved
syn keyword mpPrimaryDef lrenlarged lrmoved on paralleled randomized
syn keyword mpPrimaryDef randomizedcontrols randomshifted rightenlarged
syn keyword mpPrimaryDef shortened sized smoothed snapped softened squeezed
syn keyword mpPrimaryDef stretched superellipsed topenlarged ulenlarged
syn keyword mpPrimaryDef ulmoved uncolored urenlarged urmoved xsized
syn keyword mpPrimaryDef xstretched xyscaled xysized ysized ystretched zmod
syn keyword mpSecondaryDef anglestriped intersection_point numberstriped
syn keyword mpSecondaryDef peepholed
syn keyword mpTertiaryDef cutends
syn keyword mpNewInternal ahdimple ahvariant anglelength anglemethod
syn keyword mpNewInternal angleoffset charscale cmykcolormodel graycolormodel
syn keyword mpNewInternal greycolormodel maxdimensions metapostversion
syn keyword mpNewInternal nocolormodel rgbcolormodel striped_normal_inner
syn keyword mpNewInternal striped_normal_outer striped_reverse_inner
syn keyword mpNewInternal striped_reverse_outer
syn keyword mpType grayscale greyscale quadruplet triplet
syn keyword mpVariable ahfactor collapse_data color_map drawoptionsfactor
syn keyword mpVariable freedotlabelsize freelabeloffset grid grid_full
syn keyword mpVariable grid_h grid_left grid_nx grid_ny grid_w grid_x
syn keyword mpVariable grid_y intersection_found originlength
syn keyword mpVariable plain_compatibility_data pointlabelfont
syn keyword mpVariable pointlabelscale refillbackground savingdata
syn keyword mpVariable savingdatadone swappointlabels ticklength tickstep
syn keyword mpConstant CRLF DQUOTE PERCENT SPACE bcircle context_tool crlf
syn keyword mpConstant darkblue darkcyan darkgray darkgreen darkmagenta
syn keyword mpConstant darkred darkyellow downtriangle dquote freesquare
syn keyword mpConstant fulldiamond fullsquare fulltriangle lcircle
syn keyword mpConstant lefttriangle lightgray llcircle lltriangle lrcircle
syn keyword mpConstant lrtriangle mpversion nocolor noline oddly
syn keyword mpConstant originpath percent rcircle righttriangle space
syn keyword mpConstant tcircle triangle ulcircle ultriangle unitcircle
syn keyword mpConstant unitdiamond unittriangle uptriangle urcircle
syn keyword mpConstant urtriangle
endif " MetaFun macros
" Define the default highlighting
" Only when an item doesn't have highlighting yet
hi def link mpTeXinsert String
hi def link mpTeXbegin Statement
hi def link mpTeXend Statement
hi def link mpInternal mfInternal
hi def link mpMacro Macro
hi def link mpTeXdelim mpPrimitive
hi def link mpBoolExp mfBoolExp
hi def link mpNumExp mfNumExp
hi def link mpPairExp mfPairExp
hi def link mpPathExp mfPathExp
hi def link mpPenExp mfPenExp
hi def link mpPicExp mfPicExp
hi def link mpStringExp mfStringExp
hi def link mpInternal mfInternal
hi def link mpCommand mfCommand
hi def link mpType mfType
hi def link mpPrimitive mfPrimitive
hi def link mpDef mfDef
hi def link mpVardef mpDef
hi def link mpPrimaryDef mpDef
hi def link mpSecondaryDef mpDef
hi def link mpTertiaryDef mpDef
hi def link mpNewInternal mpInternal
hi def link mpVariable mfVariable
hi def link mpConstant mfConstant
hi def link mpOnOff mpPrimitive
hi def link mpDash mpPrimitive
hi def link mpTeXKeyword Identifier
let b:current_syntax = "mp"
" vim: ts=8
let &cpo = s:cpo_sav
unlet! s:cpo_sav
" vim:sw=2
+22 -3
View File
@@ -1,9 +1,10 @@
" Vim syntax file
" Language: NASM - The Netwide Assembler (v0.98)
" Maintainer: Andriy Sokolov <andriy145@gmail.com>
" Maintainer: Andrii Sokolov <andriy145@gmail.com>
" Original Author: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
" Former Maintainer: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
" Last Change: 2012 Feb 7
" Contributors: Leonard König <leonard.r.koenig@gmail.com> (C string highlighting)
" Last Change: 2017 Jan 23
" NASM Home: http://www.nasm.us/
@@ -67,8 +68,23 @@ syn match nasmLabelError "\<\~\s*\(\k*\s*:\|\$\=\.\k*\)"
" Constants:
syn match nasmStringError +["']+
syn match nasmStringError +["'`]+
" NASM is case sensitive here: eg. u-prefix allows for 4-digit, U-prefix for
" 8-digit Unicode characters
syn case match
" one-char escape-sequences
syn match nasmCStringEscape display contained "\\["\\\?abtnvfre]"
" hex and octal numbers
syn match nasmCStringEscape display contained "\\\(x\x\{2}\|\o\{1,3}\)"
" Unicode characters
syn match nasmCStringEscape display contained "\\\(u\x\{4}\|U\x\{8}\)"
" ISO C99 format strings (copied from cFormat in runtime/syntax/c.vim)
syn match nasmCStringFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
syn match nasmCStringFormat display "%%" contained
syn match nasmString +\("[^"]\{-}"\|'[^']\{-}'\)+
" Highlight C escape- and format-sequences within ``-strings
syn match nasmCString +\(`[^`]\{-}`\)+ contains=nasmCStringEscape,nasmCStringFormat extend
syn case ignore
syn match nasmBinNumber "\<[0-1]\+b\>"
syn match nasmBinNumber "\<\~[0-1]\+b\>"lc=1
syn match nasmOctNumber "\<\o\+q\>"
@@ -443,7 +459,10 @@ hi def link nasmInCommentTodo Todo
" Constant Group:
hi def link nasmString String
hi def link nasmCString String
hi def link nasmStringError Error
hi def link nasmCStringEscape SpecialChar
hi def link nasmCStringFormat SpecialChar
hi def link nasmBinNumber Number
hi def link nasmOctNumber Number
hi def link nasmDecNumber Number
+20 -20
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5/7
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: Jul 27, 2016
" Last Change: Dec 11, 2016
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -495,7 +495,7 @@ syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,
" Highlighting for __autoload slightly different from line above
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
\ __autoload
highlight link phpSpecialFunction phpOperator
hi def link phpSpecialFunction phpOperator
" Highlighting for PHP5's built-in classes
" - built-in classes harvested from get_declared_classes() in 5.1.4
@@ -518,14 +518,14 @@ syntax keyword phpClasses containedin=ALLBUT,phpComment,phpStringDouble,phpStrin
\ DOMCharacterData DOMAttr DOMElement DOMText DOMComment DOMTypeinfo DOMUserDataHandler
\ DOMLocator DOMConfiguration DOMCdataSection DOMDocumentType DOMNotation DOMEntity
\ DOMEntityReference DOMProcessingInstruction DOMStringExtend DOMXPath
highlight link phpClasses phpFunctions
hi def link phpClasses phpFunctions
" Highlighting for PHP5's built-in interfaces
" - built-in classes harvested from get_declared_interfaces() in 5.1.4
syntax keyword phpInterfaces containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
\ Iterator IteratorAggregate RecursiveIterator OuterIterator SeekableIterator
\ Traversable ArrayAccess Serializable Countable SplObserver SplSubject Reflector
highlight link phpInterfaces phpConstant
hi def link phpInterfaces phpConstant
" option defaults:
if ! exists('php_special_functions')
@@ -553,7 +553,7 @@ endif
if php_alt_assignByReference
" special highlighting for '=&' operator
syntax match phpAssignByRef /=\s*&/ containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
highlight link phpAssignByRef Type
hi def link phpAssignByRef Type
endif
if php_alt_comparisons
@@ -565,7 +565,7 @@ if php_alt_comparisons
syntax case ignore
syntax keyword phpComparison instanceof contained containedin=phpRegion
hi link phpComparison Statement
hi def link phpComparison Statement
endif
" ================================================================
@@ -645,21 +645,21 @@ hi def link phpTodo Todo
hi def link phpDocTodo Todo
hi def link phpMemberSelector Structure
if exists("php_oldStyle")
hi phpIntVar guifg=Red ctermfg=DarkRed
hi phpEnvVar guifg=Red ctermfg=DarkRed
hi phpOperator guifg=SeaGreen ctermfg=DarkGreen
hi phpVarSelector guifg=SeaGreen ctermfg=DarkGreen
hi phpRelation guifg=SeaGreen ctermfg=DarkGreen
hi phpIdentifier guifg=DarkGray ctermfg=Brown
hi phpIdentifierSimply guifg=DarkGray ctermfg=Brown
hi def phpIntVar guifg=Red ctermfg=DarkRed
hi def phpEnvVar guifg=Red ctermfg=DarkRed
hi def phpOperator guifg=SeaGreen ctermfg=DarkGreen
hi def phpVarSelector guifg=SeaGreen ctermfg=DarkGreen
hi def phpRelation guifg=SeaGreen ctermfg=DarkGreen
hi def phpIdentifier guifg=DarkGray ctermfg=Brown
hi def phpIdentifierSimply guifg=DarkGray ctermfg=Brown
else
hi def link phpIntVar Identifier
hi def link phpEnvVar Identifier
hi def link phpOperator Operator
hi def link phpVarSelector Operator
hi def link phpRelation Operator
hi def link phpIdentifier Identifier
hi def link phpIdentifierSimply Identifier
hi def link phpIntVar Identifier
hi def link phpEnvVar Identifier
hi def link phpOperator Operator
hi def link phpVarSelector Operator
hi def link phpRelation Operator
hi def link phpIdentifier Identifier
hi def link phpIdentifierSimply Identifier
endif
+52 -45
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
" Last Change: 2016 Sep 14
" Last Change: 2016 Oct 29
" Credits: Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
"
@@ -46,6 +46,29 @@ endif
let s:cpo_save = &cpo
set cpo&vim
if exists("python_no_doctest_highlight")
let python_no_doctest_code_highlight = 1
endif
if exists("python_highlight_all")
if exists("python_no_builtin_highlight")
unlet python_no_builtin_highlight
endif
if exists("python_no_doctest_code_highlight")
unlet python_no_doctest_code_highlight
endif
if exists("python_no_doctest_highlight")
unlet python_no_doctest_highlight
endif
if exists("python_no_exception_highlight")
unlet python_no_exception_highlight
endif
if exists("python_no_number_highlight")
unlet python_no_number_highlight
endif
let python_space_error_highlight = 1
endif
" Keep Python keywords in alphabetical order inside groups for easy
" comparison with the table in the 'Python Language Reference'
" https://docs.python.org/2/reference/lexical_analysis.html#keywords,
@@ -81,30 +104,31 @@ syn keyword pythonInclude from import
syn keyword pythonAsync async await
" Decorators (new in Python 2.4)
" Python 3.5 introduced the use of the same symbol for matrix
" multiplication. We now have to exclude the symbol from being
" highlighted when used in that context. Hence, the check that it's
" preceded by empty space only (possibly in a docstring/doctest) and
" followed by decorator name, optional parenthesized list of arguments,
" and the next line with either def, class, or another decorator.
syn match pythonDecorator
\ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\)\zs@\%(\s*\h\%(\w\|\.\)*\s*\%((\_\s\{-}[^)]\_.\{-})\s*\)\=\%(#.*\)\=\n\s*\%(\.\.\.\s\+\)\=\%(@\s*\h\|\%(def\|class\)\s\+\)\)\@="
\ display nextgroup=pythonDecoratorName skipwhite
" A dot must be allowed because of @MyClass.myfunc decorators.
" It must be preceded by a decorator symbol and on a separate line from
" a function/class it decorates.
syn match pythonDecoratorName
\ "\%(@\s*\)\@<=\h\%(\w\|\.\)*\%(\s*\%((\_\s\{-}[^)]\_.\{-})\s*\)\=\%(#.*\)\=\n\)\@="
\ contained display nextgroup=pythonFunction skipnl
syn match pythonDecorator "@" display contained
syn match pythonDecoratorName "@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator
" The zero-length non-grouping match of def or class before the function
" name is extremely important in pythonFunction. Without it, everything
" is interpreted as a function inside the contained environment of
" doctests.
syn match pythonFunction
\ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\%(def\|class\)\s\+\)\@<=\h\w*"
\ contained
" Python 3.5 introduced the use of the same symbol for matrix multiplication:
" https://www.python.org/dev/peps/pep-0465/. We now have to exclude the
" symbol from highlighting when used in that context.
" Single line multiplication.
syn match pythonMatrixMultiply
\ "\%(\w\|[])]\)\s*@"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ transparent
" Multiplication continued on the next line after backslash.
syn match pythonMatrixMultiply
\ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ transparent
" Multiplication in a parenthesized expression over multiple lines with @ at
" the start of each continued line; very similar to decorators and complex.
syn match pythonMatrixMultiply
\ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ transparent
syn match pythonFunction "\h\w*" display contained
syn match pythonComment "#.*$" contains=pythonTodo,@Spell
syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained
@@ -131,25 +155,6 @@ syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained
syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained
syn match pythonEscape "\\$"
if exists("python_highlight_all")
if exists("python_no_builtin_highlight")
unlet python_no_builtin_highlight
endif
if exists("python_no_doctest_code_highlight")
unlet python_no_doctest_code_highlight
endif
if exists("python_no_doctest_highlight")
unlet python_no_doctest_highlight
endif
if exists("python_no_exception_highlight")
unlet python_no_exception_highlight
endif
if exists("python_no_number_highlight")
unlet python_no_number_highlight
endif
let python_space_error_highlight = 1
endif
" It is very important to understand all details before changing the
" regular expressions below or their order.
" The word boundaries are *not* the floating-point number boundaries
@@ -213,7 +218,9 @@ if !exists("python_no_builtin_highlight")
" non-essential built-in functions; Python 2 only
syn keyword pythonBuiltin apply buffer coerce intern
" avoid highlighting attributes as builtins
syn match pythonAttribute /\.\h\w*/hs=s+1 contains=ALLBUT,pythonBuiltin transparent
syn match pythonAttribute /\.\h\w*/hs=s+1
\ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync
\ transparent
endif
" From the 'Python Library Reference' class hierarchy at the bottom.
@@ -275,7 +282,7 @@ if !exists("python_no_doctest_highlight")
if !exists("python_no_doctest_code_highlight")
syn region pythonDoctest
\ start="^\s*>>>\s" end="^\s*$"
\ contained contains=ALLBUT,pythonDoctest,@Spell
\ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell
syn region pythonDoctestValue
\ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
\ contained
@@ -287,7 +294,7 @@ if !exists("python_no_doctest_highlight")
endif
" Sync at the beginning of class, function, or method definition.
syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*("
syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]"
" The default highlight links. Can be overridden later.
hi def link pythonStatement Statement
+17 -13
View File
@@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Aug 31, 2016
" Version: 162
" Last Change: Jan 03, 2017
" Version: 167
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
@@ -170,7 +170,7 @@ if exists("b:is_kornshell") || exists("b:is_bash")
" Touch: {{{1
" =====
syn match shTouch '\<touch\>[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd
syn match shTouch '\<touch\>[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd,shDoubleQuote,shSingleQuote,shDeref,shDerefSimple
syn match shTouchCmd '\<touch\>' contained
endif
@@ -220,7 +220,7 @@ syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"
"=======
syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' contained
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' contained contains=shDerefSimple,shDeref
syn match shAstQuote contained '\*\ze"' nextgroup=shString
syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestOpr contained "<=\|>=\|!=\|==\|=\~\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
@@ -305,7 +305,7 @@ if exists("b:is_bash")
syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
syn cluster shCaseList add=bashAdminStatement,bashStatement
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
syn keyword bashStatement command compgen
endif
@@ -355,7 +355,11 @@ syn region shBkslshDblQuote contained matchgroup=shQuote start=+"+ skip=+\\"+ e
" Comments: {{{1
"==========
syn cluster shCommentGroup contains=shTodo,@Spell
syn keyword shTodo contained COMBAK FIXME TODO XXX
if exists("b:is_bash")
syn match shTodo contained "\<\%(COMBAK\|FIXME\|TODO\|XXX\)\ze:\=\>"
else
syn keyword shTodo contained COMBAK FIXME TODO XXX
endif
syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup
syn match shComment "\s\zs#.*$" contains=@shCommentGroup
syn match shComment contained "#.*$" contains=@shCommentGroup
@@ -372,8 +376,8 @@ ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
@@ -381,8 +385,8 @@ ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \
" Here Strings: {{{1
" =============
" available for: bash; ksh (really should be ksh93 only) but not if it's a posix
if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("g:is_posix"))
" available for: bash; ksh (really should be ksh93 only) but not if its a posix
if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("b:is_posix"))
syn match shHereString "<<<" skipwhite nextgroup=shCmdParenRegion
endif
@@ -403,7 +407,7 @@ else
endif
" Functions: {{{1
if !exists("g:is_posix")
if !exists("b:is_posix")
syn keyword shFunctionKey function skipwhite skipnl nextgroup=shFunctionTwo
endif
@@ -529,7 +533,7 @@ endif
" ====================
if exists("b:is_kornshell") || exists("b:is_bash")
syn keyword shStatement autoload bg false fc fg functions getopts hash history integer jobs let nohup printf r stop suspend times true type unalias whence
if exists("g:is_posix")
if exists("b:is_posix")
syn keyword shStatement command
else
syn keyword shStatement time
@@ -538,7 +542,7 @@ if exists("b:is_kornshell") || exists("b:is_bash")
" Useful bash Keywords: {{{1
" =====================
if exists("b:is_bash")
syn keyword shStatement bind builtin dirs disown enable help local logout popd pushd shopt source
syn keyword shStatement bind builtin dirs disown enable help logout popd pushd shopt source
else
syn keyword shStatement login newgrp
endif
+4 -6
View File
@@ -1,10 +1,9 @@
" Vim syntax file
" Language: sendmail
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Oct 23, 2014
" Version: 7
" Last Change: Oct 25, 2016
" Version: 8
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
if exists("b:current_syntax")
finish
endif
@@ -62,10 +61,10 @@ hi def link smClause Special
hi def link smClauseError Error
hi def link smComment Comment
hi def link smDefine Statement
hi def link smElse Delimiter
hi def link smElse Delimiter
hi def link smHeader Statement
hi def link smHeaderSep String
hi def link smMesg Special
hi def link smMesg Special
hi def link smPrecedence Number
hi def link smRewrite Statement
hi def link smRewriteComment Comment
@@ -76,7 +75,6 @@ hi def link smRuleset Preproc
hi def link smTrusted Special
hi def link smVar String
let b:current_syntax = "sm"
" vim: ts=18
+3 -2
View File
@@ -5,8 +5,8 @@
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Contributor: Karsten Hopp <karsten@redhat.com>
" Contributor: Dean, Adam Kenneth <adam.ken.dean@hpe.com>
" Last Change: 2016 Aug 11
" SSH Version: 7.3p1
" Last Change: 2016 Dec 28
" SSH Version: 7.4p1
"
" Setup
@@ -181,6 +181,7 @@ syn keyword sshconfigKeyword IPQoS
syn keyword sshconfigKeyword IdentitiesOnly
syn keyword sshconfigKeyword IdentityFile
syn keyword sshconfigKeyword IgnoreUnknown
syn keyword sshconfigKeyword Include
syn keyword sshconfigKeyword IPQoS
syn keyword sshconfigKeyword KbdInteractiveAuthentication
syn keyword sshconfigKeyword KbdInteractiveDevices
+3 -2
View File
@@ -6,8 +6,8 @@
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Contributor: Karsten Hopp <karsten@redhat.com>
" Originally: 2009-07-09
" Last Change: 2016 Mar 1
" SSH Version: 7.2
" Last Change: 2016 Dec 28
" SSH Version: 7.4p1
"
" Setup
@@ -161,6 +161,7 @@ syn keyword sshdconfigKeyword Compression
syn keyword sshdconfigKeyword DebianBanner
syn keyword sshdconfigKeyword DenyGroups
syn keyword sshdconfigKeyword DenyUsers
syn keyword sshdconfigKeyword DisableForwarding
syn keyword sshdconfigKeyword ForceCommand
syn keyword sshdconfigKeyword GSSAPIAuthentication
syn keyword sshdconfigKeyword GSSAPICleanupCredentials
+6 -3
View File
@@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Sep 25
" Last Change: 2016 Nov 04
" This file sets up for syntax highlighting.
" It is loaded from "syntax.vim" and "manual.vim".
@@ -69,8 +69,11 @@ au Syntax c,cpp,cs,idl,java,php,datascript
" Source the user-specified syntax highlighting file
if exists("mysyntaxfile") && filereadable(expand(mysyntaxfile))
execute "source " . mysyntaxfile
if exists("mysyntaxfile")
let s:fname = expand(mysyntaxfile)
if filereadable(s:fname)
execute "source " . fnameescape(s:fname)
endif
endif
" Restore 'cpoptions'
+14 -18
View File
@@ -1,7 +1,7 @@
" Language: tags
" Maintainer: Charles E. Campbell <NdrOchip@PcampbellAfamily.Mbiz>
" Last Change: Aug 31, 2016
" Version: 6
" Last Change: Oct 26, 2016
" Version: 7
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS
" quit when a syntax file was already loaded
@@ -9,27 +9,23 @@ if exists("b:current_syntax")
finish
endif
syn match tagName "^[^\t]\+" skipwhite nextgroup=tagPath
syn match tagPath "[^\t]\+" contained skipwhite nextgroup=tagAddr contains=tagBaseFile
syn match tagName "^[^\t]\+" skipwhite nextgroup=tagPath
syn match tagPath "[^\t]\+" contained skipwhite nextgroup=tagAddr contains=tagBaseFile
syn match tagBaseFile "[a-zA-Z_]\+[\.a-zA-Z_0-9]*\t"me=e-1 contained
syn match tagAddr "\d*" contained skipwhite nextgroup=tagComment
syn region tagAddr matchgroup=tagDelim start="/" skip="\(\\\\\)*\\/" matchgroup=tagDelim end="$\|/" oneline contained skipwhite nextgroup=tagComment
syn match tagComment ";.*$" contained contains=tagField
syn match tagAddr "\d*" contained skipwhite nextgroup=tagComment
syn region tagAddr matchgroup=tagDelim start="/" skip="\(\\\\\)*\\/" matchgroup=tagDelim end="$\|/" oneline contained skipwhite nextgroup=tagComment
syn match tagComment ";.*$" contained contains=tagField
syn match tagComment "^!_TAG_.*$"
syn match tagField contained "[a-z]*:"
syn match tagField contained "[a-z]*:"
" Define the default highlighting.
if !exists("skip_drchip_tags_inits")
hi def link tagBaseFile PreProc
hi def link tagComment Comment
hi def link tagDelim Delimiter
hi def link tagField Number
hi def link tagName Identifier
hi def link tagPath PreProc
hi def link tagBaseFile PreProc
hi def link tagComment Comment
hi def link tagDelim Delimiter
hi def link tagField Number
hi def link tagName Identifier
hi def link tagPath PreProc
endif
let b:current_syntax = "tags"
" vim: ts=12
+74 -40
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Aug 31, 2016
" Version: 100
" Last Change: Dec 07, 2016
" Version: 102
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
@@ -160,15 +160,17 @@ syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,tex
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texItalBoldStyle,texNoSpell
if !s:tex_nospell
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher
else
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher
endif
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter
if !exists("g:tex_no_math")
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
syn cluster texMatchGroup add=@texMathZones
syn cluster texMathDelimGroup contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2
@@ -199,9 +201,13 @@ if s:tex_fast =~# 'm'
if !s:tex_no_error
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup,texError,@NoSpell
syn region texMatcherNM matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchNMGroup,texError
syn region texMatcherNM matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchNMGroup,texError,@NoSpell
else
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup
syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup
syn region texMatcherNM matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchNMGroup
syn region texMatcherNM matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchNMGroup
endif
if !s:tex_nospell
syn region texParen start="(" end=")" transparent contains=@texMatchGroup,@Spell
@@ -399,7 +405,7 @@ if !exists("g:tex_no_math")
" TexNewMathZone: function creates a mathzone with the given suffix and mathzone name. {{{2
" Starred forms are created if starform is true. Starred
" forms have syntax group and synchronization groups with a
" "S" appended. Handles: cluster, syntax, sync, and hi link.
" "S" appended. Handles: cluster, syntax, sync, and highlighting.
fun! TexNewMathZone(sfx,mathzone,starform)
let grpname = "texMathZone".a:sfx
let syncname = "texSyncMathZone".a:sfx
@@ -488,13 +494,11 @@ if !exists("g:tex_no_math")
\ ['\\backslash' , '\'] ,
\ ['\\downarrow' , '↓'] ,
\ ['\\Downarrow' , '⇓'] ,
\ ['\\langle' , '<'] ,
\ ['\\lbrace' , '['] ,
\ ['\\lceil' , '⌈'] ,
\ ['\\lfloor' , '⌊'] ,
\ ['\\lgroup' , '⌊'] ,
\ ['\\lmoustache' , '⎛'] ,
\ ['\\rangle' , '>'] ,
\ ['\\rbrace' , ']'] ,
\ ['\\rceil' , '⌉'] ,
\ ['\\rfloor' , '⌋'] ,
@@ -504,6 +508,15 @@ if !exists("g:tex_no_math")
\ ['\\Uparrow' , '↑'] ,
\ ['\\updownarrow', '↕'] ,
\ ['\\Updownarrow', '⇕']]
if &ambw == "double" || exists("g:tex_usedblwidth")
let s:texMathDelimList= s:texMathDelimList + [
\ ['\\langle' , '〈'] ,
\ ['\\rangle' , '〉'] ,
else
let s:texMathDelimList= s:texMathDelimList + [
\ ['\\langle' , '<'] ,
\ ['\\rangle' , '>']]
endif
syn match texMathDelim '\\[bB]igg\=[lr]' contained nextgroup=texMathDelimBad
for texmath in s:texMathDelimList
exe "syn match texMathDelim '\\\\[bB]igg\\=[lr]\\=".texmath[0]."' contained conceal cchar=".texmath[1]
@@ -674,6 +687,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['backslash' , ''],
\ ['barwedge' , '⊼'],
\ ['because' , '∵'],
\ ['beth' , 'ܒ'],
\ ['between' , '≬'],
\ ['bigcap' , '∩'],
\ ['bigcirc' , '○'],
@@ -693,6 +707,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['boxminus' , '⊟'],
\ ['boxplus' , '⊞'],
\ ['boxtimes' , '⊠'],
\ ['Box' , '☐'],
\ ['bullet' , '•'],
\ ['bumpeq' , '≏'],
\ ['Bumpeq' , '≎'],
@@ -742,6 +757,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['eqslantgtr' , '⪖'],
\ ['eqslantless' , '⪕'],
\ ['equiv' , '≡'],
\ ['eth' , 'ð'],
\ ['exists' , '∃'],
\ ['fallingdotseq' , '≒'],
\ ['flat' , '♭'],
@@ -751,6 +767,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['geq' , '≥'],
\ ['geqq' , '≧'],
\ ['gets' , '←'],
\ ['gimel' , 'ℷ'],
\ ['gg' , '⟫'],
\ ['gneqq' , '≩'],
\ ['gtrdot' , '⋗'],
@@ -761,13 +778,17 @@ if has("conceal") && &enc == 'utf-8'
\ ['heartsuit' , '♡'],
\ ['hookleftarrow' , '↩'],
\ ['hookrightarrow' , '↪'],
\ ['iff' , '⇔'],
\ ['iiint' , '∭'],
\ ['iint' , '∬'],
\ ['Im' , ''],
\ ['imath' , 'ɩ'],
\ ['implies' , '⇒'],
\ ['in' , '∈'],
\ ['infty' , '∞'],
\ ['int' , '∫'],
\ ['jmath' , '𝚥'],
\ ['land' , '∧'],
\ ['lceil' , '⌈'],
\ ['ldots' , '…'],
\ ['le' , '≤'],
@@ -794,6 +815,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['ll' , '≪'],
\ ['lmoustache' , '╭'],
\ ['lneqq' , '≨'],
\ ['lor' , ''],
\ ['ltimes' , '⋉'],
\ ['mapsto' , '↦'],
\ ['measuredangle' , '∡'],
@@ -820,6 +842,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['nless' , '≮'],
\ ['nmid' , '∤'],
\ ['notin' , '∉'],
\ ['nparallel' , '∦'],
\ ['nprec' , '⊀'],
\ ['nrightarrow' , '↛'],
\ ['nRightarrow' , '⇏'],
@@ -921,10 +944,12 @@ if has("conceal") && &enc == 'utf-8'
\ ['trianglerighteq', '⊵'],
\ ['twoheadleftarrow', '↞'],
\ ['twoheadrightarrow', '↠'],
\ ['ulcorner' , '⌜'],
\ ['uparrow' , '↑'],
\ ['Uparrow' , '⇑'],
\ ['updownarrow' , '↕'],
\ ['Updownarrow' , '⇕'],
\ ['urcorner' , '⌝'],
\ ['varnothing' , '∅'],
\ ['vartriangle' , '∆'],
\ ['vdash' , '⊢'],
@@ -940,6 +965,15 @@ if has("conceal") && &enc == 'utf-8'
" \ ['jmath' , 'X']
" \ ['uminus' , 'X']
" \ ['uplus' , 'X']
if &ambw == "double" || exists("g:tex_usedblwidth")
let s:texMathList= s:texMathList + [
\ ['right\\rangle' , '〉'],
\ ['left\\langle' , '〈']]
else
let s:texMathList= s:texMathList + [
\ ['right\\rangle' , '>'],
\ ['left\\langle' , '<']]
endif
for texmath in s:texMathList
if texmath[0] =~# '\w$'
exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
@@ -1262,13 +1296,13 @@ if !exists("skip_tex_syntax_inits")
if !exists("g:tex_no_error")
if !exists("g:tex_no_math")
hi def link texBadMath texError
hi def link texMathDelimBad texError
hi def link texMathDelimBad texError
hi def link texMathError texError
if !b:tex_stylish
hi def link texOnlyMath texError
hi def link texOnlyMath texError
endif
endif
hi def link texError Error
hi def link texError Error
endif
hi texBoldStyle gui=bold cterm=bold
@@ -1277,59 +1311,59 @@ if !exists("skip_tex_syntax_inits")
hi texItalBoldStyle gui=bold,italic cterm=bold,italic
hi def link texCite texRefZone
hi def link texDefCmd texDef
hi def link texDefName texDef
hi def link texDocType texCmdName
hi def link texDocTypeArgs texCmdArgs
hi def link texDefName texDef
hi def link texDocType texCmdName
hi def link texDocTypeArgs texCmdArgs
hi def link texInputFileOpt texCmdArgs
hi def link texInputCurlies texDelimiter
hi def link texLigature texSpecialChar
hi def link texLigature texSpecialChar
if !exists("g:tex_no_math")
hi def link texMathDelimSet1 texMathDelim
hi def link texMathDelimSet2 texMathDelim
hi def link texMathDelimKey texMathDelim
hi def link texMathMatcher texMath
hi def link texAccent texStatement
hi def link texAccent texStatement
hi def link texGreek texStatement
hi def link texSuperscript texStatement
hi def link texSubscript texStatement
hi def link texSubscript texStatement
hi def link texSuperscripts texSuperscript
hi def link texSubscripts texSubscript
hi def link texMathSymbol texStatement
hi def link texMathZoneV texMath
hi def link texMathZoneW texMath
hi def link texMathZoneX texMath
hi def link texMathZoneY texMath
hi def link texMathZoneV texMath
hi def link texMathZoneZ texMath
hi def link texMathSymbol texStatement
hi def link texMathZoneV texMath
hi def link texMathZoneW texMath
hi def link texMathZoneX texMath
hi def link texMathZoneY texMath
hi def link texMathZoneV texMath
hi def link texMathZoneZ texMath
endif
hi def link texBeginEnd texCmdName
hi def link texBeginEnd texCmdName
hi def link texBeginEndName texSection
hi def link texSpaceCode texStatement
hi def link texSpaceCode texStatement
hi def link texStyleStatement texStatement
hi def link texTypeSize texType
hi def link texTypeStyle texType
hi def link texTypeSize texType
hi def link texTypeStyle texType
" Basic TeX highlighting groups
hi def link texCmdArgs Number
hi def link texCmdName Statement
hi def link texComment Comment
hi def link texDef Statement
hi def link texDefParm Special
hi def link texDelimiter Delimiter
hi def link texCmdArgs Number
hi def link texCmdName Statement
hi def link texComment Comment
hi def link texDef Statement
hi def link texDefParm Special
hi def link texDelimiter Delimiter
hi def link texInput Special
hi def link texInputFile Special
hi def link texInputFile Special
hi def link texLength Number
hi def link texMath Special
hi def link texMathDelim Statement
hi def link texMathOper Operator
hi def link texMathDelim Statement
hi def link texMathOper Operator
hi def link texNewCmd Statement
hi def link texNewEnv Statement
hi def link texOption Number
hi def link texRefZone Special
hi def link texSection PreCondit
hi def link texRefZone Special
hi def link texSection PreCondit
hi def link texSpaceCodeChar Special
hi def link texSpecialChar SpecialChar
hi def link texStatement Statement
hi def link texSpecialChar SpecialChar
hi def link texStatement Statement
hi def link texString String
hi def link texTodo Todo
hi def link texType Type
+23 -21
View File
@@ -1,8 +1,9 @@
" Vim syntax file
" Language: Vim 7.4 script
" Language: Vim 8.0 script
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: September 06, 2016
" Version: 7.4-54
" Last Change: Jan 19, 2017
" Version: 8.0-02
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -18,12 +19,12 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2
syn keyword vimCommand contained a arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] cc cf[ile] changes cla[st] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea el[se] endt[ry] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] isp[lit] keepa l[ist] lat lcl[ose] lex[pr] lgetb[uffer] lhi[story] lmapc[lear] loadk lop[en] lt[ag] lvimgrepa[dd] marks mk[exrc] mod[e] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tf[irst] tn[ext] ts[elect] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
syn keyword vimCommand contained ab argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] ccl[ose] cfdo chd[ir] cle[arjumps] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier elsei[f] endw[hile] files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] iuna[bbrev] keepalt la[st] later lcs lf[ile] lgete[xpr] ll lne[xt] loadkeymap lp[revious] lua lw[indow] mat[ch] mks[ession] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] to[pleft] tu[nmenu] unh[ide] v vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
syn keyword vimCommand contained abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cd cfir[st] che[ckpath] clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] j[oin] keepj[umps] lad[dexpr] lb[uffer] lcscope lfdo lgr[ep] lla[st] lnew[er] loc[kmarks] lpf[ile] luado m[ove] menut[ranslate] mksp[ell] mzf[ile] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tp[revious] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
syn keyword vimCommand contained abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] cdo cg[etfile] checkt[ime] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] ia in ju[mps] keepp[atterns] laddb[uffer] lbo[ttom] ld[o] lfir[st] lgrepa[dd] lli[st] lnf[ile] lockv[ar] lr[ewind] luafile ma[rk] mes mkv[imrc] n[ext] nmapc[lear] nore omapc[lear] pa[ckadd] perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tr[ewind] una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] ce[nter] cgetb[uffer] chi[story] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro k lN[ext] laddf[ile] lc[d] le[ft] lg[etfile] lh[elpgrep] lmak[e] lo[adview] lol[der] ls lv[imgrep] mak[e] messages mkvie[w] nb[key] noa nos[wapfile] on[ly] packl[oadall] po[p] pro ps[earch] ptl[ast] pu[t] pydo quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs te[aroff] tm[enu] try undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
syn keyword vimCommand contained ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g h[elp] hi if is[earch] kee[pmarks] lNf[ile] lan[guage] lch[dir] lefta[bove]
syn keyword vimCommand contained a argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] ccl[ose] cfdo chd[ir] cle[arjumps] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i in ju[mps] keepp[atterns] lad[dexpr] later lcl[ose] lefta[bove] lg[etfile] lh[elpgrep] lmak[e] lo[adview] lol[der] ls lv[imgrep] mak[e] messages mkvie[w] nb[key] noa nos[wapfile] on[ly] packl[oadall] po[p] pro ps[earch] ptl[ast] pu[t] pydo quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs te[aroff] tm[enu] try undoj[oin] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
syn keyword vimCommand contained abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cd cfir[st] che[ckpath] clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] iabc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcs lex[pr] lgetb[uffer] lhi[story] lmapc[lear] loadk lop[en] lt[ag] lvimgrepa[dd] marks mk[exrc] mod[e] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tf[irst] tn[ext] ts[elect] undol[ist] v vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
syn keyword vimCommand contained abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] cdo cg[etfile] checkt[ime] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] if is[earch] kee[pmarks] lNf[ile] laddf[ile] lbo[ttom] lcscope lf[ile] lgete[xpr] ll lne[xt] loadkeymap lp[revious] lua lw[indow] mat[ch] mks[ession] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] to[pleft] tu[nmenu] unh[ide] ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] ce[nter] cgetb[uffer] chi[story] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echon endfo[r] exu[sage] fin[d] foldc[lose] g h[elp] hi ij[ump] isp[lit] keepa l[ist] lan[guage] lc[d] ld[o] lfdo lgr[ep] lla[st] lnew[er] loc[kmarks] lpf[ile] luado m[ove] menut[ranslate] mksp[ell] mzf[ile] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tp[revious] u[ndo] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
syn keyword vimCommand contained ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] el[se] endt[ry] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] il[ist] iuna[bbrev] keepalt la[st] lat lch[dir] le[ft] lfir[st] lgrepa[dd] lli[st] lnf[ile] lockv[ar] lr[ewind] luafile ma[rk] mes mkv[imrc] n[ext] nmapc[lear] nore omapc[lear] pa[ckadd] perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tr[ewind] una[bbreviate] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
syn keyword vimCommand contained arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] cc cf[ile] changes cla[st] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea elsei[f] endw[hile] files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] imapc[lear] j[oin] keepj[umps]
syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained DiffOrig Man N[ext] P[rint] S TOhtml XMLent XMLns
@@ -48,15 +49,15 @@ syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautoc
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs
" termcap codes (which can also be set) {{{2
syn keyword vimOption contained t_8b t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RB t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR
syn keyword vimOption contained t_8f t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EI
syn match vimOption contained "t_%1"
syn keyword vimOption contained t_8b t_AB t_AL t_CV t_Co t_DL t_F1 t_F3 t_F5 t_F7 t_F9 t_IS t_K1 t_K3 t_K4 t_K5 t_K6 t_K7 t_K8 t_K9 t_KA t_KB t_KC t_KD t_KE t_KF t_KG t_KH t_KI t_KJ t_KK t_KL t_RB t_RI t_RV t_SI t_SR t_Sb t_Sf t_WP t_WS t_ZH t_ZR t_al t_bc t_cd t_ce t_cl t_cm t_cs t_da t_db t_dl t_fs t_k1 t_k2 t_k3 t_k4 t_k5 t_k6 t_k7 t_k8 t_k9 t_kB t_kD t_kI t_kN t_kP t_kb t_kd t_ke t_kh t_kl t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_se t_so t_sr t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_xn t_xs
syn keyword vimOption contained t_8f t_AF t_CS t_Ce t_Cs t_EI t_F2 t_F4 t_F6 t_F8 t_IE
syn match vimOption contained "t_#2"
syn match vimOption contained "t_#4"
syn match vimOption contained "t_@7"
syn match vimOption contained "t_*7"
syn match vimOption contained "t_&8"
syn match vimOption contained "t_%1"
syn match vimOption contained "t_%i"
syn match vimOption contained "t_&8"
syn match vimOption contained "t_*7"
syn match vimOption contained "t_@7"
syn match vimOption contained "t_k;"
" unsupported settings: some were supported by vi but don't do anything in vim {{{2
@@ -76,10 +77,10 @@ syn match vimHLGroup contained "Conceal"
syn case match
" Function Names {{{2
syn keyword vimFuncName contained abs append argv assert_fails assert_notequal atan2 buflisted bufwinid byteidxcomp char2nr ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlID index inputrestore invert items job_start js_decode json_encode libcall line2byte log map match matcharg matchlist max mode nr2char perleval printf pyeval reltime remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strdisplaywidth stridx strpart strwidth synconcealed synIDtrans systemlist tabpagewinnr tan test_alloc_fail test_garbagecollect_now test_null_job test_null_string timer_pause timer_stopall tr undofile values wildmenumode win_findbuf winheight winline winrestview wordcount
syn keyword vimFuncName contained acos argc asin assert_false assert_notmatch browse bufloaded bufwinnr call ch_close ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimefloat remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strcharpart strftime string strridx submatch synID synstack tabpagebuflist tagfiles tanh test_autochdir test_null_channel test_null_list test_settime timer_start tolower trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview writefile
syn keyword vimFuncName contained add argidx assert_equal assert_inrange assert_true browsedir bufname byte2line ceil ch_close_in ch_getjob ch_open ch_sendraw clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchar getcmdpos getcurpos getfsize getloclist getqflist gettabvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode len line localtime luaeval mapcheck matchaddpos matchend matchstrpos mkdir nextnonblank pathshorten prevnonblank py3eval readfile reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setline setpos settabvar sha256 simplify sort spellsuggest str2float strchars strgetchar strlen strtrans substitute synIDattr system tabpagenr taglist tempname test_disable_char_avail test_null_dict test_null_partial timer_info timer_stop toupper type uniq visualmode wincol win_gotoid win_id2win winrestcmd winwidth xor
syn keyword vimFuncName contained and arglistid assert_exception assert_match atan bufexists bufnr byteidx changenr ch_evalexpr ch_info ch_read ch_setoptions col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getcharmod getcmdtype getcwd getftime getmatches getreg gettabwinvar getwinvar has histadd hlexists indent inputlist insert isnan job_setoptions join
syn keyword vimFuncName contained abs append argv assert_fails assert_notequal atan2 buflisted bufwinid byteidxcomp ch_close_in ch_getjob ch_open ch_sendraw char2nr complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlexists index inputrestore invert items job_start js_decode json_encode libcall line2byte log map match matcharg matchlist max mode nr2char perleval printf pyeval reltime remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strdisplaywidth stridx strpart strwidth synID synconcealed systemlist tabpagewinnr tan test_alloc_fail test_garbagecollect_now test_null_job test_null_string timer_pause timer_stopall tr undofile values wildmenumode win_gotoid winbufnr winline winrestview wordcount
syn keyword vimFuncName contained acos argc asin assert_false assert_notmatch browse bufloaded bufwinnr call ch_evalexpr ch_info ch_read ch_setoptions cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimefloat remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strcharpart strftime string strridx submatch synIDattr synstack tabpagebuflist tagfiles tanh test_autochdir test_null_channel test_null_list test_settime timer_start tolower trunc undotree virtcol win_findbuf win_id2tabwin wincol winnr winsaveview writefile
syn keyword vimFuncName contained add argidx assert_equal assert_inrange assert_true browsedir bufname byte2line ceil ch_evalraw ch_log ch_readraw ch_status clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchar getcmdpos getcurpos getfsize getloclist getqflist gettabvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode len line localtime luaeval mapcheck matchaddpos matchend matchstrpos mkdir nextnonblank pathshorten prevnonblank py3eval readfile reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setline setpos settabvar sha256 simplify sort spellsuggest str2float strchars strgetchar strlen strtrans substitute synIDtrans system tabpagenr taglist tempname test_disable_char_avail test_null_dict test_null_partial timer_info timer_stop toupper type uniq visualmode win_getid win_id2win winheight winrestcmd winwidth xor
syn keyword vimFuncName contained and arglistid assert_exception assert_match atan bufexists bufnr byteidx ch_close ch_getbufnr ch_logfile ch_sendexpr changenr col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getcharmod getcmdtype getcwd getftime getmatches getreg gettabwinvar getwinvar has histadd hlID indent inputlist insert isnan job_setoptions join
"--- syntax here and above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1
@@ -163,6 +164,7 @@ endif
syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "\<0[xX]\x\+"
syn match vimNumber "\<0[bB][01]\+"
syn match vimNumber "\%(^\|[^a-zA-Z]\)\zs#\x\{6}"
" All vimCommands are contained by vimIsCommands. {{{2
@@ -224,7 +226,7 @@ endif
" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
" =========
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
@@ -498,7 +500,7 @@ syn cluster vimFuncBodyList add=vimSynType
syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion
syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
if has("conceal")
syn match vimSynMtchOpt contained "\<cchar=" nextgroup=vimSynMtchCchar
syn match vimSynMtchCchar contained "\S"
+10 -10
View File
@@ -61,8 +61,8 @@ NOTE : Les touches fl
Ceci quitte l'éditeur SANS enregistrer les changements que vous avez
faits.
3. Lorsque l'invite du shell vous sera présentée, tapez la commande qui
vous a mené dans ce tutoriel. Cela pourrait être : vimtutor <Entrée>
3. Revenez ici en tapant la commande qui vous a mené à ce tutoriel.
Cela pourrait être : vimtutor <Entrée>
4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes
1 à 3 pour sortir puis rentrer dans l'éditeur.
@@ -123,7 +123,7 @@ NOTE : En avan
Leçon 1.5 : ÉDITION DE TEXTE - AJOUTER
** Appuyez A pour ajouter du text. **
** Appuyez A pour ajouter du texte. **
1. Déplacez le curseur sur la première ligne ci-dessous marquée --->.
Peu importe sur quel caractère se trouve le curseur sur cette ligne.
@@ -154,7 +154,7 @@ NOTE : En avan
!! NOTE : Lisez toute la leçon avant d'exécuter les instructions ci-dessous !!
1. Sortez de ce tutoriel comme vous l'avez fait dans la Leçon 1.2 : :q!
Ou, si vous avez accès à un autre terminal, exécutez y les actions
Ou, si vous avez accès à un autre terminal, exécutez-y les actions
qui suivent.
2. À l'invite du shell, tapez cette commande : vim tutor <Entrée>
@@ -574,7 +574,7 @@ NOTE : Quand la recherche atteint la fin du fichier, elle reprend au d
2. Puis tapez le caractère % .
3. Le curseur se déplacera sur la parenthèse out crochet correspondant.
3. Le curseur se déplacera sur la parenthèse ou crochet correspondant.
4. Tapez % pour replacer le curseur sur la parenthèse ou crochet
correspondant.
@@ -704,7 +704,7 @@ NOTE : Si vous quittez Vim et le red
3. Appuyez : . En bas de l'écran :'<,'> va apparaître.
4. Tapez w TEST , où TEST est un nom de fichier qui n'existe pas.
Vérifiez que vous voyez :'<,'>w TEST avant de d'appuyer sur <Entrée>.
Vérifiez que vous voyez :'<,'>w TEST avant d'appuyer sur <Entrée>.
5. Vim va enregistrer les lignes sélectionnées dans le fichier TEST.
Utilisez :!dir ou :!ls pour le voir. Ne l'effacez pas encore !
@@ -854,17 +854,17 @@ NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
5. Tapez p pour coller le texte. Puis tapez : un second <Échap> .
6. Utilisez le mode Visuel pour sélectionner "élément", copiez-le avec y ,
déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte
déplacez-vous à la fin de la ligne suivante avec j$ et collez le texte
à cet endroit avec p .
---> a) ceci est le premier élément.
b)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Leçon 6.4 : RÉGLAGE DES OPTIONS
Leçon 6.5 : RÉGLAGE DES OPTIONS
** Réglons une option afin que la recherche et la substitution ignore la
** Réglons une option afin que la recherche et la substitution ignorent la
casse des caractères. **
1. Recherchez 'ignore' en tapant : /ignore <Entrée>
@@ -1034,5 +1034,5 @@ NOTE : Le compl
Dernières mises à jour par Dominique Pellé.
E-mail : dominique.pelle@gmail.com
Last Change : 2016 Jul 02
Last Change : 2017 Jan 16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+10 -10
View File
@@ -61,8 +61,8 @@ NOTE : Les touches fléchées devraient également fonctionner. Mais en utilisan
Ceci quitte l'éditeur SANS enregistrer les changements que vous avez
faits.
3. Lorsque l'invite du shell vous sera présentée, tapez la commande qui
vous a mené dans ce tutoriel. Cela pourrait être : vimtutor <Entrée>
3. Revenez ici en tapant la commande qui vous a mené à ce tutoriel.
Cela pourrait être : vimtutor <Entrée>
4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes
1 à 3 pour sortir puis rentrer dans l'éditeur.
@@ -123,7 +123,7 @@ NOTE : En avançant dans ce cours, n'essayez pas de mémoriser, apprenez par
Leçon 1.5 : ÉDITION DE TEXTE - AJOUTER
** Appuyez A pour ajouter du text. **
** Appuyez A pour ajouter du texte. **
1. Déplacez le curseur sur la première ligne ci-dessous marquée --->.
Peu importe sur quel caractère se trouve le curseur sur cette ligne.
@@ -154,7 +154,7 @@ NOTE : En avançant dans ce cours, n'essayez pas de mémoriser, apprenez par
!! NOTE : Lisez toute la leçon avant d'exécuter les instructions ci-dessous !!
1. Sortez de ce tutoriel comme vous l'avez fait dans la Leçon 1.2 : :q!
Ou, si vous avez accès à un autre terminal, exécutez y les actions
Ou, si vous avez accès à un autre terminal, exécutez-y les actions
qui suivent.
2. À l'invite du shell, tapez cette commande : vim tutor <Entrée>
@@ -574,7 +574,7 @@ NOTE : Quand la recherche atteint la fin du fichier, elle reprend au début
2. Puis tapez le caractère % .
3. Le curseur se déplacera sur la parenthèse out crochet correspondant.
3. Le curseur se déplacera sur la parenthèse ou crochet correspondant.
4. Tapez % pour replacer le curseur sur la parenthèse ou crochet
correspondant.
@@ -704,7 +704,7 @@ NOTE : Si vous quittez Vim et le redémarrez de nouveau avec le fichier TEST,
3. Appuyez : . En bas de l'écran :'<,'> va apparaître.
4. Tapez w TEST , où TEST est un nom de fichier qui n'existe pas.
Vérifiez que vous voyez :'<,'>w TEST avant de d'appuyer sur <Entrée>.
Vérifiez que vous voyez :'<,'>w TEST avant d'appuyer sur <Entrée>.
5. Vim va enregistrer les lignes sélectionnées dans le fichier TEST.
Utilisez :!dir ou :!ls pour le voir. Ne l'effacez pas encore !
@@ -854,17 +854,17 @@ NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
5. Tapez p pour coller le texte. Puis tapez : un second <Échap> .
6. Utilisez le mode Visuel pour sélectionner "élément", copiez-le avec y ,
déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte
déplacez-vous à la fin de la ligne suivante avec j$ et collez le texte
à cet endroit avec p .
---> a) ceci est le premier élément.
b)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Leçon 6.4 : RÉGLAGE DES OPTIONS
Leçon 6.5 : RÉGLAGE DES OPTIONS
** Réglons une option afin que la recherche et la substitution ignore la
** Réglons une option afin que la recherche et la substitution ignorent la
casse des caractères. **
1. Recherchez 'ignore' en tapant : /ignore <Entrée>
@@ -1034,5 +1034,5 @@ NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
Dernières mises à jour par Dominique Pellé.
E-mail : dominique.pelle@gmail.com
Last Change : 2016 Jul 02
Last Change : 2017 Jan 16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+1 -1
View File
@@ -3,7 +3,7 @@
# DEBUG=yes Build debug version (for VC7 and maybe later)
#
TARGETOS=BOTH
TARGETOS=WINNT
!ifndef APPVER
APPVER=5.0
!endif
+2 -2
View File
@@ -221,8 +221,8 @@ diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
The file `configure.ac' is used to create `configure' by a program
called `autoconf'. You only need `configure.ac' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:

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