Compare commits

..

216 Commits

Author SHA1 Message Date
Bjorn Winckler a914f7d905 Snapshot 63 2011-11-10 17:56:33 +01:00
Bjorn Winckler a2efcc4e0e Merge branch 'vim'
Conflicts:
	src/option.c
2011-11-10 17:42:44 +01:00
Bram Moolenaar acbc24e693 Added tag v7-3-353 for changeset 12bb368fef2c 2011-10-26 23:48:21 +02:00
Bram Moolenaar 23bfbcb797 updated for version 7.3.353
Problem:    Missing part of the urxvt patch.
Solution:   Add the change in term.c
2011-10-26 23:48:20 +02:00
Bram Moolenaar e32a8f0ace Added tag v7-3-352 for changeset ca65249eb34b 2011-10-26 22:02:15 +02:00
Bram Moolenaar a9a480862c updated for version 7.3.352
Problem:    When completing methods dict functions and script-local functions
	    get in the way.
Solution:   Sort function names starting with "<" to the end. (Yasuhiro
	    Matsumoto)
2011-10-26 22:02:15 +02:00
Bram Moolenaar 2c85ee38a5 Added tag v7-3-351 for changeset ff69efc4bc55 2011-10-26 17:04:29 +02:00
Bram Moolenaar c66e217f33 updated for version 7.3.351
Problem:    Text formatting uses start of insert position when it should not.
	    (Peter Wagenaar)
Solution:   Do not use Insstart when intentionally formatting.
2011-10-26 17:04:29 +02:00
Bram Moolenaar 78997dd9ef Added tag v7-3-350 for changeset 07956eab189c 2011-10-26 13:19:27 +02:00
Bram Moolenaar 7f936da91c updated for version 7.3.350
Problem:    Block of code after ":lua << EOF" may not work. (Paul Isambert)
Solution:   Recognize the ":lua" command, skip to EOF.
2011-10-26 13:19:27 +02:00
Bram Moolenaar 5fe4915e30 Added tag v7-3-349 for changeset 075acc2dccaa 2011-10-26 11:44:19 +02:00
Bram Moolenaar 9e50ec2e90 updated for version 7.3.349
Problem:    When running out of memory during startup trying to open a
	    swapfile will loop forever.
Solution:   Let findswapname() set dirp to NULL if out of memory.
2011-10-26 11:44:18 +02:00
Bram Moolenaar 69f47b4a0c Added tag v7-3-348 for changeset 4d4a328f199e 2011-10-26 11:41:00 +02:00
Bram Moolenaar 26a7f66364 updated for version 7.3.348
Problem:    "call range(1, 947948399)" causes a crash. (ZyX)
Solution:   Avoid a loop in the out of memory message.
2011-10-26 11:41:00 +02:00
Bram Moolenaar a1024b19ea Added tag v7-3-347 for changeset 72528c5eb87e 2011-10-26 11:36:25 +02:00
Bram Moolenaar cf6ae55400 updated for version 7.3.347
Problem:    When dropping text from a browser on Vim it receives HTML even
	    though "html" is excluded from 'clipboard'. (Andrei Avk)
Solution:   Fix the condition for TARGET_HTML.
2011-10-26 11:36:25 +02:00
Bram Moolenaar b2ebf7c277 Updated runtime files. 2011-10-20 22:22:38 +02:00
Bram Moolenaar c72a3758a9 Added tag v7-3-346 for changeset af76a61a7f79 2011-10-20 21:58:35 +02:00
Bram Moolenaar 960c755f2f updated for version 7.3.346
Problem:    It's hard to test netbeans commands.
Solution:   Process netbeans commands after :sleep. (Xavier de Gaye)
2011-10-20 21:58:34 +02:00
Bram Moolenaar de489086dd Added tag v7-3-345 for changeset 35f098371af6 2011-10-20 21:41:09 +02:00
Bram Moolenaar c901b52c08 updated for version 7.3.345 2011-10-20 21:41:09 +02:00
Bram Moolenaar f1be92c811 Added tag v7-3-344 for changeset 7ba2f171cdac 2011-10-20 21:28:01 +02:00
Bram Moolenaar 6eb9338757 updated for version 7.3.344
Problem:    Problem with GUI startup related to XInitThreads.
Solution:   Use read() and write() instead of fputs() and fread(). (James
	    Vega)
2011-10-20 21:28:01 +02:00
Bram Moolenaar 13510d9153 Added tag v7-3-343 for changeset 98a05814f1b4 2011-10-20 21:09:35 +02:00
Bram Moolenaar d77012934a updated for version 7.3.343
Problem:    No mouse support for urxvt.
Solution:   Implement urxvt mouse support, also for > 252 columns.  (Yiding
	    Jia)
2011-10-20 21:09:35 +02:00
Bram Moolenaar 2d7f1279c8 Added tag v7-3-342 for changeset 314d9368069e 2011-10-20 18:24:22 +02:00
Bram Moolenaar dca6f03f01 updated for version 7.3.342
Problem:    Code not in Vim style.
Solution:   Fix the style. (Elias Diem)
2011-10-20 18:24:22 +02:00
Bram Moolenaar 53ec8158c3 Added tag v7-3-341 for changeset 6963603ec6dc 2011-10-20 18:17:42 +02:00
Bram Moolenaar 065efdcb23 updated for version 7.3.341
Problem:    Local help files are only listed in help.txt, not in translated
	    help files.
Solution:   Also find translated help files. (Yasuhiro Matsumoto)
2011-10-20 18:17:42 +02:00
Bram Moolenaar 672ee036f6 Added tag v7-3-340 for changeset 49b08c9b9f5b 2011-10-20 18:12:32 +02:00
Bram Moolenaar 89b6b3bf5f updated for version 7.3.340
Problem:    When 'verbosefile' is set ftplugof.vim can give an error.
Solution:   Only remove filetypeplugin autocommands when they exist. (Yasuhiro
	    Matsumoto)
2011-10-20 18:12:32 +02:00
Bram Moolenaar e6df0dd645 Added tag v7-3-339 for changeset b5a2b4c0c1ca 2011-10-20 16:35:35 +02:00
Bram Moolenaar a88e58f6e2 updated for version 7.3.339
Problem:    "make shadow" doesn't link all test files.
Solution:   Add a line in Makefile and Filelist.
2011-10-20 16:35:35 +02:00
Bram Moolenaar 9bce6ce276 Added tag v7-3-338 for changeset 7919a3d7333b 2011-10-12 22:02:14 +02:00
Bram Moolenaar 64bbf477d0 updated for version 7.3.338
Problem:    Using getchar() in an expression mapping doesn't work well.
Solution:   Don't save and restore the typeahead. (James Vega)
2011-10-12 22:02:14 +02:00
Bram Moolenaar 84cf08594c Added tag v7-3-337 for changeset 176bfa951339 2011-10-12 21:04:20 +02:00
Bram Moolenaar 40546c34f4 updated for version 7.3.337
Problem:    Screen doesn't update after resizing the xterm until a character
	    is typed.
Solution:   When the select call is interrupted check do_resize. (Taylor
	    Hedberg)
2011-10-12 21:04:20 +02:00
Bram Moolenaar fdbce8b6e7 Added tag v7-3-336 for changeset 52526aec4afb 2011-10-12 19:53:52 +02:00
Bram Moolenaar a162ddc680 updated for version 7.3.336
Problem:    When a tags file specifies an encoding different from 'enc' it
	    may hang and using a pattern doesn't work.
Solution:   Convert the whole line.  Continue reading the header after the
	    SORT tag.  Add test83. (Yukihiro Nakadaira)
2011-10-12 19:53:52 +02:00
Bram Moolenaar cebc2eb063 Added tag v7-3-335 for changeset dc3f90a73fb3 2011-10-12 16:57:13 +02:00
Bram Moolenaar 3a032a4b39 updated for version 7.3.335
Problem:    When 'imdisable' is reset from an autocommand in Insert mode it
	    doesn't take effect.
Solution:   Call im_set_active() in Insert mode. (Taro Muraoka)
2011-10-12 16:57:13 +02:00
Bram Moolenaar 8ce9a8785f Added tag v7-3-334 for changeset fdc723632298 2011-10-12 14:11:46 +02:00
Bram Moolenaar 8fa56bd765 updated for version 7.3.334
Problem:    Latest MingW about XSUBPP referencing itself. (Gongqian Li)
Solution:   Rename the first use to XSUBPPTRY.
2011-10-12 14:11:45 +02:00
Bjorn Winckler 54b2b3cf5e Don't set GCC_VERSION
This effectively reverts a previous commit which set this flag to "4.2"
causing problems with compilation when gcc-4.2 was not installed.

When GCC_VERSION is not set Xcode is supposed to use /usr/bin/gcc which
is presumably the same gcc version that the Vim Makefile uses.
2011-10-07 16:11:29 +02:00
Bjorn Winckler 2e43d084ee Merge branch 'vim' 2011-10-07 15:53:18 +02:00
Bram Moolenaar 7d66bb5e2a Added tag v7-3-333 for changeset 992b24149a9e 2011-10-04 21:22:44 +02:00
Bram Moolenaar 05c65fc201 updated for version 7.3.333
Problem:    Using "." to repeat a Visual delete counts the size in bytes, not
	    characters.  (Connor Lane Smith)
Solution:   Store the virtual column numbers instead of byte positions.
2011-10-04 21:22:44 +02:00
Bram Moolenaar 9784a17de9 Added tag v7-3-332 for changeset 0ecfe54a273f 2011-10-04 18:03:47 +02:00
Bram Moolenaar b491089907 updated for version 7.3.332
Problem:    Indent after "public:" is not increased in C++ code. (Lech Lorens)
Solution:   Check for namespace after the regular checks. (partly by Martin
	    Gieseking)
2011-10-04 18:03:47 +02:00
Bram Moolenaar e9dd1852ea Added tag v7-3-331 for changeset 4b8c614c1c91 2011-10-04 17:00:21 +02:00
Bram Moolenaar 6e71ef1f6d updated for version 7.3.331
Problem:    "vit" selects wrong text when a tag name starts with the same text
	    as an outer tag name. (Ben Fritz)
Solution:   Add "\>" to the pattern to check for word boundary.
2011-10-04 17:00:20 +02:00
Bram Moolenaar b802b6e322 Added tag v7-3-330 for changeset abb03be99d66 2011-10-04 16:43:53 +02:00
Bram Moolenaar d10420e2db updated for version 7.3.330
Problem:    When longjmp() is invoked if the X server gives an error the state
	    is not properly restored.
Solution:   Reset vgetc_busy. (Yukihiro Nakadaira)
2011-10-04 16:43:53 +02:00
Bram Moolenaar 8312d799a4 Add files aaded by patch 7.3.326. 2011-10-03 22:12:32 +02:00
Bram Moolenaar c388368a14 Added tag v7-3-329 for changeset ec901ddc84d5 2011-09-30 18:35:57 +02:00
Bram Moolenaar 5f19dd4ae5 updated for version 7.3.329
Problem:    When skipping over code from ":for" to ":endfor" get an error for
	    calling a dict function. (Yasuhiro Matsumoto)
Solution:   Ignore errors when skipping over :call command.
2011-09-30 18:35:57 +02:00
Bram Moolenaar c19bca2199 Added tag v7-3-328 for changeset 5b53cea62e5d 2011-09-30 17:46:21 +02:00
Bram Moolenaar 31c1fcc6b2 updated for version 7.3.328
Problem:    When command line wraps the cursor may be displayed wrong when
	    there are multi-byte characters.
Solution:   Position the cursor before drawing the text. (Yasuhiro Matsumoto)
2011-09-30 17:46:21 +02:00
Bram Moolenaar de67d3e257 Added tag v7-3-327 for changeset 9028c70adafd 2011-09-30 17:30:31 +02:00
Bram Moolenaar 3d4ff9d210 updated for version 7.3.327
Problem:    When jumping to a help tag a closed fold doesn't open.
Solution:   Save and restore KeyTyped. (Yasuhiro Matsumoto)
2011-09-30 17:30:31 +02:00
Bram Moolenaar 075318e8e0 Added tag v7-3-326 for changeset d3758064ff99 2011-09-30 16:56:02 +02:00
Bram Moolenaar 014cde7bfa updated for version 7.3.326
Problem:    MingW 4.6 no longer supports the -mno-cygwin option.
Solution:   Split the Cygwin and MingW makefiles. (Matsushita Shougo)
2011-09-30 16:56:02 +02:00
Bram Moolenaar c140e21beb Added tag v7-3-325 for changeset 8aca621c0091 2011-09-30 16:39:48 +02:00
Bram Moolenaar dc75ffcab3 updated for version 7.3.325
Problem:    A duplicated function argument gives an internal error.
Solution:   Give a proper error message. (based on patch by Tyru)
2011-09-30 16:39:48 +02:00
Bram Moolenaar f8a94ed692 Added tag v7-3-324 for changeset f04619f1fc16 2011-09-30 16:23:32 +02:00
Bram Moolenaar ac88a5268a updated for version 7.3.324
Problem:    Completion for ":compiler" shows color scheme names.
Solution:   Fix the directory name. (James Vega)
2011-09-30 16:23:32 +02:00
Bram Moolenaar 176870f93a Added tag v7-3-323 for changeset 3bdb646fc8a4 2011-09-30 14:44:54 +02:00
Bram Moolenaar 9d405f05b6 updated for version 7.3.323
Problem:    The default 'errorformat' does not ignore some "included from"
	    lines.
Solution:   Add a few more patterns. (Ben Boeckel)
2011-09-30 14:44:54 +02:00
Bjorn Winckler 4fe710d0f9 Merge branch 'vim'
Conflicts:
	runtime/syntax/vim.vim
2011-09-22 17:37:28 +02:00
Bram Moolenaar 05413de810 Added tag v7-3-322 for changeset 38a7fd904347 2011-09-21 20:09:42 +02:00
Bram Moolenaar 019001d897 updated for version 7.3.322
Problem:    #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
Solution:   Check the MSC version and 64 bit flags. (Sergiu Dotenco)
2011-09-21 20:09:42 +02:00
Bram Moolenaar 10384920c9 Added tag v7-3-321 for changeset fc0804089b29 2011-09-21 19:50:05 +02:00
Bram Moolenaar a4ef2c0ee1 updated for version 7.3.321
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
2011-09-21 19:50:05 +02:00
Bram Moolenaar 456ae485bf Updated a few runtime files. 2011-09-21 19:22:10 +02:00
Bram Moolenaar 922ae9bb15 Added tag v7-3-320 for changeset 738ea87c1964 2011-09-21 19:10:46 +02:00
Bram Moolenaar ce41316357 updated for version 7.3.320
Problem:    When a 0xa0 character is in a sourced file the error message for
	    unrecognized command does not show the problem.
Solution:   Display 0xa0 as <a0>.
2011-09-21 19:10:46 +02:00
Bram Moolenaar 7b66728522 Added tag v7-3-319 for changeset dc7f2f975920 2011-09-21 18:23:05 +02:00
Bram Moolenaar 9484026b5f updated for version 7.3.319
Problem:    Redobuff doesn't always include changes of the completion leader.
Solution:   Insert backspaces as needed. (idea by Taro Muraoka)
2011-09-21 18:23:05 +02:00
Bram Moolenaar 43dc546e05 Added tag v7-3-318 for changeset d68f20a86a3e 2011-09-21 17:33:53 +02:00
Bram Moolenaar 811ca11441 updated for version 7.3.318
Problem:    "C" on the last line deletes that line if it's blank.
Solution:   Only delete the last line for a delete operation. (James Vega)
2011-09-21 17:33:53 +02:00
Bram Moolenaar ff682f8240 Added tag v7-3-317 for changeset 92a181a1cec3 2011-09-21 17:15:39 +02:00
Bram Moolenaar 21743328d5 updated for version 7.3.317
Problem:    Calling debug.debug() in Lua may cause Vim to hang.
Solution:   Add a better debug method. (Rob Hoelz, Luis Carvalho)
2011-09-21 17:15:39 +02:00
Bram Moolenaar c972a5f2f6 Added tag v7-3-316 for changeset 33c140e4664d 2011-09-21 13:40:17 +02:00
Bram Moolenaar c9cd0464d2 updated for version 7.3.316
Problem:    Crash when 'colorcolumn' is set and closing buffer.
Solution:   Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
2011-09-21 13:40:17 +02:00
Bjorn Winckler 095821635f Regenerate configure scripts 2011-09-20 18:34:14 +02:00
Nikola Knezevic bea5e3c0d8 Fix a building problem with perl 5.14.1 on Mac OS X
When building on a Mac OS X with perl 5.14.1 set as the system default,
generating if_perl.c fails with a message about undefined method:

Undefined subroutine &ExtUtils::ParseXS::errors called at [snip] line 41.

The problem occurs because Makefile uses xsubpp from perl's lib
directory. Problem goes away if Makefile uses xsubpp from site_lib. This
patch enables detecting the site_lib location, and using that xsubpp.
2011-09-20 18:29:36 +02:00
Tim Oxley 907403411b Noted --help param to reduce initial confusion 2011-09-19 20:27:42 +02:00
Bjorn Winckler b959dabf31 Snapshot 62 2011-09-18 16:02:14 +02:00
Bjorn Winckler fb682aa63b Add preference to disable native full-screen 2011-09-18 13:41:28 +02:00
Bjorn Winckler 0df4812a34 Merge branch 'vim'
Conflicts:
	src/gui.c
2011-09-15 12:21:16 +02:00
Bram Moolenaar 33238357a4 Added tag v7-3-315 for changeset 3ecf9e91d88a 2011-09-14 19:04:40 +02:00
Bram Moolenaar a7433858d2 updated for version 7.3.315
Problem:    Opening a window before forking causes problems for GTK.
Solution:   Fork first, create the window in the child and report back to the
	    parent process whether it worked.  If successful the parent exits,
	    if unsuccessful the child exits and the parent continues in the
	    terminal. (Tim Starling)
2011-09-14 19:04:39 +02:00
Bram Moolenaar feab21d38e Added tag v7-3-314 for changeset 6ab1b45cc95e 2011-09-14 19:01:42 +02:00
Bram Moolenaar 38f22f9c19 updated for version 7.3.314
Problem:    Missing parenthesis.
Solution:   Add it. (Benjamin R. Haskell)
2011-09-14 19:01:42 +02:00
Bram Moolenaar 49ee1c0362 Added tag v7-3-313 for changeset dc60200a16b2 2011-09-14 18:59:40 +02:00
Bram Moolenaar becaaaead9 updated for version 7.3.313
Problem:    One more warning when compiling with dynamic Python 3.
Solution:   Change PySliceObject to PyObject.
2011-09-14 18:59:39 +02:00
Bram Moolenaar f7a78fd1d6 Updated runtime files. 2011-09-14 17:55:08 +02:00
Bram Moolenaar 13cb4e6055 Added tag v7-3-312 for changeset 0ed06069aaf3 2011-09-14 17:50:14 +02:00
Bram Moolenaar 406ac0a6d3 updated for version 7.3.312
Problem:    Can't compile with tiny features.
Solution:   Add #ifdef around win_valid().
2011-09-14 17:50:14 +02:00
Bram Moolenaar e7c4730ea7 Added tag v7-3-311 for changeset 2cbde6bcc623 2011-09-14 16:52:09 +02:00
Bram Moolenaar d07211ba92 updated for version 7.3.311
Problem:    Complete function isn't called when the leader changed.
Solution:   Allow the complete function to return a dictionary with a flag
	    that indicates ins_compl_restart() is to be called when the leader
	    changes. (Taro Muraoka)
2011-09-14 16:52:09 +02:00
Bram Moolenaar 2c634a61c1 Added tag v7-3-310 for changeset 51ce22ba89d1 2011-09-14 16:05:15 +02:00
Bram Moolenaar ce2d6ca8a0 updated for version 7.3.310
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
2011-09-14 16:05:15 +02:00
Bram Moolenaar 0949e7f3cb Added tag v7-3-309 for changeset 6eae1b42c668 2011-09-14 15:41:58 +02:00
Bram Moolenaar 020e3b0da8 updated for version 7.3.309
Problem:    Warnings for pointer types.
Solution:   Change PySliceObject to PyObject.
2011-09-14 15:41:58 +02:00
Bram Moolenaar 9a0bd38bac Added tag v7-3-308 for changeset 61c5e1527bd8 2011-09-14 15:39:29 +02:00
Bram Moolenaar b7bb0bdc20 updated for version 7.3.308
Problem:    Writing to 'verbosefile' has problems, e.g. for :highlight.
Solution:   Do not use a separate verbose_write() function but write with the
	    same code that does redirecting. (Yasuhiro Matsumoto)
2011-09-14 15:39:29 +02:00
Bram Moolenaar 3011c698b3 Added tag v7-3-307 for changeset 880b7dd69331 2011-09-14 15:01:58 +02:00
Bram Moolenaar a1213ba4c8 updated for version 7.3.307
Problem:    Python 3 doesn't support slice assignment.
Solution:   Implement slices. (Brett Overesch, Roland Puntaier)
2011-09-14 15:01:58 +02:00
Bram Moolenaar 324460bd91 Added tag v7-3-306 for changeset 0787bb5f387b 2011-09-14 14:43:25 +02:00
Bram Moolenaar 69f06a5f47 updated for version 7.3.306
Problem:    When closing a window there is a chance that deleting a scrollbar
	    triggers a GUI resize, which uses the window while it is not in a
	    valid state.
Solution:   Set the buffer pointer to NULL to be able to detect the invalid
	    situation.  Fix a few places that used the buffer pointer
	    incorrectly.
2011-09-14 14:43:25 +02:00
Bram Moolenaar a21d5cd3fb Added tag v7-3-305 for changeset 0e06c025f66f 2011-09-14 14:33:51 +02:00
Bram Moolenaar 349aba9d06 updated for version 7.3.305
Problem:    Auto-loading a function while editing the command line causes
	    scrolling up the display.
Solution:   Don't set msg_scroll when defining a function and the user is not
	    typing. (Yasuhiro Matsumoto)
2011-09-14 14:33:51 +02:00
Bram Moolenaar 0390598346 Added tag v7-3-304 for changeset b3a523ced6bd 2011-09-14 10:49:46 +02:00
Bram Moolenaar 393701519f updated for version 7.3.304
Problem:    Strawberry Perl doesn't work on MS-Windows.
Solution:   Use xsubpp if needed. (Yasuhiro Matsumoto)
2011-09-14 10:49:46 +02:00
Bjorn Winckler 439e2de8e4 Merge branch 'vim'
Conflicts:
	src/auto/configure
	src/if_ruby.c
	src/os_unix.c
2011-09-11 10:39:17 +02:00
Bram Moolenaar d080627083 Added tag v7-3-303 for changeset d832d642f520 2011-09-08 23:24:14 +02:00
Bram Moolenaar 16fa70308c updated for version 7.3.303
Problem:    Compilation error.
Solution:   Correct return type from int to pid_t. (Danek Duvall)
2011-09-08 23:24:14 +02:00
Bram Moolenaar 770d08e1d9 Added tag v7-3-302 for changeset 61b2f2662310 2011-09-08 23:22:40 +02:00
Bram Moolenaar 6aae53fbbc updated for version 7.3.302
Problem:    Test 19 fails without 'smartindent' and +eval.
Solution:   Don't use ":exe". Source small.vim.
2011-09-08 23:22:40 +02:00
Bram Moolenaar 79f63a43c8 Added tag v7-3-301 for changeset 4a7097153089 2011-09-07 19:58:10 +02:00
Bram Moolenaar 81a7633180 updated for version 7.3.301
Problem:    When 'smartindent' and 'copyindent' are set a Tab is used even
	    though 'expandtab' is set.
Solution:   Do not insert Tabs. Add a test. (Christian Brabandt)
2011-09-07 19:58:09 +02:00
Bram Moolenaar 4df94e4d83 Added tag v7-3-300 for changeset 2665b456ee59 2011-09-07 19:30:21 +02:00
Bram Moolenaar 8645ea43d0 updated for version 7.3.300
Problem:    Python doesn't parse multi-byte argument correctly.
Solution:   Use "t" instead of "s". (lilydjwg)
2011-09-07 19:30:21 +02:00
Bram Moolenaar ca1a04794c Added tag v7-3-299 for changeset eb4972982bfe 2011-09-07 19:09:01 +02:00
Bram Moolenaar 51e31e9713 updated for version 7.3.299
Problem:    Source code not in Vim style.
Solution:   Adjust the style. (Elias Diem)
2011-09-07 19:09:01 +02:00
Bram Moolenaar 994b93a73d Added tag v7-3-298 for changeset 43b1d031e302 2011-09-07 18:58:30 +02:00
Bram Moolenaar dc6e5f1009 updated for version 7.3.298
Problem:    Built-in colors are different from rgb.txt.
Solution:   Adjust the color values. (Benjamin Haskell)
2011-09-07 18:58:29 +02:00
Bram Moolenaar 9d6da2621a Added tag v7-3-297 for changeset 22550986c713 2011-09-07 18:47:23 +02:00
Bram Moolenaar 65c62e1036 updated for version 7.3.297
Problem:    Can't load Perl 5.14 dynamically.
Solution:   Add code in #ifdefs. (Charles Cooper)
2011-09-07 18:47:23 +02:00
Bram Moolenaar 92011ac52a Added tag v7-3-296 for changeset c19c15a9e9bf 2011-09-07 15:04:31 +02:00
Bram Moolenaar 9d2bfce7a5 updated for version 7.3.296
Problem:    When writing to an external command a zombie process may be left
	    behind.
Solution:   Wait on the process. (James Vega)
2011-09-07 15:04:31 +02:00
Bram Moolenaar 2e1ef7f670 Added tag v7-3-295 for changeset 0d8494c05113 2011-09-07 14:06:47 +02:00
Bram Moolenaar 5507ad9c4e updated for version 7.3.295
Problem:    When filtering text with an external command Vim may not read all
	    the output.
Solution:   When select() is interrupted loop and try again. (James Vega)
2011-09-07 14:06:47 +02:00
Bram Moolenaar 5b43e33aa6 Added tag v7-3-294 for changeset dbd73fe939cf 2011-09-05 20:13:42 +02:00
Bram Moolenaar b5711505da updated for version 7.3.294
Problem:    Patch 289 causes more problems than it solves.
Solution:   Rever the patch untill a better solution is found.
2011-09-05 20:13:42 +02:00
Bjorn Winckler 54eddb6057 Plug memory leak in PSMTabBarControl 2011-09-04 17:33:39 +02:00
Bram Moolenaar f17a7b3224 Added tag v7-3-293 for changeset 6cd0d6413a2e 2011-09-02 14:18:20 +02:00
Bram Moolenaar a26ab7715d updated for version 7.3.293
Problem:    MSVC compiler has a problem with non-ASCII characters.
Solution:   Avoid non-ASCII characters. (Hong Xu)
2011-09-02 14:18:20 +02:00
Bram Moolenaar 71f29fbc2d Added tag v7-3-292 for changeset b6af1c5dd22f 2011-09-02 14:07:36 +02:00
Bram Moolenaar 8b7e080a84 updated for version 7.3.292
Problem:    Crash when using fold markers and selecting a visual block that
	    includes a folded line and goes to end of line. (Sam Lidder)
Solution:   Check for the column to be MAXCOL. (James Vega)
2011-09-02 14:07:36 +02:00
Bram Moolenaar 90af7efedf Added tag v7-3-291 for changeset e8ee4b4ebf41 2011-09-02 12:27:25 +02:00
Bram Moolenaar f959b996e8 updated for version 7.3.291
Problem:    Configure doesn't work properly with Python3.
Solution:   Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
	    Puntaier)
2011-09-02 12:27:25 +02:00
Bram Moolenaar e48974af8c Added tag v7-3-290 for changeset df33dba4e553 2011-09-02 11:56:20 +02:00
Bram Moolenaar 2de2bfa2d0 updated for version 7.3.290
Problem:    When a BufWriteCmd autocommand resets 'modified' this doesn't
	    change older buffer states to be marked as 'modified' like
	    ":write" does.  (Yukihiro Nakadaira)
Solution:   When the BufWriteCmd resets 'modified' then adjust the undo
	    information like ":write" does.
2011-09-02 11:56:20 +02:00
Bjorn Winckler 5cfb54ead4 Change full-screen maximization heuristic
Only maximize full-screen window on certain events, such as toggling tab
line or scrollbars.  This modifies the behavior introduced in commit
88fc234df7 which could cause problems upon
entering full-screen.
2011-08-29 21:45:33 +02:00
Bjorn Winckler b7571e20e7 Fix window dimension autosave regression
Also compensate for tabline if it is visible by adding another row to
the autosaved rows.
2011-08-29 19:56:03 +02:00
Bjorn Winckler 27933401af Restore hard-coded <Backspace> binding
Binding <Backspace> in the sytem gvimrc caused problems with plugins, so
restore the hard-coded binding instead.
2011-08-29 18:41:40 +02:00
Bjorn Winckler afc4e4ce4a Revert "Map delete key to delete visual selection"
This reverts commit ec80934916.
2011-08-29 18:36:54 +02:00
Bram Moolenaar 6a9a8f9b19 Added tag v7-3-289 for changeset 44ffd0a8abcd 2011-08-28 16:02:28 +02:00
Bram Moolenaar e5c652eca9 updated for version 7.3.289
Problem:    Complete function isn't called when the leader changed.
Solution:   Call ins_compl_restart() when the leader changed.  (Taro Muraoka)
2011-08-28 16:02:28 +02:00
Bram Moolenaar 3ab9c1384f Added tag v7-3-288 for changeset e4f3fa1a474e 2011-08-28 16:00:19 +02:00
Bram Moolenaar 054b67b2b8 updated for version 7.3.288
Problem:    has('python') may give an error message for not being able to load
	    the library after using python3.
Solution:   Only give the error when the verbose argument is true.
2011-08-28 16:00:19 +02:00
Björn Winckler bf9c575456 Merge pull request #18 from splhack/fix_im_underline 2011-08-28 01:03:14 -07:00
Bram Moolenaar a4f92ceca3 Added tag v7-3-287 for changeset 07bc2ccfe555 2011-08-27 15:10:04 +02:00
Bram Moolenaar 970f752598 updated for version 7.3.287
Problem:    Can't compile with MSVC and tiny options.
Solution:   Move variables and #ifdefs. (Sergey Khorev)
2011-08-27 15:10:04 +02:00
Björn Winckler 08147f3210 Merge pull request #19 from budrick/master
Handle spaces in output directories
2011-08-26 10:58:19 -07:00
Bram Moolenaar 63eb54becf Added tag v7-3-286 for changeset 3f822e54765c 2011-08-26 16:13:00 +02:00
Bram Moolenaar 716195299b updated for version 7.3.286
Problem:    Crash when using "zd" on a large number of folds. (Sam King)
Solution:   Recompute pointer after reallocating array.  Move fewer entries
	    when making room.
2011-08-26 16:13:00 +02:00
Matt Cegielka eadead4e05 Handle spaces in output directories 2011-08-24 11:29:43 +01:00
Bram Moolenaar dae8dd82a1 Added tag v7-3-285 for changeset 6018c815e120 2011-08-19 22:29:02 +02:00
Bram Moolenaar 36083d9981 updated for version 7.3.285
Problem:    Mapping <Char-123> no longer works.
Solution:   Properly check for "char-".  Add a test for it.
2011-08-19 22:29:02 +02:00
Bram Moolenaar 24c79f8574 Added tag v7-3-284 for changeset 27d43855b723 2011-08-17 20:33:23 +02:00
Bram Moolenaar a73d723be8 updated for version 7.3.284
Problem:    The str2special() function doesn't handle multi-byte characters
	    properly.
Solution:   Recognize multi-byte characters. (partly by Vladimir Vichniakov)
2011-08-17 20:33:22 +02:00
Bram Moolenaar bc4b1d2485 Added tag v7-3-283 for changeset 47b6d37b6012 2011-08-17 17:18:20 +02:00
Bram Moolenaar 9404aab7e5 updated for version 7.3.283
Problem:    An expression mapping with a multi-byte character containing a
	    0x80 byte gets messed up. (ZyX)
Solution:   Unescape the expression before evaluating it (Yukihiro Nakadaira)
2011-08-17 17:18:20 +02:00
Bram Moolenaar f226625aef Added tag v7-3-282 for changeset 92167bb91c95 2011-08-17 16:25:48 +02:00
Bram Moolenaar f55f73cb30 updated for version 7.3.282
Problem:    When using input() and :echo in a loop the displayed text is
	    incorrect. (Benjamin Fritz)
Solution:   Only restore the cursor position when there is a command line.
	    (Ben Schmidt)
2011-08-17 16:25:48 +02:00
Bram Moolenaar f4bbe1b24d Added tag v7-3-281 for changeset 45ead8a0bede 2011-08-17 15:23:23 +02:00
Bram Moolenaar 252510d3df updated for version 7.3.281
Problem:    After using "expand('%:8')" the buffer name is changed.
Solution:   Make a copy of the file name before shortening it.
2011-08-17 15:23:23 +02:00
Bram Moolenaar 50a0c80dd7 Added tag v7-3-280 for changeset 58bba69b3371 2011-08-10 18:36:54 +02:00
Bram Moolenaar 9f368a11b2 updated for version 7.3.280
Problem:    ":lmake" does not update the quickfix window title.
Solution:   Update the title. (Lech Lorens)
2011-08-10 18:36:54 +02:00
Bram Moolenaar a4fc0ce9eb Added tag v7-3-279 for changeset 342b17608967 2011-08-10 17:44:45 +02:00
Bram Moolenaar ee5543b7de updated for version 7.3.279
Problem:    With GTK, when gvim is full-screen and a tab is opened and using a
	    specific monitor configuration the window is too big.
Solution:   Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
2011-08-10 17:44:45 +02:00
Bram Moolenaar aa016a5bfe Added tag v7-3-278 for changeset 6622f28b7e87 2011-08-10 17:25:52 +02:00
Bram Moolenaar 4cc118bb3d updated for version 7.3.278
Problem:    Passing the file name to open in VisVim doesn't work.
Solution:   Adjust the index and check for end of buffer. (Jiri Sedlak)
2011-08-10 17:25:51 +02:00
Bram Moolenaar b26f0fb957 Added tag v7-3-277 for changeset e5b17a5f6516 2011-08-10 17:08:03 +02:00
Bram Moolenaar 4f487cb1a0 updated for version 7.3.277
Problem:    MS-Windows: some characters do not show in dialogs.
Solution:   Use the wide methods when available. (Yanwei Jia)
2011-08-10 17:08:03 +02:00
Bram Moolenaar 9b6d1038ba Added tag v7-3-276 for changeset 37a54a85413e 2011-08-10 16:31:24 +02:00
Bram Moolenaar a44e66647e updated for version 7.3.276
Problem:    GvimExt sets $LANG in the wrong way.
Solution:   Save the environment and use it for gvim. (Yasuhiro Matsumoto)
2011-08-10 16:31:23 +02:00
Bram Moolenaar 2fc242e6cc Added tag v7-3-275 for changeset 125c7bf52271 2011-08-10 15:56:27 +02:00
Bram Moolenaar af81f033f9 updated for version 7.3.275
Problem:    MS-Windows: When using a black background some screen updates
	    cause the window to flicker.
Solution:   Add WS_CLIPCHILDREN to CreateWindow().  (René Aguirre)
2011-08-10 15:56:27 +02:00
Bram Moolenaar e1cd0dfcd0 Added tag v7-3-274 for changeset 1bb6776fa8c4 2011-08-10 14:32:39 +02:00
Bram Moolenaar 5ebe10cd56 updated for version 7.3.274
Problem:    With concealed characters tabs do not have the right size.
Solution:   Use VCOL_HLC instead of vcol. (Eiichi Sato)
2011-08-10 14:32:39 +02:00
Bram Moolenaar eae54ba84f Added tag v7-3-273 for changeset 7d4e5e31d8c1 2011-08-10 13:21:46 +02:00
Bram Moolenaar 025402ead3 updated for version 7.3.273
Problem:    A BOM in an error file is seen as text. (Aleksey Baibarin)
Solution:   Remove the BOM from the text before evaluating. (idea by Christian
	    Brabandt)
2011-08-10 13:21:46 +02:00
Bram Moolenaar 69761f00d2 Added tag v7-3-272 for changeset 02f5abca10ae 2011-08-10 12:38:08 +02:00
Bram Moolenaar b6f9d20ef4 updated for version 7.3.272
Problem:    ":put =list" does not add an empty line for a trailing empty
	    item.
Solution:   Add a trailing NL when turning a list into a string.
2011-08-10 12:38:08 +02:00
Bram Moolenaar 994b223919 Added tag v7-3-271 for changeset 32a52f06f33b 2011-08-10 12:19:04 +02:00
Bram Moolenaar 6fb1ea8d7f updated for version 7.3.271
Problem:    Code not following Vim coding style.
Solution:   Fix the style. (Elias Diem)
2011-08-10 12:19:04 +02:00
Bram Moolenaar c58a35b454 Added tag v7-3-270 for changeset b9182da84c7e 2011-08-10 12:11:01 +02:00
Bram Moolenaar 8b4e70c31d updated for version 7.3.270
Problem:    Illegal memory access.
Solution:   Swap conditions. (Dominique Pelle)
2011-08-10 12:11:01 +02:00
Kazuki Sakamoto 674896651e Fix to draw the underline for inline IM inputs
imdisable should not affect drawing the underline for inline IM inputs.
2011-08-06 06:15:39 +09:00
Bram Moolenaar 57747fd2bf Added tag v7-3-269 for changeset 7f4f5ca70dbd 2011-08-04 22:59:28 +02:00
Bram Moolenaar 1e1f876bc1 updated for version 7.3.269
Problem:    'shellcmdflag' only works with one flag.
Solution:   Split into multiple arguments. (Gary Johnson)
2011-08-04 22:59:28 +02:00
Bram Moolenaar e1fae7284e Added tag v7-3-268 for changeset ee17ee712512 2011-08-04 19:36:52 +02:00
Bram Moolenaar b35ffe84c6 updated for version 7.3.268
Problem:    Vim freezes when executing an external command with zsh.
Solution:   Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
2011-08-04 19:36:52 +02:00
Bram Moolenaar c2d6883594 Added tag v7-3-267 for changeset ad404f2a4bfa 2011-08-04 19:34:59 +02:00
Bram Moolenaar a810a2915f updated for version 7.3.267
Problem:    Ruby on Mac OS X 10.7 may crash.
Solution:   Avoid alloc(0). (Bjorn Winckler)
2011-08-04 19:34:59 +02:00
Bjorn Winckler 490a242c79 Hide tabline separator in full-screen 2011-07-30 15:54:26 +02:00
Bjorn Winckler 88fc234df7 Ensure window stays maximized in full-screen
For example, if the tabline or a scrollbar is hidden then the window
will resize so that it stays maximized (in full-screen).  (A side-effect
is that ":set co=.." does nothing in full-screen if 'fuopt' includes
"maxhorz".)
2011-07-28 17:58:26 +02:00
Bjorn Winckler 95b3957d73 Avoid compilation warning on OS X 10.4 - 10.6 2011-07-27 22:19:22 +02:00
Björn Winckler 31d7d95535 Merge pull request #17 from seanfarley/master
Fix capitalization typo in Xcode project
2011-07-27 12:50:06 -07:00
Sean Farley b68b47e81f Fixed typo in the project file when MMFullscreenWindow was renamed to MMFullScreenWindow 2011-07-27 14:39:55 -05:00
Bram Moolenaar ff09e61694 Added tag v7-3-266 for changeset 25be7c9dda54 2011-07-27 18:25:44 +02:00
Bram Moolenaar f33d8610ca updated for version 7.3.266
Problem:    In Gvim with iBus typing space in Insert mode doesn't work.
Solution:   Clear xim_expected_char after checking it.
2011-07-27 18:25:44 +02:00
Bram Moolenaar d7868fe396 Added tag v7-3-265 for changeset eff686fb8de6 2011-07-27 17:58:46 +02:00
Bram Moolenaar 4fbfd3b72d updated for version 7.3.265
Problem:    When storing a pattern in search history there is no proper check
	    for the separator character.
Solution:   Pass the separator character to in_history(). (Muraoka Taro)
2011-07-27 17:58:46 +02:00
Bram Moolenaar e3c8fb2cc5 Added tag v7-3-264 for changeset aa40bddeea9a 2011-07-27 17:31:47 +02:00
Bram Moolenaar 67755f963f updated for version 7.3.264
Problem:    When the current directory name contains wildcard characters, such
	    as "foo[with]bar", the tags file can't be found.  (Jeremy
	    Erickson)
Solution:   When searching for matching files also match without expanding
	    wildcards.  This is a bit of a hack.
2011-07-27 17:31:47 +02:00
Bram Moolenaar 2dcdd2a153 Added tag v7-3-263 for changeset a56259157c93 2011-07-27 14:15:46 +02:00
Bram Moolenaar 2999bcc962 updated for version 7.3.263
Problem:    Perl and Tcl have a few code style problems.
Solution:   Clean it up.  (Elias Diem)
2011-07-27 14:15:46 +02:00
Bram Moolenaar bb18281bd3 Added tag v7-3-262 for changeset 847733973bfd 2011-07-27 14:09:09 +02:00
Bram Moolenaar a0aba21f7a updated for version 7.3.262
Problem:    Photon code style doesn't match Vim style.
Solution:   Clean up some of it.  (Elias Diem)
2011-07-27 14:09:09 +02:00
Bram Moolenaar ef6d40a9c4 Added tag v7-3-261 for changeset 410d42e3d4da 2011-07-27 13:59:21 +02:00
Bram Moolenaar dc9a599bb4 updated for version 7.3.261
Problem:    G++ error message errornously recognized as error.
Solution:   Ignore "In file included from" line also when it ends in a colon.
	    (Fernando Castillo)
2011-07-27 13:59:21 +02:00
162 changed files with 5559 additions and 3070 deletions
+93
View File
@@ -1595,3 +1595,96 @@ c296c225736e4489706c62c95752a0c4788be1d3 v7-3-256
bdc3335bd72eea207b28fcf8af90a73c855c8847 v7-3-258
59130cd78dfc73bd04f22d201b8f7c0772d98e79 v7-3-259
cb4682b959098e486977eb4b5969c9eb07d2798e v7-3-260
410d42e3d4da09284394456186143d595e9b2efc v7-3-261
847733973bfdd716bfafc364a4102e76f88e7fe8 v7-3-262
a56259157c935b4e78e9f5f4dfb1436e3461eefb v7-3-263
aa40bddeea9a44c6c6b4ffa32c1ef373df437a16 v7-3-264
eff686fb8de66a26367f5e6430d34729f1a0e336 v7-3-265
25be7c9dda549e4cfa1eb57937dc2b38b3d1e997 v7-3-266
ad404f2a4bfa5374e97f29335f41b7ef34cd6bfa v7-3-267
ee17ee712512451a54046d6bcd3ddb9f70cb5cdf v7-3-268
7f4f5ca70dbde4e31c2de494b982bfb9bd71ed75 v7-3-269
b9182da84c7eeda221e5219ef4361cca201b3b41 v7-3-270
32a52f06f33b9e2d4817330099b410c1fcf64db2 v7-3-271
02f5abca10aee570d5a9cf00928ffaa663daba66 v7-3-272
7d4e5e31d8c10c767cdf774a2b13aedd2f95f096 v7-3-273
1bb6776fa8c445e0b3f9dd2ed14fdf2a56f5873e v7-3-274
125c7bf52271461dfbf46cc33317eadc67aaf742 v7-3-275
37a54a85413eae68932233e64a0ab88c99c9d811 v7-3-276
e5b17a5f651696ad4c523a21822692115d371250 v7-3-277
6622f28b7e87a93de6f1520945d1c5d2a1fc0dab v7-3-278
342b176089678e86cde3e1afac4aaaa1e5153f99 v7-3-279
58bba69b3371d9ff02b27fe24f044e229c8aa99a v7-3-280
45ead8a0bedeade57c320d72e9f710a703e61cf0 v7-3-281
92167bb91c95410a0550ff8c94370307bb7d9d80 v7-3-282
47b6d37b60122f45eb147106b8da1322c1cdbc60 v7-3-283
27d43855b72312500e6fc2122e167a579a1f35f2 v7-3-284
6018c815e1205e7db9328fe6ed91b26b514465f3 v7-3-285
3f822e54765c54a1112a953e3c37bb60185fd51c v7-3-286
07bc2ccfe5559035e785f22851365b3a31dec67e v7-3-287
e4f3fa1a474e677dce486ea07ee31270f92b2b4a v7-3-288
44ffd0a8abcdba441216514cb711649eb1169876 v7-3-289
df33dba4e553f8fa27ba467042f16315c613a00d v7-3-290
e8ee4b4ebf41abb199ea9a9e9cc38f9b0c2f7192 v7-3-291
b6af1c5dd22f08db2b9e52ae763f193ba82965ad v7-3-292
6cd0d6413a2e03687aca8138b2843f1f2aac5b84 v7-3-293
dbd73fe939cf772a8b07c19230e5ee60aa0cfcc7 v7-3-294
0d8494c051131b6470fe8af67646e235bc63fcf7 v7-3-295
c19c15a9e9bf2914b25748c0544936e84a5c77c0 v7-3-296
22550986c713ce5f37f069f0c8f99a54dc4a421b v7-3-297
43b1d031e3028248abcbd5099841d3aafda7f68d v7-3-298
eb4972982bfea006ead5b461f319744d5ecd58f5 v7-3-299
2665b456ee59652c7b590dff0fa522ce337e0f16 v7-3-300
4a70971530899e32058207cae683a69e7b8f85dc v7-3-301
61b2f26623104f75850b1568bf61663597fe7fb0 v7-3-302
d832d642f520d426f111b35102450617922547d3 v7-3-303
b3a523ced6bd1173e4c17611559c173094830d43 v7-3-304
0e06c025f66ffdfea20c8b73a995d23448b8dbfb v7-3-305
0787bb5f387b79842d5c9353ae3541a992d1b9f1 v7-3-306
880b7dd69331d1fefaf2d8735b118b39d546280c v7-3-307
61c5e1527bd857e724f8396c89d0687126390675 v7-3-308
6eae1b42c6684f3fcdb4d6cdbfb7dc1942d9b364 v7-3-309
51ce22ba89d11505e18aa585fbd7dcbb22097f9a v7-3-310
2cbde6bcc6238f41506f87bf31ff7d90f632345a v7-3-311
0ed06069aaf32dbb2aa3827b23280b0028954ce7 v7-3-312
dc60200a16b21c3e4157708bb825ea61b9e5bdc1 v7-3-313
6ab1b45cc95ed56105b2130dc9938bb8344ff903 v7-3-314
3ecf9e91d88acdb5eaaf93cc15a18914b60e0eb3 v7-3-315
33c140e4664d102c34ec3ec5a17318f75cf475d7 v7-3-316
92a181a1cec3fec52cde1b3d71f628a3a2dc53c6 v7-3-317
d68f20a86a3ec75d927955be5d31983b6c37eb1d v7-3-318
dc7f2f9759208aa07bf136deca661fd080a1ee68 v7-3-319
738ea87c196431c452bd499c5a9849597ac938de v7-3-320
fc0804089b2945bfe683f9bc9ee0238b8c64a46e v7-3-321
38a7fd9043474dfb464c338ffd7f393361f5a6c1 v7-3-322
3bdb646fc8a46ee5a5fe474dccdce098680d24d6 v7-3-323
f04619f1fc1663f4ab05798c410e4fa35a9dd863 v7-3-324
8aca621c00910556d4f52bd650d6841d6059d6ec v7-3-325
d3758064ff9946d23aeccc9d2340686766647b84 v7-3-326
9028c70adafd109ab294102f74dfb5005a20bbfb v7-3-327
5b53cea62e5d1be2a1a36ce685c15f99bb8a41ba v7-3-328
ec901ddc84d5c66c5d0c1dcca093584598487f9f v7-3-329
abb03be99d661455fd3790cd25355459448fa432 v7-3-330
4b8c614c1c914ce5d712368a75dbfea9b7e44e17 v7-3-331
0ecfe54a273f6bc440684aca4ebe5926a2dfc6e2 v7-3-332
992b24149a9ee0d6f417e40a7462891a9f62ec6a v7-3-333
fdc72363229865cc6fd2da9db66f1d6e683b87c0 v7-3-334
dc3f90a73fb375092ea9d870ae48ff31b31a56ab v7-3-335
52526aec4afb220a1271e9a645194c42d3b2a538 v7-3-336
176bfa951339a0a36366cbc8def41ae75f5034e0 v7-3-337
7919a3d7333b99cece7d1a2657c89c18de78bf82 v7-3-338
b5a2b4c0c1cac1758990ea449bc1c552522f39a9 v7-3-339
49b08c9b9f5b72d930a1c02f00aa4128dc58532d v7-3-340
6963603ec6dc2b47da9a7e951b2d0b3e024535eb v7-3-341
314d9368069ec0458631ca150c202e7f724ad6d3 v7-3-342
98a05814f1b466c87611b810eeafe8e7d9c581b6 v7-3-343
7ba2f171cdaca18571b5e73dece426411c4f124a v7-3-344
35f098371af699aa7e614a6397a068119b54cabf v7-3-345
af76a61a7f79ccd3bcf64e15c73f2a3ea0eb77da v7-3-346
72528c5eb87ea315a7c1a48f7734d1717c28820f v7-3-347
4d4a328f199e4020457b4bf8f077622966bb3563 v7-3-348
075acc2dccaa621998ccb1d671a987090367d485 v7-3-349
07956eab189c0c776b79bc42235833d234480559 v7-3-350
ff69efc4bc55d83b5f2bb68aeede1d921e8f1036 v7-3-351
ca65249eb34bc62e82d54f74e14271be7f7f8a44 v7-3-352
12bb368fef2c8c5478f0f8905aac381a56a75fe0 v7-3-353
+2
View File
@@ -81,6 +81,7 @@ SRC_ALL = \
src/testdir/test[0-9]*.ok \
src/testdir/test49.vim \
src/testdir/test60.vim \
src/testdir/test83-tags? \
src/proto.h \
src/proto/blowfish.pro \
src/proto/buffer.pro \
@@ -313,6 +314,7 @@ SRC_DOS = \
src/xxd/Make_bc5.mak \
src/xxd/Make_cyg.mak \
src/xxd/Make_djg.mak \
src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \
nsis/gvim.nsi \
nsis/README.txt \
+2 -1
View File
@@ -12,7 +12,8 @@ install in (usually `/Applications').
How to build and install
========================
Run `./configure` in the `src/` directory with the flags you want, e.g.:
Run `./configure` in the `src/` directory with the flags you want (call
`./configure --help` to see a list of flags) e.g.:
$ cd src
$ ./configure --with-features=huge \
+457 -223
View File
File diff suppressed because it is too large Load Diff
+27 -5
View File
@@ -1,7 +1,7 @@
" vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
" Date: Apr 02, 2011
" Version: 33
" Date: Sep 26, 2011
" Version: 34
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
@@ -14,7 +14,7 @@
if &cp || exists("g:loaded_vimball")
finish
endif
let g:loaded_vimball = "v33"
let g:loaded_vimball = "v34"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of vimball needs vim 7.2"
@@ -220,7 +220,16 @@ fun! vimball#Vimball(really,...)
" go to vim plugin home
if a:0 > 0
" let user specify the directory where the vimball is to be unpacked.
" If, however, the user did not specify a full path, set the home to be below the current directory
let home= expand(a:1)
if has("win32") || has("win95") || has("win64") || has("win16")
if home !~ '^\a:[/\\]'
let home= getcwd().'/'.a:1
endif
elseif home !~ '^/'
let home= getcwd().'/'.a:1
endif
else
let home= vimball#VimballHome()
endif
@@ -282,11 +291,14 @@ fun! vimball#Vimball(really,...)
" call Decho("making directories if they don't exist yet (fname<".fname.">)")
let fnamebuf= substitute(fname,'\\','/','g')
let dirpath = substitute(home,'\\','/','g')
" call Decho("init: fnamebuf<".fnamebuf.">")
" call Decho("init: dirpath <".dirpath.">")
while fnamebuf =~ '/'
let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','')
let dirpath = dirname
let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
" call Decho("dirname<".dirname.">")
" call Decho("dirpath<".dirpath.">")
if !isdirectory(dirname)
" call Decho("making <".dirname.">")
if exists("g:vimball_mkdir")
@@ -569,9 +581,19 @@ endfun
fun! s:ChgDir(newdir)
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
if (has("win32") || has("win95") || has("win64") || has("win16"))
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
try
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(substitute(a:newdir,'/','\\','g')))
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
endtry
else
exe 'silent cd '.fnameescape(a:newdir)
try
exe 'silent cd '.fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(a:newdir))
exe 'silent cd '.fnameescape(a:newdir)
endtry
endif
" call Dret("ChgDir : curdir<".getcwd().">")
endfun
+5 -1
View File
@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.3. Last change: 2011 May 19
*autocmd.txt* For Vim version 7.3. Last change: 2011 Aug 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -448,6 +448,9 @@ BufWriteCmd Before writing the whole buffer to a file.
'modified' if successful, unless '+' is in
'cpo' and writing to another file |cpo-+|.
The buffer contents should not be changed.
When the command resets 'modified' the undo
information is adjusted to mark older undo
states as 'modified', like |:write| does.
|Cmd-event|
*BufWritePost*
BufWritePost After writing the whole buffer to a file
@@ -508,6 +511,7 @@ CursorMoved After the cursor was moved in Normal mode.
not expect or that is slow.
*CursorMovedI*
CursorMovedI After the cursor was moved in Insert mode.
Not triggered when the popup menu is visible.
Otherwise the same as CursorMoved.
*EncodingChanged*
EncodingChanged Fires off after the 'encoding' option has been
+3 -3
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2011 Jul 13
*eval.txt* For Vim version 7.3. Last change: 2011 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -39,7 +39,7 @@ done, the features in this document are not available. See |+eval| and
*E712*
There are six types of variables:
Number A 32 bit signed number. |expr-number| *Number*
Number A 32 or 64 bit signed number. |expr-number| *Number*
Examples: -123 0x10 0177
Float A floating point number. |floating-point-format| *Float*
@@ -6378,7 +6378,7 @@ last defined. Example: >
<
See |:verbose-cmd| for more information.
*E124* *E125*
*E124* *E125* *E853*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict]
Define a new function by the name {name}. The name
must be made of alphanumeric characters and '_', and
+10 -1
View File
@@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.3. Last change: 2010 Nov 03
*gui.txt* For Vim version 7.3. Last change: 2011 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -147,6 +147,15 @@ task bar with the 'guiheadroom' option.
If you are running the X Window System, you can get information about the
window Vim is running in with this command: >
:!xwininfo -id $WINDOWID
<
*gui-IME* *iBus*
Input methods for international characters in X that rely on the XIM
framework, most notably iBus, have been known to produce undesirable results
in gVim. These may include an inability to enter spaces, or long delays
between typing a character and it being recognized by the application.
One workaround that has been successful, for unknown reasons, is to prevent
gvim from forking into the background by starting it with the |-f| argument.
==============================================================================
2. Scrollbars *gui-scrollbars*
+4 -11
View File
@@ -1,4 +1,4 @@
*gui_mac.txt* For Vim version 7.3. Last change: 2011 Jul 26
*gui_mac.txt* For Vim version 7.3. Last change: 2010 Dec 28
VIM REFERENCE MANUAL by Bjorn Winckler
@@ -594,17 +594,10 @@ Alt-Up Move cursor one paragraph forward (see |alt-movement|).
Alt-Down Move cursor to the previous paragraph
(see |alt-movement|).
*delete-key* *macvim-<Backspace>*
Delete key Delete selection in visual mode. (This overrides the
default behavior of moving the cursor left.)
Note that the key labeled "delete" on a Mac keyboard
is known to Vim as <Backspace>.
*cmd-movement* *alt-movement*
The above mappings involving Cmd/Alt + arrow key (including the delete key)
are enabled by default in the system gvimrc file "$VIM/gvimrc". You can
disable all of these by adding the following lines to your "~/.vimrc" (not
.gvimrc) file: >
The above mappings involving Cmd/Alt + arrow key are enabled by default in the
system gvimrc file "$VIM/gvimrc". You can quickly disable all of these by
adding the following lines to your "~/.vimrc" (not .gvimrc) file: >
if has("gui_macvim")
let macvim_skip_cmd_opt_movement = 1
endif
+4 -1
View File
@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.3. Last change: 2010 Dec 19
*gui_w32.txt* For Vim version 7.3. Last change: 2011 Jul 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -137,6 +137,9 @@ options:
And if there already is a gvim running:
"Edit with existing gvim" -- edit the file with the running gvim
The "edit with existing Vim" entries can be disabled by adding an entry in the
registry under HKLM\Software\Vim\Gvim, named DisableEditWithExisting, and with
any value.
*install-registry*
You can add the "Edit with Vim" menu entry in an easy way by using the
"install.exe" program. It will add several registry entries for you.
+3 -1
View File
@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.3. Last change: 2010 Jul 20
*gui_x11.txt* For Vim version 7.3. Last change: 2011 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -61,6 +61,8 @@ launches the gui but doesn't fork (see |mvim|). However, doing |:gui| in an
already running vim will never fork in MacVim.
"gvim --nofork" does the same as "gvim -f".
*E851* *E852*
When starting the GUI fails Vim will try to continue running in the terminal.
If you want the GUI to run in the foreground always, include the 'f'
flag in 'guioptions'. |-f|. MacVim does not support this flag in
+2 -2
View File
@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.3. Last change: 2011 May 07
*if_pyth.txt* For Vim version 7.3. Last change: 2011 Aug 19
VIM REFERENCE MANUAL by Paul Moore
@@ -380,7 +380,7 @@ To work around such problems there are these options:
*has-python*
You can test what Python version is available with: >
if has('python')
echo 'there is Pyton 2.x'
echo 'there is Python 2.x'
elseif has('python3')
echo 'there is Python 3.x'
endif
+41 -4
View File
@@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.3. Last change: 2011 Jul 15
*indent.txt* For Vim version 7.3. Last change: 2011 Sep 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -132,8 +132,8 @@ The 'cinoptions' option sets how Vim performs indentation. The value after
the option character can be one of these (N is any number):
N indent N spaces
-N indent N spaces to the left
Ns N times 'shiftwidth spaces
-Ns N times 'shiftwidth spaces to the left
Ns N times 'shiftwidth' spaces
-Ns N times 'shiftwidth' spaces to the left
In the list below,
"N" represents a number of your choice (the number can be negative). When
@@ -432,7 +432,7 @@ The examples below assume a 'shiftwidth' of 4.
c3 c3
) && c4; ) && c4;
<
*cino-2*
*cino-w*
wN When in unclosed parentheses and N is non-zero and either
using "(0" or "u0", respectively, or using "U0" and the unclosed
parentheses is the first non-white character in its line, line
@@ -706,6 +706,43 @@ Indent for a continuation line: >
let g:pyindent_continue = '&sw * 2'
R *ft-r-indent*
Function arguments are aligned if they span for multiple lines. If you prefer
do not have the arguments of functions aligned, put in your |vimrc|:
>
let r_indent_align_args = 0
<
All lines beginning with a comment character, #, get the same indentation
level of the normal R code. Users of Emacs/ESS may be used to have lines
beginning with a single # indented in the 40th column, ## indented as R code,
and ### not indented. If you prefer that lines beginning with comment
characters are aligned as they are by Emacs/ESS, put in your |vimrc|:
>
let r_indent_ess_comments = 1
<
If you prefer that lines beginning with a single # are aligned at a column
different from the 40th one, you should set a new value to the variable
r_indent_comment_column, as in the example below:
>
let r_indent_comment_column = 30
<
Any code after a line that ends with "<-" is indented. Emacs/ESS does not
indent the code if it is a top level function. If you prefer that the
Vim-R-plugin behaves like Emacs/ESS in this regard, put in your |vimrc|:
>
let r_indent_ess_compatible = 1
<
Below is an example of indentation with and without this option enabled:
>
### r_indent_ess_compatible = 1 ### r_indent_ess_compatible = 0
foo <- foo <-
function(x) function(x)
{ {
paste(x) paste(x)
} }
<
SHELL *ft-sh-indent*
The amount of indent applied under various circumstances in a shell file can
+2 -2
View File
@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.3. Last change: 2011 Jan 04
*index.txt* For Vim version 7.3. Last change: 2011 Aug 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1261,7 +1261,7 @@ tag command action ~
|:k| :k set a mark
|:keepalt| :keepa[lt] following command keeps the alternate file
|:keepmarks| :kee[pmarks] following command keeps marks where they are
|:keepjumps| :keepj[jumps] following command keeps jumplist and marks
|:keepjumps| :keepj[umps] following command keeps jumplist and marks
|:lNext| :lN[ext] go to previous entry in location list
|:lNfile| :lNf[ile] go to last entry in previous file
|:list| :l[ist] print lines
+20 -4
View File
@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.3. Last change: 2010 Nov 10
*insert.txt* For Vim version 7.3. Last change: 2011 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1020,6 +1020,21 @@ On the second invocation the arguments are:
The function must return a List with the matching words. These matches
usually include the "a:base" text. When there are no matches return an empty
List.
In order to return more information than the matching words, return a Dict
that contains the List. The Dict can have these items:
words The List of matching words (mandatory).
refresh A string to control re-invocation of the function
(optional).
The only value currently recognized is "always", the
effect is that the function is called whenever the
leading text is changed.
Other items are ignored.
For example, the function can contain this: >
let matches = ... list of words ...
return {'words': matches, 'refresh': 'always'}
<
*complete-items*
Each list item can either be a string or a Dictionary. When it is a string it
is used as the completion. When it is a Dictionary it can contain these
@@ -1040,9 +1055,10 @@ items:
empty when non-zero this match will be added even when it is
an empty string
All of these except 'icase' must be a string. If an item does not meet these
requirements then an error message is given and further items in the list are
not used. You can mix string and Dictionary items in the returned list.
All of these except 'icase', 'dup' and 'empty' must be a string. If an item
does not meet these requirements then an error message is given and further
items in the list are not used. You can mix string and Dictionary items in
the returned list.
The "menu" item is used in the popup menu and may be truncated, thus it should
be relatively short. The "info" item can be longer, it will be displayed in
+12 -4
View File
@@ -1,4 +1,4 @@
*map.txt* For Vim version 7.3. Last change: 2011 Jun 13
*map.txt* For Vim version 7.3. Last change: 2011 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -228,7 +228,7 @@ text before the cursor and start omni completion when some condition is met.
For abbreviations |v:char| is set to the character that was typed to trigger
the abbreviation. You can use this to decide how to expand the {lhs}. You
you should not either insert or change the v:char.
should not either insert or change the v:char.
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
@@ -237,11 +237,18 @@ For this reason the following is blocked:
- Editing another buffer.
- The |:normal| command.
- Moving the cursor is allowed, but it is restored afterwards.
- You can use getchar(), but the existing typeahead isn't seen and new
typeahead is discarded.
If you want the mapping to do any of these let the returned characters do
that.
You can use getchar(), it consumes typeahead if there is any. E.g., if you
have these mappings: >
inoremap <expr> <C-L> nr2char(getchar())
inoremap <expr> <C-L>x "foo"
If you now type CTRL-L nothing happens yet, Vim needs the next character to
decide what mapping to use. If you type 'x' the second mapping is used and
"foo" is inserted. If you type 'a' the first mapping is used, getchar() gets
the 'a' and returns it.
Here is an example that inserts a list number that increases: >
let counter = 0
inoremap <expr> <C-L> ListItem()
@@ -544,6 +551,7 @@ construct can be used:
<Char-123> character 123
<Char-033> character 27
<Char-0x7f> character 127
<S-Char-114> character 114 ('r') shifted ('R')
This is useful to specify a (multi-byte) character in a 'keymap' file.
Upper and lowercase differences are ignored.
+3 -3
View File
@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.3. Last change: 2011 Jul 18
*mbyte.txt* For Vim version 7.3. Last change: 2011 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -797,8 +797,8 @@ is suitable for complex input, such as CJK.
number of Hira-gana characters are 76. So, first, we pre-input text as
pronounced in Hira-gana, second, we convert Hira-gana to Kanji or Kata-Kana,
if needed. There are some Kana-Kanji conversion server: jserver
(distributed with Wnn, see below) and canna. Canna could be found at:
ftp://ftp.nec.co.jp/pub/Canna/ (no longer works).
(distributed with Wnn, see below) and canna. Canna can be found at:
http://canna.sourceforge.jp/
There is a good input system: Wnn4.2. Wnn 4.2 contains,
xwnmo (|IM-server|)
+1 -3
View File
@@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.3. Last change: 2011 Jun 02
*motion.txt* For Vim version 7.3. Last change: 2011 Jul 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1017,8 +1017,6 @@ CTRL-O Go to [count] Older cursor position in jump list
<Tab> or *CTRL-I* *<Tab>*
CTRL-I Go to [count] newer cursor position in jump list
(not a motion command).
In a |quickfix-window| it takes you to the position of
the error under the cursor.
{not in Vi}
{not available without the |+jumplist| feature}
+17 -6
View File
@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 7.3. Last change: 2010 Sep 29
*netbeans.txt* For Vim version 7.3. Last change: 2011 Oct 20
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -263,6 +263,12 @@ The messages are currently sent over a socket. Since the messages are in
plain UTF-8 text this protocol could also be used with any other communication
mechanism.
Netbeans messages are processed when Vim is idle, waiting for user input.
When Vim is run in non-interactive mode, for example when running an automated
test case that sources a Vim script, the idle loop may not be called often
enough. In that case, insert |sleep| commands in the Vim script. The |sleep|
command does invoke Netbeans messages processing.
6.1 Kinds of messages |nb-messages|
6.2 Terms |nb-terms|
6.3 Commands |nb-commands|
@@ -833,11 +839,16 @@ These errors occur when a message violates the protocol:
signs.
*:nbkey*
:nb[key] {key} Pass the {key} to the Vim Controller for processing
When a hot-key has been installed with the specialKeys command, this command
can be used to generate a hotkey messages to the Vim Controller. The events
newDotAndMark, keyCommand and keyAtPos are generated (in this order).
:nb[key] {key} Pass the {key} to the Vim Controller for processing.
When a hot-key has been installed with the specialKeys
command, this command can be used to generate a hotkey
message to the Vim Controller.
This command can also be used to pass any text to the
Vim Controller. It is used by Pyclewn, for example,
to build the complete set of gdb commands as Vim user
commands.
The events newDotAndMark, keyCommand and keyAtPos are
generated (in this order).
==============================================================================
+12 -5
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2011 Jul 07
*options.txt* For Vim version 7.3. Last change: 2011 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4976,6 +4976,10 @@ A jump table for the options with a short description can be found at |Q_op|.
written. A ":set nomodified" command also resets the original
values to the current values and the 'modified' option will be
reset.
This option is not set when a change is made to the buffer as the
result of a BufNewFile, BufRead/BufReadPost, BufWritePost,
FileAppendPost or VimLeave autocommand event. See |gzip-example| for
an explanation.
When 'buftype' is "nowrite" or "nofile" this option may be set, but
will be ignored.
@@ -6013,8 +6017,11 @@ A jump table for the options with a short description can be found at |Q_op|.
"bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like
systems, the default is set according to the value of 'shell', to
reduce the need to set this option by the user. It's not used for
OS/2 (EMX figures this out itself). See |option-backslash| about
including spaces and backslashes. See |dos-shell|.
OS/2 (EMX figures this out itself).
On Unix it can have more than one flag. Each white space separated
part is passed as an argument to the shell command.
See |option-backslash| about including spaces and backslashes.
Also see |dos-shell| for MS-DOS and MS-Windows.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -6870,8 +6877,8 @@ A jump table for the options with a short description can be found at |Q_op|.
usetab Like "useopen", but also consider windows in other tab
pages.
split If included, split the current window before loading
a buffer. Otherwise: do not split, use current window.
Supported in |quickfix| commands that display errors.
a buffer for a |quickfix| command that display errors.
Otherwise: do not split, use current window.
newtab Like "split", but open a new tab page. Overrules
"split" when both are present.
+48 -50
View File
@@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 7.3. Last change: 2010 Aug 16
*os_vms.txt* For Vim version 7.3. Last change: 2011 Aug 14
VIM REFERENCE MANUAL
@@ -38,9 +38,6 @@ You can download the Vim source code by ftp from the official Vim site:
Or use one of the mirrors:
ftp://ftp.vim.org/pub/vim/MIRRORS
You will need both the Unix and Extra archives to build vim.exe for VMS.
For using Vim's full power you will need the runtime files as well.
You can download precompiled executables from:
http://www.polarhome.com/vim/
ftp://ftp.polarhome.com/pub/vim/
@@ -75,7 +72,7 @@ See the file [.SRC]INSTALLVMS.TXT.
4. Problems *vms-problems*
The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
platforms with the DEC C compiler. It should work without bigger problems.
platforms with the DEC C compiler. It should work without big problems.
If your system does not have some include libraries you can tune up in
OS_VMS_CONF.H file.
@@ -88,11 +85,11 @@ Also GTK, XPM library paths should be configured in MAKE_VMS.MMS
Note: Under VAX it should work with the DEC C compiler without problems. The
VAX C compiler is not fully ANSI C compatible in pre-processor directives
semantics, therefore you have to use a converter program what will do the lion
semantics, therefore you have to use a converter program that will do the lion
part of the job. For detailed instructions read file INSTALLvms.txt
MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
change to subdirectory and build it separately.
MMS_VIM.EXE is build together with VIM.EXE, but for XXD.EXE you should
change to a subdirectory and build it separately.
CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
specific source might contain CTAGS source files as described above.
@@ -184,9 +181,9 @@ You may want to create .vimrc and .gvimrc files in your home directory
The easiest way is just rename example files. You may leave the menu file
(MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will
be default setup for all users, and for users it is enough just to have their
own additions or resetting in their home directory in files .vimrc and .gvimrc.
It should work without problems.
be the default setup for all users, and for users it is enough to just have
their own additions or resetting in their home directory in files .vimrc and
.gvimrc. It should work without problems.
Note: Remember, system rc files (default for all users) don't have a leading
".". So, system rc files are: >
@@ -200,7 +197,7 @@ and user customized rc files are: >
sys$login:.vimrc
sys$login:.gvimrc
You can check that everything is on the right place with the :version command.
You can check that everything is at the right place with the :version command.
Example LOGIN.COM: >
@@ -209,15 +206,15 @@ Example LOGIN.COM: >
$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
$ set disp/create/node=192.168.5.223/trans=tcpip
Note: This set-up should be enough, if you are working on standalone server or
clustered environment, but if you want to use Vim as internode editor in
Note: This set-up should be enough, if you are working on a standalone server or
clustered environment, but if you want to use Vim as an internode editor in
DECNET environment, it will satisfy as well.
You just have to define the "whole" path: >
$ define VIM "<server_name>[""user password""]::device:<path>"
$ vi*m :== "mcr VIM:VIM.EXE"
As for example: >
For example: >
$ define VIM "PLUTO::RF10:[UTIL.VIM]"
$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
@@ -300,12 +297,12 @@ For more information type $help set disp in VMS prompt.
4) If you are working on MS-Windows or some other non X/Window environment
you need to set up one X server and run Vim as in point 2.
For MS-Windows there are available free X servers as MIX , Omni X etc.,
For MS-Windows there are available free X servers as MIX, Omni X etc.,
as well as excellent commercial products as eXcursion or ReflectionX with
built-in DEC support.
Please note, that executables without GUI are slightly faster during startup
then with enabled GUI in character mode. Therefore, if you do not use GUI
than with enabled GUI in character mode. Therefore, if you do not use GUI
features, it is worth to choose non GUI executables.
==============================================================================
@@ -326,8 +323,8 @@ features, it is worth to choose non GUI executables.
8.12 diff-mode
8.13 Allow '$' in C keywords
8.14 VIMTUTOR for beginners
8.15 Slow start in console mode issue
8.16 Common VIM directory - different architectures
8.15 Slow start in console mode issue
8.16 Common VIM directory - different architectures
8.1 Backspace/delete
@@ -360,7 +357,7 @@ number, try these settings. >
:set nowritebackup " does not have any purpose on VMS. It's the
" default.
Recovery is working perfect as well from the default swap file.
Recovery is working perfectly as well from the default swap file.
Read more with :help swapfile
(Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
@@ -386,7 +383,7 @@ Note: You may use <,> brackets as well (device:<path>file.ext;version) as
rf10:<user.zay.work>test.c;1
(David Elins <delins@foliage.com>, Jerome Lauret
<JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
<JLAURET@mail.chem.sunysb.edu> Vim 5.6)
8.5 Remote host invocation
@@ -445,14 +442,14 @@ Terminal entry not found in termcap
builtin_dumb
defaulting to 'vt320'
---
The solution is to define default terminal name: >
The solution is to define the default terminal name: >
$ ! unknown terminal name. Let us use vt320 or ansi instead.
$ ! Note: it's case sensitive
$ define term "vt320"
Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
keyboard mappings. They should work perfect as they are, including arrows,
Terminals from VT100 to VT320 (as V300, VT220, VT200) do not need any extra
keyboard mappings. They should work perfectly as they are, including arrows,
Ins, Del buttons etc., except Backspace in GUI mode. To solve it, add to
.gvimrc: >
@@ -465,8 +462,8 @@ your .vimrc file: >
set ttyfast " set fast terminal
Note: if you're using Vim on remote host or through very slow connection, it's
recommended to avoid fast terminal option with: >
Note: if you're using Vim on remote host or through a very slow connection, it's
recommended to avoid the fast terminal option with: >
set nottyfast " set terminal to slow mode
@@ -483,8 +480,8 @@ special commands to execute executables: >
OpenVMS users always have to be aware that the Vim command :! "just" drop them
to DCL prompt. This feature is possible to use without any problem with all
DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
we're running into trouble if we follow the Vim documentation (see: help
DCL commands, but if we want to execute some programs such as XXD, CTAGS, JTAGS,
etc. we're running into trouble if we follow the Vim documentation (see: help
xxd).
Solution: Execute with the MC command and add the full path to the executable.
@@ -534,7 +531,7 @@ Example: >
$define SYS$PRINT HP5ANSI
You can print out whole buffer or just the marked area.
You can print out the whole buffer or just the marked area.
More info under :help hardcopy
(Zoltan Arpadffy, Vim 6.0c)
@@ -561,16 +558,16 @@ will be confused after a window-resize.
From 6.0 diff functionality has been implemented, but OpenVMS does not use
GNU/Unix like diff therefore built in diff does not work.
There is a simple solution to solve this anomaly. Install a Unix like diff
and Vim will work perfect in diff mode too. You just have to redefine your
and Vim will work perfectly in diff mode too. You just have to redefine your
diff program as: >
define /nolog diff <GNU_PATH>diff.exe
Another, more sophisticated solution is described below (8.12 diff-mode)
There are some other programs as patch, make etc that may cause same problems.
At www.polarhome.com is possible to download an GNU package for Alpha and VAX
boxes that is meant to solve GNU problems on OpenVMS.
( Zoltan Arpadffy, Vim 6.1)
There are other programs such as patch, make etc that may cause the same
problems. At www.polarhome.com is possible to download an GNU package for
Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS.
(Zoltan Arpadffy, Vim 6.1)
8.12 diff-mode
@@ -632,7 +629,7 @@ You can now compare files in 4 ways: >
3. VIM diff: $ VIMDIFF <FILE1> <FILE2>
4. GVIM diff: $ GVIMDIFF <FILE1> <FILE2>
( Coen Engelbarts, Vim 6.1)
(Coen Engelbarts, Vim 6.1)
8.13 Allow '$' in C keywords
@@ -653,35 +650,36 @@ Now word-based commands, e.g. the '*'-search-command and the CTRL-]
tag-lookup, work on the whole identifier. (Ctags on VMS also supports '$' in
C keywords since ctags version 5.1.)
( Coen Engelbarts, Vim 6.1)
(Coen Engelbarts, Vim 6.1)
8.14 VIMTUTOR for beginners
It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
first steps with Vim on OpenVMS. Depending of binary distribution you may
start it with: >
The VIMTUTOR.COM DCL script can help Vim beginners to learn/make their first
steps with Vim on OpenVMS. Depending of binary distribution you may start it
with: >
@vim:vimtutor
(Thomas.R.Wyant III, Vim 6.1)
8.14 Slow start in console mode issue
8.16 Slow start in console mode issue
As GUI/GTK Vim works equally well in console mode, many administrators
deploy those executables system wide.
Unfortunately, on a remote slow connections GUI/GTK executables behave rather
slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
slow when user wants to run Vim just in the console mode - because of X
environment detection timeout.
Luckily, there is a simple solution for that. Administrators need to deploy
both GUI/GTK build and just console build executables, like below: >
|- vim73
|----- doc
|----- syntax
|----- syntax
vimrc (system rc files)
gvimrc
gvim.exe (the renamed GUI or GTK built vim.exe)
vim.exe (the console only executable)
gvim.exe (the renamed GUI or GTK built vim.exe)
vim.exe (the console only executable)
Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
@@ -692,7 +690,7 @@ Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
$ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
Like this, users that do not have X environment and want to use Vim just in
Like this, users that do not have X environment and want to use Vim just in
console mode can avoid performance problems.
(Zoltan Arpadffy, Vim 7.2)
@@ -714,8 +712,8 @@ View of Cluster from system ID 11655 node: TOR
+---------------------------------+
It is convenient to have a common VIM directory but execute different
executables.
There are more solutions for this problem:
executables.
There are several solutions for this problem:
Solution 1. All executables in the same directory with different names
This is easily done with the following script that can be added
@@ -769,7 +767,7 @@ GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
Version 7.3
- CTAGS 5.8 included
- VMS compile warnings fixed - floating-point overflow warning corrected on VAX
- filepath completition corrected - too many chars were escaped in filename
- filepath completion corrected - too many chars were escaped in filename
and shell commands
- the following plugins are included into VMS runtime:
genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
@@ -784,10 +782,10 @@ Version 7.3
Version 7.2 (2008 Aug 9)
- VCF files write corrected
- CTAGS 5.7 included
- corrected make_vms.mms (on VAX gave syntax error)
- corrected make_vms.mms (on VAX gave syntax error)
Version 7.1 (2007 Jun 15)
- create TAGS file from menu
- create TAGS file from menu
Version 7 (2006 May 8)
- Improved low level char input (affects just console mode)
+4 -4
View File
@@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 7.3. Last change: 2011 May 28
*os_win32.txt* For Vim version 7.3. Last change: 2011 Aug 14
VIM REFERENCE MANUAL by George Reilly
@@ -316,11 +316,11 @@ A. When using :! to run an external command, you can run it with "start": >
There are two optional arguments (see the next Q):
/min the window will be minimized.
/b" no console window will be opened
You can only one of these flags at a time. A second second one will be
You can use only one of these flags at a time. A second one will be
treated as the start of the command.
Q. How do I avoid getting a window for programs that I run asynchronously?
A. You have two possible solutions depending on what exactly do you want:
A. You have two possible solutions depending on what you want:
1) You may use the /min flag in order to run program in a minimized state
with no other changes. It will work equally for console and GUI
applications.
@@ -328,7 +328,7 @@ A. You have two possible solutions depending on what exactly do you want:
console window for them (GUI applications are not affected). But you
should use this flag only if the application you run doesn't require any
input. Otherwise it will get an EOF error because its input stream
(stdin) would be redirected to \\.\NUL (stdoud and stderr too).
(stdin) would be redirected to \\.\NUL (stdout and stderr too).
Example for a console application, run Exuberant ctags: >
:!start /min ctags -R .
+7 -2
View File
@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.3. Last change: 2011 May 25
*pattern.txt* For Vim version 7.3. Last change: 2011 Sep 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -21,7 +21,7 @@ explanations are in chapter 27 |usr_27.txt|.
10. Highlighting matches |match-highlight|
==============================================================================
1. Search commands *search-commands* *E486*
1. Search commands *search-commands*
*/*
/{pattern}[/]<CR> Search forward for the [count]'th occurrence of
@@ -150,6 +150,11 @@ use <Esc> to abandon the search.
All matches for the last used search pattern will be highlighted if you set
the 'hlsearch' option. This can be suspended with the |:nohlsearch| command.
When no match is found you get the error: *E486* Pattern not found
Note that for the |:global| command this behaves like a normal message, for Vi
compatibility. For the |:s| command the "e" flag can be used to avoid the
error message |:s_flags|.
*search-offset* *{offset}*
These commands search for the specified pattern. With "/" and "?" an
additional offset may be given. There are two types of offsets: line offsets
+95 -34
View File
@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 7.3. Last change: 2011 May 31
*pi_netrw.txt* For Vim version 7.3. Last change: 2011 Sep 26
-----------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -89,7 +89,7 @@ Copyright: Copyright (C) 1999-2011 Charles E Campbell, Jr *netrw-copyright*
Marked Files: Unmarking............................|netrw-mu|
Netrw Browser Variables............................|netrw-browser-var|
Netrw Browsing And Option Incompatibilities........|netrw-incompatible|
Netrw Settings.....................................|netrw-settings|
Netrw Settings Window..............................|netrw-settings-window|
Obtaining A File...................................|netrw-O|
Preview Window.....................................|netrw-p|
Previous Window....................................|netrw-P|
@@ -294,14 +294,14 @@ DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
Attempts to use ftp will prompt you for a user-id and a password.
These will be saved in global variables g:netrw_uid and
s:netrw_passwd; subsequent uses of ftp will re-use those two items to
simplify the further use of ftp. However, if you need to use a
different user id and/or password, you'll want to call NetUserPass()
These will be saved in global variables |g:netrw_uid| and
|s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
thereby simplifying use of ftp. However, if you need to use a
different user id and/or password, you'll want to call |NetUserPass()|
first. To work around the need to enter passwords, check if your ftp
supports a <.netrc> file in your home directory. Also see
|netrw-passwd| (and if you're using ssh/scp hoping to figure out how
to not need to use passwords, look at |netrw-ssh-hack|).
to not need to use passwords for scp, look at |netrw-ssh-hack|).
:NetUserPass [uid [password]] -- prompts as needed
:call NetUserPass() -- prompts for uid and password
@@ -331,7 +331,8 @@ settings are described below, in |netrw-browser-options|, and in
netrw edits a file. The file is first edited, and
then the function reference (|Funcref|) is called.
This variable may also hold a |List| of Funcrefs.
(default) not defined
(default) not defined. (the capital in g:Netrw...
is required by its holding a function reference)
>
Example: place in .vimrc; affects all file opening
fun! MyFuncRef()
@@ -479,6 +480,9 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
<
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
doesn't work, so its best to leave it off for that system)
See |netrw-p8| for more about putty, pscp, psftp, etc.
Ftp, an old protocol, seems to be blessed by numerous implementations.
@@ -716,13 +720,16 @@ below, a {netfile} is an url to a remote file.
==============================================================================
8. Variables and Options *netrw-options* *netrw-var* {{{1
8. Variables and Options *netrw-settings* {{{1
(if you're interested in the netrw browser settings, see: |netrw-browser-var|)
(also see: |netrw-options| |netrw-variables| |netrw-protocol|
|netrw-browser-settings| |netrw-browser-options|
|netrw-browser-var| )
The <netrw.vim> script provides several variables which act as options to
affect <netrw.vim>'s file transfer behavior. These variables typically may be
set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
*netrw-options*
>
-------------
Netrw Options
@@ -754,6 +761,7 @@ set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
=1 use default method to do ftp >
-----------------------------------------------------------------------
<
*netrw-internal-variables*
The script will also make use of the following variables internally, albeit
temporarily.
>
@@ -1147,15 +1155,14 @@ allows one to open a new window to hold the new directory listing or file. A
horizontal split is used. (for vertical splitting, see |netrw-v|)
Normally, the o key splits the window horizontally with the new window and
cursor at the top. To change to splitting the window horizontally with the
new window and cursor at the bottom, have
let g:netrw_alto = 1
in your <.vimrc>. (also see |netrw-t| |netrw-T| |netrw-v|)
cursor at the top.
Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
Related Actions |netrw-cr| |netrw-p| |netrw-t| |netrw-T| |netrw-v|
Associated setting variables:
|g:netrw_alto| control above/below splitting
|g:netrw_winsize| control initial sizing
BROWSING WITH A NEW TAB *netrw-t* *netrw-T* {{{2
@@ -1164,8 +1171,9 @@ allows one to open a new window holding the new directory listing or file in
a new tab. The "T" version puts the file or directory into a background tab
(see |gT|)
Related actions: |netrw-o| |netrw-v|
Related Actions |netrw-cr| |netrw-o| |netrw-p| |netrw-v|
Associated setting variables:
|g:netrw_winsize| control initial sizing
BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
@@ -1174,18 +1182,18 @@ allows one to open a new window to hold the new directory listing or file. A
vertical split is used. (for horizontal splitting, see |netrw-o|)
Normally, the v key splits the window vertically with the new window and
cursor at the left. To change to splitting the window vertically with the new
window and cursor at the right, have
let g:netrw_altv = 1
in your <.vimrc>. (also see: |netrw-o| |netrw-t| |netrw-T|)
cursor at the left.
There is only one tree listing buffer; using "v" on a displayed subdirectory
will split the screen, but the same buffer will be shown twice.
Associated setting variable: |g:netrw_altv| |g:netrw_winsize|
Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-T| |netrw-v|
Associated setting variables:
|g:netrw_altv| control right/left splitting
|g:netrw_winsize| control initial sizing
CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
@@ -1386,6 +1394,7 @@ to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
g:netrw_rmf_cmd: ssh HOSTNAME rm -f
Related topics: |netrw-d|
Associated setting variable: |g:netrw_local_rmdir| |g:netrw_rm_cmd|
|g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
@@ -1520,7 +1529,7 @@ What it means:
Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
*netrw-sort-sequence*
EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
When "Sorted by" is name, one may specify priority via the sorting sequence
@@ -1723,9 +1732,9 @@ directory's name. A bare <CR> at that point will abort the making of the
directory. Attempts to make a local directory that already exists (as either
a file or a directory) will be detected, reported on, and ignored.
Currently, making a directory via ftp is not supported.
Associated setting variable: |g:netrw_local_mkdir| |g:netrw_mkdir_cmd|
Related topics: |netrw-D|
Associated setting variables: |g:netrw_local_mkdir| |g:netrw_mkdir_cmd|
|g:netrw_remote_mkdir|
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
@@ -1953,10 +1962,11 @@ MARKED FILES: UNMARKING *netrw-mu* {{{2
The "mu" mapping will unmark all currently marked files.
*netrw-browser-settings*
NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
(if you're interested in the netrw file transfer settings, see |netrw-options|)
(if you're interested in the netrw file transfer settings, see |netrw-options|
and |netrw-protocol|)
The <netrw.vim> browser provides settings in the form of variables which
you may modify; by placing these settings in your <.vimrc>, you may customize
@@ -2006,6 +2016,15 @@ your browsing preferences. (see also: |netrw-settings|)
Will compress marked files with this
command
*g:Netrw_corehandler* Allows one to specify something additional
to do when handling <core> files via netrw's
browser's "x" command (see |netrw-x|). If
present, g:Netrw_corehandler specifies
either one or more function references
(see |Funcref|). (the capital g:Netrw...
is required its holding a function reference)
*g:netrw_ctags* ="ctags"
The default external program used to create tags
@@ -2157,6 +2176,7 @@ your browsing preferences. (see also: |netrw-settings|)
columnar.
*g:netrw_mkdir_cmd* command for making a remote directory
via ssh (also see |g:netrw_remote_mkdir|)
default: "ssh USEPORT HOSTNAME mkdir"
*g:netrw_mousemaps* =1 (default) enables mouse buttons while
@@ -2167,6 +2187,15 @@ your browsing preferences. (see also: |netrw-settings|)
rightmouse : remove file/directory
=0: disables mouse maps
*g:netrw_nobeval* doesn't exist (default)
If this variable exists, then balloon
evaluation will be suppressed
(see |'ballooneval'|)
*g:netrw_remote_mkdir* command for making a local directory
via ftp (also see |g:netrw_mkdir_cmd|)
default: "mkdir"
*g:netrw_retmap* if it exists and is set to one, then:
* if in a netrw-selected file, AND
* no normal-mode <2-leftmouse> mapping exists,
@@ -2279,6 +2308,9 @@ your browsing preferences. (see also: |netrw-settings|)
is an integer describing the percentage of the
current netrw buffer's window to be used for
the new window.
If g:netrw_winsize is less than zero, then
the absolute value of g:netrw_winsize lines
or columns will be used for the new window.
default: 50 (for 50%)
*g:netrw_xstrlen* Controls how netrw computes string lengths,
@@ -2313,7 +2345,7 @@ file you edit; this apparently also applies to directories. In other words,
autochdir sets the current directory to that containing the "file" (even if
that "file" is itself a directory).
NETRW BROWSER SETTINGS *netrw-settings* {{{2
NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
With the NetrwSettings.vim plugin, >
:NetrwSettings
@@ -2356,7 +2388,6 @@ Related topics:
* To automatically make the currently browsed directory the current
directory, see |g:netrw_keepdir|.
*netrw-createfile*
OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%*
@@ -2390,8 +2421,7 @@ PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
To edit a file or directory in the previously used (last accessed) window (see
:he |CTRL-W_p|), press a "P". If there's only one window, then the one window
will be horizontally split (above/below splitting is controlled by
|g:netrw_alto|, and its initial size is controlled by |g:netrw_winsize|).
will be horizontally split (by default).
If there's more than one window, the previous window will be re-used on
the selected file/directory. If the previous window's associated buffer
@@ -2399,6 +2429,13 @@ has been modified, and there's only one window with that buffer, then
the user will be asked if s/he wishes to save the buffer first (yes,
no, or cancel).
Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-T| |netrw-v|
Associated setting variables:
|g:netrw_alto| control above/below splitting
|g:netrw_altv| control right/left splitting
|g:netrw_preview| control horizontal vs vertical splitting
|g:netrw_winsize| control initial sizing
REFRESHING THE LISTING *netrw-ctrl-l* *netrw-ctrl_l* {{{2
@@ -2804,6 +2841,30 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
12. History *netrw-history* {{{1
v143: Jun 01, 2011 * |g:netrw_winsize| will accept a negative
number; the absolute value of it will then
be used to specify lines/columns instead of
a percentage.
Jul 05, 2011 * the "d" map now supports mkdir via ftp
See |netrw-d| and |g:netrw_remote_mkdir|
Jul 11, 2011 * Changed Explore!, Sexplore!, and Vexplore
to use a percentage of |winwidth()| instead
of a percentage of |winheight()|.
Jul 11, 2011 * included support for https://... I'm just
beginning to test this, however.
Aug 01, 2011 * changed RestoreOptions to also restore
cursor position in netrw buffers.
Aug 12, 2011 * added a note about "%" to the balloon
Aug 30, 2011 * if |g:netrw_nobeval| exists, then balloon
evaluation is suppressed.
Aug 31, 2011 * (Benjamin R Haskell) provided a patch that
implements non-standard port handling for
files opened via the remote browser.
Aug 31, 2011 * Fixed a **//pattern Explorer bug
Sep 15, 2011 * (reported by Francesco Campana) netrw
now permits the "@" to be part of the
user id (if there's an @ that appears
to the right).
v142: Apr 06, 2011 * I modified NetrwRemoteListing() to use
shellescape(fnameescape(s:path),1) for
the benefit of those using scp://.../
+4 -1
View File
@@ -1,4 +1,4 @@
*pi_vimball.txt* For Vim version 7.3. Last change: 2011 Apr 02
*pi_vimball.txt* For Vim version 7.3. Last change: 2011 Sep 26
----------------
Vimball Archiver
@@ -16,6 +16,7 @@ Copyright: (c) 2004-2011 by Charles E. Campbell, Jr. *Vimball-copyright*
1. Contents *vba* *vimball* *vimball-contents*
1. Contents......................................: |vimball-contents|
2. Vimball Introduction..........................: |vimball-intro|
3. Vimball Manual................................: |vimball-manual|
MkVimball.....................................: |:MkVimball|
UseVimball....................................: |:UseVimball|
@@ -176,6 +177,8 @@ WINDOWS *vimball-windows*
==============================================================================
4. Vimball History *vimball-history* {{{1
34 : Sep 22, 2011 * "UseVimball path" now supports a non-full path by
prepending the current directory to it.
33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
* Changed silent! to sil! (shorter)
* Safed |'swf'| setting (during vimball extraction,
+1 -2
View File
@@ -1,4 +1,4 @@
*pi_zip.txt* For Vim version 7.3. Last change: 2011 May 24
*pi_zip.txt* For Vim version 7.3. Last change: 2011 Aug 14
+====================+
| Zip File Interface |
@@ -69,7 +69,6 @@ Copyright: Copyright (C) 2005-2011 Charles E Campbell, Jr *zip-copyright*
let g:loaded_zipPlugin= 1
let g:loaded_zip = 1
<
<
==============================================================================
3. Additional Extensions *zip-extension*
+8 -7
View File
@@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.3. Last change: 2010 Sep 18
*starting.txt* For Vim version 7.3. Last change: 2011 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -424,12 +424,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
"-d con:30/10/600/150". But you can also use it to start
editing on another device, e.g., AUX:. {not in Vi}
*-f*
-f Amiga: Do not restart Vim to open a new window. This
option should be used when Vim is started by a program that
will wait for the edit session to finish (e.g., mail or
readnews). See |amiga-window|.
GUI: Do not disconnect from the program that started Vim.
-f GUI: Do not disconnect from the program that started Vim.
'f' stands for "foreground". If omitted, the GUI forks a new
process and exits the current one. "-f" should be used when
gvim is started by a program that will wait for the edit
@@ -437,8 +432,14 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
never to fork, include 'f' in 'guioptions' in your |gvimrc|.
Careful: You can use "-gf" to start the GUI in the foreground,
but "-fg" is used to specify the foreground color. |gui-fork|
Amiga: Do not restart Vim to open a new window. This
option should be used when Vim is started by a program that
will wait for the edit session to finish (e.g., mail or
readnews). See |amiga-window|.
{not in Vi}
*--nofork*
--nofork GUI: Do not fork. Same as |-f|.
*-u* *E282*
+40 -2
View File
@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2011 Jul 18
*syntax.txt* For Vim version 7.3. Last change: 2011 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2605,8 +2605,41 @@ 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~
SPEEDUP (AspenTech plant simulator) *spup.vim* *ft-spup-syntax*
You may wish to embed languages into sh. I'll give an example courtesy of
Lorance Stinson on how to do this with awk as an example. Put the following
file into $HOME/.vim/after/syntax/sh/awkembed.vim: >
" AWK Embedding: {{{1
" ==============
" Shamelessly ripped from aspperl.vim by Aaron Hope.
if exists("b:current_syntax")
unlet b:current_syntax
endif
syn include @AWKScript syntax/awk.vim
syn region AWKScriptCode matchgroup=AWKCommand start=+[=\\]\@<!'+ skip=+\\'+ end=+'+ contains=@AWKScript contained
syn region AWKScriptEmbedded matchgroup=AWKCommand start=+\<awk\>+ skip=+\\$+ end=+[=\\]\@<!'+me=e-1 contains=@shIdList,@shExprList2 nextgroup=AWKScriptCode
syn cluster shCommandSubList add=AWKScriptEmbedded
hi def link AWKCommand Type
<
This code will then let the awk code in the single quotes: >
awk '...awk code here...'
be highlighted using the awk highlighting syntax. Clearly this may be
extended to other languages.
SPEEDUP *spup.vim* *ft-spup-syntax*
(AspenTech plant simulator)
The Speedup syntax file has some options:
@@ -2689,6 +2722,8 @@ sections, subsections, etc are supported. Put >
in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a
modeline at the end of your LaTeX file: >
% vim: fdm=syntax
If your system becomes too slow, then you might wish to look into >
http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text
<
*tex-nospell*
Tex: Don't Want Spell Checking In Comments? ~
@@ -2729,6 +2764,9 @@ If you have a slow computer, you may wish to reduce the values for >
increase them. This primarily affects synchronizing (i.e. just what group,
if any, is the text at the top of the screen supposed to be in?).
Another cause of slow highlighting is due to syntax-driven folding; see
|tex-folding| for a way around this.
*tex-morecommands* *tex-package*
Tex: Want To Highlight More Commands? ~
+18 -4
View File
@@ -4280,6 +4280,9 @@ E848 syntax.txt /*E848*
E849 syntax.txt /*E849*
E85 options.txt /*E85*
E850 change.txt /*E850*
E851 gui_x11.txt /*E851*
E852 gui_x11.txt /*E852*
E853 eval.txt /*E853*
E86 windows.txt /*E86*
E87 windows.txt /*E87*
E88 windows.txt /*E88*
@@ -5013,7 +5016,6 @@ cino-( indent.txt /*cino-(*
cino-) indent.txt /*cino-)*
cino-+ indent.txt /*cino-+*
cino-/ indent.txt /*cino-\/*
cino-2 indent.txt /*cino-2*
cino-: indent.txt /*cino-:*
cino-= indent.txt /*cino-=*
cino-> indent.txt /*cino->*
@@ -5040,6 +5042,7 @@ cino-p indent.txt /*cino-p*
cino-star indent.txt /*cino-star*
cino-t indent.txt /*cino-t*
cino-u indent.txt /*cino-u*
cino-w indent.txt /*cino-w*
cino-{ indent.txt /*cino-{*
cino-} indent.txt /*cino-}*
cinoptions-values indent.txt /*cinoptions-values*
@@ -5293,7 +5296,6 @@ definition-search tagsrch.txt /*definition-search*
definitions intro.txt /*definitions*
delete() eval.txt /*delete()*
delete-insert change.txt /*delete-insert*
delete-key gui_mac.txt /*delete-key*
delete-menus gui.txt /*delete-menus*
deleting change.txt /*deleting*
design-assumptions develop.txt /*design-assumptions*
@@ -5745,6 +5747,7 @@ ft-ptcap-syntax syntax.txt /*ft-ptcap-syntax*
ft-python-indent indent.txt /*ft-python-indent*
ft-python-syntax syntax.txt /*ft-python-syntax*
ft-quake-syntax syntax.txt /*ft-quake-syntax*
ft-r-indent indent.txt /*ft-r-indent*
ft-readline-syntax syntax.txt /*ft-readline-syntax*
ft-rexx-syntax syntax.txt /*ft-rexx-syntax*
ft-ruby-omni insert.txt /*ft-ruby-omni*
@@ -5811,6 +5814,7 @@ g- undo.txt /*g-*
g0 motion.txt /*g0*
g8 various.txt /*g8*
g:NetrwTopLvlMenu pi_netrw.txt /*g:NetrwTopLvlMenu*
g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler*
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
g:ada#Comment ft_ada.txt /*g:ada#Comment*
g:ada#Ctags_Kinds ft_ada.txt /*g:ada#Ctags_Kinds*
@@ -5898,9 +5902,11 @@ g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
g:netrw_mousemaps pi_netrw.txt /*g:netrw_mousemaps*
g:netrw_nobeval pi_netrw.txt /*g:netrw_nobeval*
g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
g:netrw_retmap pi_netrw.txt /*g:netrw_retmap*
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
@@ -5928,6 +5934,8 @@ g:netrw_use_nt_rcp pi_netrw.txt /*g:netrw_use_nt_rcp*
g:netrw_win95ftp pi_netrw.txt /*g:netrw_win95ftp*
g:netrw_winsize pi_netrw.txt /*g:netrw_winsize*
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*
@@ -6077,6 +6085,7 @@ gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors*
gu change.txt /*gu*
gugu change.txt /*gugu*
gui gui.txt /*gui*
gui-IME gui.txt /*gui-IME*
gui-clipboard gui_w32.txt /*gui-clipboard*
gui-colors syntax.txt /*gui-colors*
gui-extras gui.txt /*gui-extras*
@@ -6287,6 +6296,7 @@ i) motion.txt /*i)*
i< motion.txt /*i<*
i> motion.txt /*i>*
iB motion.txt /*iB*
iBus gui.txt /*iBus*
iW motion.txt /*iW*
i[ motion.txt /*i[*
i] motion.txt /*i]*
@@ -6610,7 +6620,6 @@ mac-vimfile os_mac.txt /*mac-vimfile*
macintosh os_mac.txt /*macintosh*
macro map.txt /*macro*
macvim gui_mac.txt /*macvim*
macvim-<Backspace> gui_mac.txt /*macvim-<Backspace>*
macvim-backspace gui_mac.txt /*macvim-backspace*
macvim-clientserver remote.txt /*macvim-clientserver*
macvim-colors gui_mac.txt /*macvim-colors*
@@ -6854,6 +6863,7 @@ netrw-browse-cmds pi_netrw.txt /*netrw-browse-cmds*
netrw-browse-maps pi_netrw.txt /*netrw-browse-maps*
netrw-browser pi_netrw.txt /*netrw-browser*
netrw-browser-options pi_netrw.txt /*netrw-browser-options*
netrw-browser-settings pi_netrw.txt /*netrw-browser-settings*
netrw-browser-var pi_netrw.txt /*netrw-browser-var*
netrw-browsing pi_netrw.txt /*netrw-browsing*
netrw-c pi_netrw.txt /*netrw-c*
@@ -6902,6 +6912,7 @@ netrw-history pi_netrw.txt /*netrw-history*
netrw-horiz pi_netrw.txt /*netrw-horiz*
netrw-i pi_netrw.txt /*netrw-i*
netrw-incompatible pi_netrw.txt /*netrw-incompatible*
netrw-internal-variables pi_netrw.txt /*netrw-internal-variables*
netrw-intro-browse pi_netrw.txt /*netrw-intro-browse*
netrw-leftmouse pi_netrw.txt /*netrw-leftmouse*
netrw-list pi_netrw.txt /*netrw-list*
@@ -6979,8 +6990,10 @@ netrw-rexplore pi_netrw.txt /*netrw-rexplore*
netrw-rightmouse pi_netrw.txt /*netrw-rightmouse*
netrw-s pi_netrw.txt /*netrw-s*
netrw-settings pi_netrw.txt /*netrw-settings*
netrw-settings-window pi_netrw.txt /*netrw-settings-window*
netrw-sexplore pi_netrw.txt /*netrw-sexplore*
netrw-sort pi_netrw.txt /*netrw-sort*
netrw-sort-sequence pi_netrw.txt /*netrw-sort-sequence*
netrw-sortsequence pi_netrw.txt /*netrw-sortsequence*
netrw-source pi_netrw.txt /*netrw-source*
netrw-ssh-hack pi_netrw.txt /*netrw-ssh-hack*
@@ -6999,7 +7012,6 @@ netrw-updir pi_netrw.txt /*netrw-updir*
netrw-urls pi_netrw.txt /*netrw-urls*
netrw-userpass pi_netrw.txt /*netrw-userpass*
netrw-v pi_netrw.txt /*netrw-v*
netrw-var pi_netrw.txt /*netrw-var*
netrw-variables pi_netrw.txt /*netrw-variables*
netrw-vexplore pi_netrw.txt /*netrw-vexplore*
netrw-write pi_netrw.txt /*netrw-write*
@@ -7535,6 +7547,8 @@ setuid change.txt /*setuid*
setwinvar() eval.txt /*setwinvar()*
sftp pi_netrw.txt /*sftp*
sgml.vim syntax.txt /*sgml.vim*
sh-awk syntax.txt /*sh-awk*
sh-embed syntax.txt /*sh-embed*
sh.vim syntax.txt /*sh.vim*
shell-window tips.txt /*shell-window*
shell_error-variable eval.txt /*shell_error-variable*
+124 -93
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2011 Jul 15
*todo.txt* For Vim version 7.3. Last change: 2011 Oct 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,21 +34,95 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Patch for 'transparency' option. (Ben Boeckel, 2011 Sep 14)
Do we want this? Also Sergiu Dotenco, 2011 Sep 17.
Once syntax and other runtime files have been fixed: add "set cp" to
check.vim. Use a function to run both with 'cp' and 'nocp'.
Windows stuff:
- Patch for gui_w32.c: call DefWindowProc(). (Sergiu Dotenco, 2011 Sep 15, 17)
- Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 15, 17)
Addition Sep 16.
- Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011 Sep
15, 17)
- Patch for redirection. (Yasuhiro Matsumoto, 2011 Sep 15) 2nd patch. Another
on Sep 15? Can't reproduce it. Only with vim.exe, compiled with Mingw?
Patch for phpcomplete.vim (Benjamin Haskell) picked up by maintainer?
Something weird with text formatting when 'compatible' is set.
Only formats from Insert starting point, even when using "gqj"?
(Peter Wagenaar, 2011 Oct 20)
FocusGained event received event though it's in 'eventignore'?
(Ben Fritz, 2011 Sep 25)
Add voting item: modern plugin management (automatic updates, handle
dependencies).
Add links to http://vimcasts.org/ and http://vimgolf.com/
Read http://www.charlietanksley.net/philtex/sane-vim-plugin-management/
Go through more coverity reports.
Better D/Dtrace detection. (Jesse Phillips, 2011 Oct 18)
Patch for not showing dict methods in completion. (Yasuhiro Matsumoto, 2011
Oct 7) Move "<" methods to the end. Fix for compiler warnings, Oct 13.
FPE exception in mbyte.c. Stack trace: (Lomy, 2011 Sep 26)
Can't reproduce it.
Crash in autocomplete, valgrind log. (Greg Weber, 2011 Apr 22)
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
Patch to fail if configure can't find an interface, such as Python.
(Shlomi Fish, 2011 Jul 11)
Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
Needs more work.
With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
register. (Michael Seiwald, 2011 Jun 28)
Other way to start Mzscheme. Tim Brown, 2011 Oct 5: change main call.
Later patch by Sergey Khorev, 2011 Oct 9.
The :z command doesn't work exactly as it should. (ChangZhuo Chen, 2011 Mar 2)
Compare with how old Vi works and with posix spec. terminal is 80 x 24,
'scroll' option set to 11.
Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4.
Or use expand('<sid>')?
Patch for glob() returning a list. (Christian Brabandt, 2011 Aug 24, second
one)
Patch to highlight cursor line number. (Howard Buchholz (lhb), 2011 Oct 18)
Docs fix for v:register. (Ingo Karkat, 2011 Sep 26, 27)
v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20)
Patch for: (Christian Brabandt, 2011 Aug 22)
- Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
below/above).
Patch for: (Christian Brabandt, 2011 Aug 24, updated patch)
8 ":sign unplace * file={filename}" should work. Also: ":sign unplace *
buffer={bufnr}". So one can remove all signs for one file/buffer.
Patch to add "onselected" callback for completion. (Taro Muraoka, 2011 Sep 24)
Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17)
Patch Sep 18.
Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
And one for gui_x11.txt.
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
Patch to sort functions starting with '<' after others. Omit dict functions,
they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11)
Updated syntax file for ssh_config, maintainer doesn't respond.
(Leonard Ehrenfried, 2011 Sep 26)
"fC" doesn't position the cursor correctly when there are concealed
characters. Patch by Christian Brabandt, 2011 Oct 11)
'cursorline' is displayed too short when there are concealed characters and
'list' is set. (Dennis Preiser)
@@ -63,29 +137,12 @@ Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
21, Ben Fritz, 2010 Sep 14)
When opening file from windows explorer, characters inside [] cause
problems, even though double quotes are used. (Manuel Stol, 2011 Mar 9)
Patch to change the meaning of \n in substitute(). (motoya kurotsu, 2011 Mar 8)
Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
Winckler, 2011 May 11)
Use function to set paste option and restore it, use CTRL-R+ to paste.
Help file foldexpr (ZyX)
Need to escape $HOME on Windows? (ZyX, 2011 Jul 21)
Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)
Patch to automatically get version number into NSIS. (Guopeng Wen, 2011 May
27)
Patch to add more command completions (Dominique Pelle, 2011 Jun 25)
Patch to have GvimExt not use "edit with existing Vim" entries.
(Jerome Vuarand, 2011 Jun 22)
Patch to make character classes work with multi-byte characters.
(Dominique Pelle, 2011 May 31, update July 11)
With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
register. (Michael Seiwald, 2011 Jun 28) I can't reproduce it.
In GTK Gvim, setting 'lines' and 'columns' to 99999 causes a crash (Tony
Mechelynck, 2011 Apr 25). Can reproduce the crash sometimes:
@@ -102,19 +159,9 @@ The error was 'RenderBadPicture (invalid Picture parameter)'.
backtrace from your debugger if you break on the gdk_x_error() function.)
Check that number of pixels doesn't go above 65535?
8 Add an event like CursorHold that is triggered repeatedly, not just once
after typing something.
Need for CursorHold that retriggers. Use a key that doesn't do anything, or a
function that resets did_cursorhold.
Patch by Christian Brabandt, 2011 May 6.
popup completion menu closes quickly when there is a fold in the buffer. (Jan
Christoph Ebersbach, 2011 Jul 3)
CursorHold repeats typed key when it's the start of a mapping.
(Will Gray, 2011 Mar 23)
Christian Brabandt: problem is that OP_PENDING isn't set.
Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
This line hangs Vim, because of syntax HL:
@@ -135,6 +182,8 @@ Using ":break" or something else that stops executing commands inside a
Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
64 bits value. Change all number options to use nropt_T and define it to the
right type.
@@ -142,18 +191,20 @@ right type.
string() can't parse back "inf" and "nan". Fix documentation or fix code?
(ZyX, 2010 Aug 23)
Make 'formatprg' global-local. (Sung Pae)
When doing "redir => s:foo" in a script and then "redir END" somewhere else
(e.g. in a function) it can't find s:foo.
When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim
doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
7 Make "ga" show the digraph for a character, if it exists.
Patch from Christian Brabandt, 2011 Aug 19.
maparg() does not show the <script> flag. When temporarily changing a
mapping, how to restore the script ID?
Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
Update Nov 19. James Vega: still not right. Christian: it's difficult.
Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
Also add named groups: \%{name}(re) and \%{name}g
Bug in try/catch: return with invalid compare throws error that isn't caught.
(ZyX, 2011 Jan 26)
@@ -171,10 +222,6 @@ Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
Deleting a linewise selection that includes the last line of the file leaves
an empty line. (Ben Schmidt, 2011 Mar 17)
Patch by Christian Brabandt, 2011 Mar 19.
Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
30)
@@ -194,6 +241,29 @@ With a filler line in diff mode, it isn't displayed in the column with line
number, but it is in the sign column. Doesn't look right. (ZyX 2011 Jun 5)
Patch by Christian Brabandt, 2011 Jun 5. Introduces new problems.
8 Add a command to jump to the next character highlighted with "Error".
Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.
8 Add an event like CursorHold that is triggered repeatedly, not just once
after typing something.
Need for CursorHold that retriggers. Use a key that doesn't do anything, or a
function that resets did_cursorhold.
Patch by Christian Brabandt, 2011 May 6.
7 Use "++--", "+++--" for different levels instead of "+---" "+----".
Patch by Christian Brabandt, 2011 Jul 27.
Update by Ben Fritz, with fix for TOhtml. (2011 Jul 30)
9 Add %F to 'errorformat': file name without spaces. Useful on Unix to
avoid matching something up to a time 11:22:33.
Patch by Christian Brabandt, 2011 Jul 27.
Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
Update Nov 19. James Vega: still not right. Christian: it's difficult.
Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
Also add named groups: \%{name}(re) and \%{name}g
In the sandbox it's not allowed to do many things, but it's possible to change
or set variables. Add a way to prevent variables from being changed in the
sandbox? E.g.: ":protect g:restore_settings".
@@ -223,9 +293,6 @@ New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
"L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
2011 Feb 27)
Patch to fail if configure can't find an interface, such as Python.
(Shlomi Fish, 2011 Jul 11)
Copy/paste between Vim and Google chrome doesn't work well for multi-byte
characters. (Ben Haskell, 2010 Sep 17)
When putting text in the cut buffer (when exiting) and conversion doesn't work
@@ -257,6 +324,8 @@ the system encoding (usually utf-8).
Problem producing tags file when hebrew.frx is present. It has a BOM.
Results in E670. (Tony Mechelynck, 2010 May 2)
'beval' option should be global-local.
Ruby: ":ruby print $buffer.number" returns zero.
setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
@@ -309,26 +378,20 @@ Echo starts in the wrong column:
Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
GvimExt sets $LANG in the wrong way. Patch by Yasuhiro Matsumoto, 2011 Jun
15. This will fix issue no 11.
When writing a file > 2Gbyte, the reported number of bytes is negative.
(Antonio Colombo, 2010 Dec 18)
Patch: Let rare word highlighting overrule good word highlighting.
(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
Patch for VisVim, pass file name to VimOpenFile. (Jiri Sedlak, 2010 Nov 12)
When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
instead of one. (Constantin Pan, 2010 Sep 10)
Crash in setqflist(). (Benoit Mortgat, 2010 Nov 18)
Patch to handle resizing when tab is opened, when at full size. (Yukihiro
Nakadaira, 2010 Jan 6)
Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
Winckler, 2011 May 11)
Requires a map mode for Insert mode started from blockwise Visual mode.
Writing nested List and Dict in viminfo gives error message and can't be read
back. (Yukihiro Nakadaira, 2010 Nov 13)
@@ -417,25 +480,18 @@ it. Caused by "syntax sync fromstart" in combination with patch 7.2.274.
Generally, folding with 'foldmethod' set to "syntax" is slow. Do profiling to
find out why.
Syntax priority problem. (Charles Campbell, 2011 Sep 15)
When completion inserts the first match, it may trigger the line to be folded.
Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file. Works OK for
echo, just not for ":call" and ":call call()". (Ted, 2011 Mar 17)
Cannot use getchar() inside :normal and using an expression mapping. Is this
supposed to work? (XyX, 2010 Sep 22)
When using an expression mapping with a multi-byte character each byte is
converted to a utf-8 character. (ZyX, 2011 Jan 4)
Patch for possible solution. (Yukihiro Nakadaira, 2011 Jan 5)
When a:base in 'completefunc' starts with a number it's passed as a number,
not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
string value.
There is no command line completion for ":lmap".
":e ~br<Tab>" does not complete to ":e /home/bram/". Would need to use
getpwent() to find all the matches.
@@ -756,11 +812,6 @@ an alternate solution, also for src/ex_getln.c.
This also fails when the file or directory name contains "%". (Thoml, 2008
July 7)
The str2special() function doesn't handle multi-byte characters properly.
Patch from Vladimir Vichniakov, 2007 Apr 24.
Should clean up the whole function. Also allow modifiers like <S-Char-32>?
find_special_key() also has this problem.
Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
2008 May 14)
@@ -836,8 +887,6 @@ try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)
try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)
Recognize and ignore BOM in error file. (Aleksey Baibarin)
":tab help" always opens a new tab, while ":help" re-uses an existing window.
Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
@@ -871,9 +920,6 @@ Can't easily close the help window, like ":pc" closes the preview window and
":ccl" closes the quickfix window. Add ":hclose". (Chris Gaal)
Patch for :helpclose, Christian Brabandt, 2010 Sep 6.
Patch for :lmake not updating the quickfix window title. (Lech Lorens, 2011
Mar 26)
When 'diffopt' has "context:0" a single deleted line causes two folds to merge
and mess up syncing. (Austin Jennings, 2008 Jan 31)
@@ -934,9 +980,6 @@ popup menu over it, first draw the new popup menu, remember its position and
size and then redraw the text, skipping the characters under the popup menu.
This should avoid flicker. Other solution by A.Politz, 2007 Aug 22.
When the popup menu is close to the edge of the window it is truncated. Patch
to anchor the popup menu in a different way. (James Vega, 2008 Jul 30)
Windows 98: pasting from the clipboard with text from another application has
a trailing NUL. (Joachim Hofmann) Perhaps the length specified for CF_TEXT
isn't right?
@@ -1075,9 +1118,6 @@ If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
Feature request: Command to go to previous tab, like what CTRL-W p does for
windows. (Adam George)
When using input() in a loop and then ":echo" the display column isn't right.
(Benjamin Fritz, 2008 Aug 28) Patch by Ben Schmidt, 2008 Sep 2.
F1 - F4 in an xterm produce a different escape sequence when used with a
modifier key. Need to catch three different sequences. Use K_ZF1, like
K_ZHOME? (Dickey, 2007 Dec 2)
@@ -2662,7 +2702,6 @@ Folding:
8 Add "z/" and "z?" for searching in not folded text only.
9 Add search pattern item to only match in closed or open fold and/or fold
with certain level. Allows doing ":g/pat/cmd" to work on closed folds.
7 Use "++--", "+++--" for different levels instead of "+---" "+----".
8 When a closed fold is displayed open because of 'foldminlines', the
behavior of commands is still like the fold is closed. How to make the
user aware of this?
@@ -2842,7 +2881,6 @@ Syntax highlighting:
8 Highlight the text between two matching parens (e.g., with a grey
background) when on one of the parens or in between them.
Option for the matchparen plugin?
8 Add a command to jump to the next character highlighted with "Error".
8 When using a cterm, and no ctermfg or ctermbg are defined, use start/stop
sequences. Add remark in docs that :if 'term' == "term-name" should be
used.
@@ -4479,11 +4517,8 @@ Marks:
Digraphs:
7 Make "ga" show the digraph for a character, if it exists.
Also the keymap?
7 Make "ga" show the keymap for a character, if it exists.
Also show the code of the character after conversion to 'filenecoding'.
- Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
below/above).
- Use digraph table to tell Vim about the collating sequence of special
characters?
8 Add command to remove one or more (all) digraphs. (Brown)
@@ -4601,8 +4636,6 @@ Debug mode:
Various improvements:
9 Python: be able to define a Python function that can be called directly
from Vim script. Requires converting the arguments and return value.
8 ":sign unplace * file={filename}" should work. Also: ":sign unplace *
buffer={bufnr}". So one can remove all signs for one file/buffer.
7 Add plugins for formatting? Should be able to make a choice depending on
the language of a file (English/Korean/Japanese/etc.).
Setting the 'langformat' option to "chinese" would load the
@@ -4620,8 +4653,6 @@ Various improvements:
7 Instead of filtering errors with a shell script it should be possible to
do this with Vim script. A function that filters the raw text that comes
from the 'makeprg'?
9 Add %F to 'errorformat': file name without spaces. Useful on Unix to
avoid matching something up to a time 11:22:33.
- Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
Govindachar)
7 Add a command that goes back to the position from before jumping to the
+5 -3
View File
@@ -1,4 +1,4 @@
*undo.txt* For Vim version 7.3. Last change: 2010 Dec 19
*undo.txt* For Vim version 7.3. Last change: 2011 Aug 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,8 +35,10 @@ CTRL-R Redo [count] changes which were undone. {Vi: redraw
:red[o] Redo one change which was undone. {Vi: no redo}
*U*
U Undo all latest changes on one line. {Vi: while not
moved off of it}
U Undo all latest changes on one line, the line where
the latest change was made. |U| itself also counts as
a change, and thus |U| undoes a previous |U|.
{Vi: while not moved off of the last modified line}
The last changes are remembered. You can use the undo and redo commands above
to revert the text to how it was before each change. You can also apply the
+5 -1
View File
@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.3. Last change: 2011 May 19
*various.txt* For Vim version 7.3. Last change: 2011 Oct 1st
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -605,6 +605,10 @@ K Run a program to lookup the keyword under the
"gs" stands for "goto sleep".
While sleeping the cursor is positioned in the text,
if at a visible position. {not in Vi}
Also process the received netbeans messages. {only
available when compiled with the |+netbeans_intg|
feature}
*g_CTRL-A*
g CTRL-A Only when Vim was compiled with MEM_PROFILING defined
+3 -3
View File
@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 7.3. Last change: 2010 Oct 11
*vi_diff.txt* For Vim version 7.3. Last change: 2011 Aug 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -88,8 +88,8 @@ Maximum display width Unix and Win32: 1024 characters, otherwise 255
characters
Maximum lhs of a mapping 50 characters.
Number of different highlighting types: over 30000
Range of a Number variable: -2147483648 to 2147483647 (more on 64 bit
systems)
Range of a Number variable: -2147483648 to 2147483647 (might be more on 64
bit systems)
Maximum length of a line in a tags file: 512 bytes.
Information for undo and text in registers is kept in memory, thus when making
+2 -2
View File
@@ -1,4 +1,4 @@
*windows.txt* For Vim version 7.3. Last change: 2010 Aug 15
*windows.txt* For Vim version 7.3. Last change: 2011 Aug 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -246,7 +246,7 @@ window will appear.
These command modifiers can be combined to make a vertically split window
occupy the full height. Example: >
:vertical topleft edit tags
:vertical topleft split tags
Opens a vertically split, full-height window on the "tags" file at the far
left of the Vim window.
+13 -2
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2011 Jul 17
" Last Change: 2011 Oct 08
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -754,6 +754,11 @@ au BufNewFile,BufRead */usr/**/gnupg/options.skel setf gpg
" gnash(1) configuration files
au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
" Gitolite
au BufNewFile,BufRead gitolite.conf setf gitolite
au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
" Gnuplot scripts
au BufNewFile,BufRead *.gpi setf gnuplot
@@ -922,7 +927,7 @@ au BufNewFile,BufRead *.java,*.jav setf java
au BufNewFile,BufRead *.jj,*.jjt setf javacc
" JavaScript, ECMAScript
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx setf javascript
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.json setf javascript
" Java Server Pages
au BufNewFile,BufRead *.jsp setf jsp
@@ -2345,6 +2350,9 @@ endfunc
" Yaml
au BufNewFile,BufRead *.yaml,*.yml setf yaml
" yum conf (close enough to dosini)
au BufNewFile,BufRead */etc/yum.conf setf dosini
" Zope
" dtml (zope dynamic template markup language), pt (zope page template),
" cpt (zope form controller page template)
@@ -2515,6 +2523,9 @@ au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
" Xinetd conf
au BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd')
" yum conf (close enough to dosini)
au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini')
" Z-Shell script
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
+2 -2
View File
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2007 Sep 25
" Last Change: 2011 Aug 04
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -36,7 +36,7 @@ endif
" When the matchit plugin is loaded, this makes the % command skip parens and
" braces in comments.
let b:match_words = &matchpairs
let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character'
" Win32 can filter files in the browse dialog
+4 -2
View File
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2010 Nov 29
" Last Change: 2011 Jul 25
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
@@ -17,7 +17,9 @@ if &filetype == "man"
" Ensure Vim is not recursively invoked (man-db does this)
" when doing ctrl-[ on a man page reference.
let $MANPAGER = ""
if exists("$MANPAGER")
let $MANPAGER = ""
endif
" allow dot and dash in manual page name.
setlocal iskeyword+=\.,-
+5 -3
View File
@@ -1,11 +1,13 @@
" Vim support file to switch off loading plugins for file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2002 Apr 04
" Last Change: 2011 Oct 20
if exists("did_load_ftplugin")
unlet did_load_ftplugin
endif
" Remove all autocommands in the filetypeplugin group
silent! au! filetypeplugin *
" Remove all autocommands in the filetypeplugin group, if any exist.
if exists("#filetypeplugin")
silent! au! filetypeplugin *
endif
+5 -1
View File
@@ -23,6 +23,7 @@
" 26-04-2002 Got initial version working reasonably well
" 29-04-2002 Fixed problems in function headers and max line width
" Added support for two-line if's without curly braces
" Fixed hang: 2011 Aug 31
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -118,7 +119,7 @@ function! GetAwkIndent()
" Case 1
if prev_data =~ ')' && brace_balance < 0
while brace_balance != 0
while brace_balance != 0 && prev_lineno > 0
let prev_lineno = s:Get_prev_line( prev_lineno )
let prev_data = getline( prev_lineno )
let brace_balance=brace_balance+s:Get_brace_balance(prev_data,'(',')' )
@@ -188,6 +189,9 @@ endfunction
function! s:Seems_continuing( line )
" Unfinished lines
if a:line =~ '\(--\|++\)\s*$'
return 0
endif
if a:line =~ '[\\,\|\&\+\-\*\%\^]\s*$'
return 1
endif
+492
View File
@@ -0,0 +1,492 @@
" Vim indent file
" Language: R
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Last Change: Fri Oct 14, 2011 09:50PM
" Only load this indent file when no other was loaded.
if exists("b:did_r_indent")
finish
endif
let b:did_r_indent = 1
setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetRIndent()
" Only define the function once.
if exists("*GetRIndent")
finish
endif
" Options to make the indentation more similar to Emacs/ESS:
if !exists("g:r_indent_align_args")
let g:r_indent_align_args = 1
endif
if !exists("g:r_indent_ess_comments")
let g:r_indent_ess_comments = 0
endif
if !exists("g:r_indent_comment_column")
let g:r_indent_comment_column = 40
endif
if ! exists("g:r_indent_ess_compatible")
let g:r_indent_ess_compatible = 0
endif
function s:RDelete_quotes(line)
let i = 0
let j = 0
let line1 = ""
let llen = strlen(a:line)
while i < llen
if a:line[i] == '"'
let i += 1
let line1 = line1 . 's'
while !(a:line[i] == '"' && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
let i += 1
endwhile
if a:line[i] == '"'
let i += 1
endif
else
if a:line[i] == "'"
let i += 1
let line1 = line1 . 's'
while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
let i += 1
endwhile
if a:line[i] == "'"
let i += 1
endif
else
if a:line[i] == "`"
let i += 1
let line1 = line1 . 's'
while a:line[i] != "`" && i < llen
let i += 1
endwhile
if a:line[i] == "`"
let i += 1
endif
endif
endif
endif
if i == llen
break
endif
let line1 = line1 . a:line[i]
let j += 1
let i += 1
endwhile
return line1
endfunction
" Convert foo(bar()) int foo()
function s:RDelete_parens(line)
if s:Get_paren_balance(a:line, "(", ")") != 0
return a:line
endif
let i = 0
let j = 0
let line1 = ""
let llen = strlen(a:line)
while i < llen
let line1 = line1 . a:line[i]
if a:line[i] == '('
let nop = 1
while nop > 0 && i < llen
let i += 1
if a:line[i] == ')'
let nop -= 1
else
if a:line[i] == '('
let nop += 1
endif
endif
endwhile
let line1 = line1 . a:line[i]
endif
let i += 1
endwhile
return line1
endfunction
function! s:Get_paren_balance(line, o, c)
let line2 = substitute(a:line, a:o, "", "g")
let openp = strlen(a:line) - strlen(line2)
let line3 = substitute(line2, a:c, "", "g")
let closep = strlen(line2) - strlen(line3)
return openp - closep
endfunction
function! s:Get_matching_brace(linenr, o, c, delbrace)
let line = SanitizeRLine(getline(a:linenr))
if a:delbrace == 1
let line = substitute(line, '{$', "", "")
endif
let pb = s:Get_paren_balance(line, a:o, a:c)
let i = a:linenr
while pb != 0 && i > 1
let i -= 1
let pb += s:Get_paren_balance(SanitizeRLine(getline(i)), a:o, a:c)
endwhile
return i
endfunction
" This function is buggy because there 'if's without 'else'
" It must be rewritten relying more on indentation
function! s:Get_matching_if(linenr, delif)
" let filenm = expand("%")
" call writefile([filenm], "/tmp/matching_if_" . a:linenr)
let line = SanitizeRLine(getline(a:linenr))
if a:delif
let line = substitute(line, "if", "", "g")
endif
let elsenr = 0
let i = a:linenr
let ifhere = 0
while i > 0
let line2 = substitute(line, '\<else\>', "xxx", "g")
let elsenr += strlen(line) - strlen(line2)
if line =~ '.*\s*if\s*()' || line =~ '.*\s*if\s*()'
let elsenr -= 1
if elsenr == 0
let ifhere = i
break
endif
endif
let i -= 1
let line = SanitizeRLine(getline(i))
endwhile
if ifhere
return ifhere
else
return a:linenr
endif
endfunction
function! s:Get_last_paren_idx(line, o, c, pb)
let blc = a:pb
let line = substitute(a:line, '\t', s:curtabstop, "g")
let theidx = -1
let llen = strlen(line)
let idx = 0
while idx < llen
if line[idx] == a:o
let blc -= 1
if blc == 0
let theidx = idx
endif
else
if line[idx] == a:c
let blc += 1
endif
endif
let idx += 1
endwhile
return theidx + 1
endfunction
" Get previous relevant line. Search back until getting a line that isn't
" comment or blank
function s:Get_prev_line(lineno)
let lnum = a:lineno - 1
let data = getline( lnum )
while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$')
let lnum = lnum - 1
let data = getline( lnum )
endwhile
return lnum
endfunction
" This function is also used by r-plugin/common_global.vim
" Delete from '#' to the end of the line, unless the '#' is inside a string.
function SanitizeRLine(line)
let newline = s:RDelete_quotes(a:line)
let newline = s:RDelete_parens(newline)
let newline = substitute(newline, '#.*', "", "")
let newline = substitute(newline, '\s*$', "", "")
return newline
endfunction
function GetRIndent()
let clnum = line(".") " current line
let cline = getline(clnum)
if cline =~ '^\s*#'
if g:r_indent_ess_comments == 1
if cline =~ '^\s*###'
return 0
endif
if cline !~ '^\s*##'
return g:r_indent_comment_column
endif
endif
endif
let cline = SanitizeRLine(cline)
if cline =~ '^\s*}' || cline =~ '^\s*}\s*)$'
let indline = s:Get_matching_brace(clnum, '{', '}', 1)
if indline > 0 && indline != clnum
let iline = SanitizeRLine(getline(indline))
if s:Get_paren_balance(iline, "(", ")") == 0 || iline =~ '(\s*{$'
return indent(indline)
else
let indline = s:Get_matching_brace(indline, '(', ')', 1)
return indent(indline)
endif
endif
endif
" Find the first non blank line above the current line
let lnum = s:Get_prev_line(clnum)
" Hit the start of the file, use zero indent.
if lnum == 0
return 0
endif
let line = SanitizeRLine(getline(lnum))
if &filetype == "rhelp"
if cline =~ '^\\dontshow{' || cline =~ '^\\dontrun{' || cline =~ '^\\donttest{' || cline =~ '^\\testonly{'
return 0
endif
if line =~ '^\\examples{' || line =~ '^\\usage{' || line =~ '^\\dontshow{' || line =~ '^\\dontrun{' || line =~ '^\\donttest{' || line =~ '^\\testonly{'
return 0
endif
if line =~ '^\\method{.*}{.*}(.*'
let line = substitute(line, '^\\method{\(.*\)}{.*}', '\1', "")
endif
endif
if cline =~ '^\s*{'
if g:r_indent_ess_compatible && line =~ ')$'
let nlnum = lnum
let nline = line
while s:Get_paren_balance(nline, '(', ')') < 0
let nlnum = s:Get_prev_line(nlnum)
let nline = SanitizeRLine(getline(nlnum)) . nline
endwhile
if nline =~ '^\s*function\s*(' && indent(nlnum) == &sw
return 0
endif
endif
if s:Get_paren_balance(line, "(", ")") == 0
return indent(lnum)
endif
endif
" line is an incomplete command:
if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$'
return indent(lnum) + &sw
endif
" Deal with () and []
let pb = s:Get_paren_balance(line, '(', ')')
if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$'))
return indent(lnum) + &sw
endif
let bb = s:Get_paren_balance(line, '[', ']')
let s:curtabstop = repeat(' ', &tabstop)
if g:r_indent_align_args == 1
if pb == 0 && bb == 0 && (line =~ '.*[,&|\-\*+<>]$' || cline =~ '^\s*[,&|\-\*+<>]')
return indent(lnum)
endif
if pb > 0
if &filetype == "rhelp"
let ind = s:Get_last_paren_idx(line, '(', ')', pb)
else
let ind = s:Get_last_paren_idx(getline(lnum), '(', ')', pb)
endif
return ind
endif
if pb < 0 && line =~ '.*[,&|\-\*+<>]$'
let lnum = s:Get_prev_line(lnum)
while pb < 1 && lnum > 0
let line = SanitizeRLine(getline(lnum))
let line = substitute(line, '\t', s:curtabstop, "g")
let ind = strlen(line)
while ind > 0
if line[ind] == ')'
let pb -= 1
else
if line[ind] == '('
let pb += 1
endif
endif
if pb == 1
return ind + 1
endif
let ind -= 1
endwhile
let lnum -= 1
endwhile
return 0
endif
if bb > 0
let ind = s:Get_last_paren_idx(getline(lnum), '[', ']', bb)
return ind
endif
endif
let post_block = 0
if line =~ '}$'
let lnum = s:Get_matching_brace(lnum, '{', '}', 0)
let line = SanitizeRLine(getline(lnum))
if lnum > 0 && line =~ '^\s*{'
let lnum = s:Get_prev_line(lnum)
let line = SanitizeRLine(getline(lnum))
endif
let pb = s:Get_paren_balance(line, '(', ')')
let post_block = 1
endif
let post_fun = 0
if pb < 0 && line !~ ')\s*[,&|\-\*+<>]$'
let post_fun = 1
while pb < 0 && lnum > 0
let lnum -= 1
let linepiece = SanitizeRLine(getline(lnum))
let pb += s:Get_paren_balance(linepiece, "(", ")")
let line = linepiece . line
endwhile
if line =~ '{$' && post_block == 0
return indent(lnum) + &sw
endif
" Now we can do some tests again
if cline =~ '^\s*{'
return indent(lnum)
endif
if post_block == 0
let newl = SanitizeRLine(line)
if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$'
return indent(lnum) + &sw
endif
endif
endif
if cline =~ '^\s*else'
if line =~ '<-\s*if\s*()'
return indent(lnum) + &sw
else
if line =~ '\<if\s*()'
return indent(lnum)
else
return indent(lnum) - &sw
endif
endif
endif
if bb < 0 && line =~ '.*]'
while bb < 0 && lnum > 0
let lnum -= 1
let linepiece = SanitizeRLine(getline(lnum))
let bb += s:Get_paren_balance(linepiece, "[", "]")
let line = linepiece . line
endwhile
let line = s:RDelete_parens(line)
endif
let plnum = s:Get_prev_line(lnum)
let ppost_else = 0
if plnum > 0
let pline = SanitizeRLine(getline(plnum))
let ppost_block = 0
if pline =~ '}$'
let ppost_block = 1
let plnum = s:Get_matching_brace(plnum, '{', '}', 0)
let pline = SanitizeRLine(getline(plnum))
if pline =~ '^\s*{$' && plnum > 0
let plnum = s:Get_prev_line(plnum)
let pline = SanitizeRLine(getline(plnum))
endif
endif
if pline =~ 'else$'
let ppost_else = 1
let plnum = s:Get_matching_if(plnum, 0)
let pline = SanitizeRLine(getline(plnum))
endif
if pline =~ '^\s*else\s*if\s*('
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
while ppline =~ '^\s*else\s*if\s*(' || ppline =~ '^\s*if\s*()\s*\S$'
let plnum = pplnum
let pline = ppline
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
endwhile
while ppline =~ '\<\(if\|while\|for\|function\)\s*()$' || ppline =~ '\<else$' || ppline =~ '<-$'
let plnum = pplnum
let pline = ppline
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
endwhile
endif
let ppb = s:Get_paren_balance(pline, '(', ')')
if ppb < 0 && (pline =~ ')\s*{$' || pline =~ ')$')
while ppb < 0 && plnum > 0
let plnum -= 1
let linepiece = SanitizeRLine(getline(plnum))
let ppb += s:Get_paren_balance(linepiece, "(", ")")
let pline = linepiece . pline
endwhile
let pline = s:RDelete_parens(pline)
endif
endif
let ind = indent(lnum)
let pind = indent(plnum)
if g:r_indent_align_args == 0 && pb != 0
let ind += pb * &sw
return ind
endif
if g:r_indent_align_args == 0 && bb != 0
let ind += bb * &sw
return ind
endif
if ind == pind || (ind == (pind + &sw) && pline =~ '{$' && ppost_else == 0)
return ind
endif
let pline = getline(plnum)
let pbb = s:Get_paren_balance(pline, '[', ']')
while pind < ind && plnum > 0 && ppb == 0 && pbb == 0
let ind = pind
let plnum = s:Get_prev_line(plnum)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
while pline =~ '^\s*else'
let plnum = s:Get_matching_if(plnum, 1)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
endwhile
let pind = indent(plnum)
if ind == (pind + &sw) && pline =~ '{$'
return ind
endif
endwhile
return ind
endfunction
" vim: sw=4
+20 -14
View File
@@ -1,7 +1,7 @@
" Vim indent file
" Language: reStructuredText Documentation Format
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-12-20
" Latest Revision: 2011-08-03
if exists("b:did_indent")
finish
@@ -16,6 +16,9 @@ if exists("*GetRSTIndent")
finish
endif
let s:itemization_pattern = '^\s*[-*+]\s'
let s:enumeration_pattern = '^\s*\%(\d\+\|#\)\.\s\+'
function GetRSTIndent()
let lnum = prevnonblank(v:lnum - 1)
if lnum == 0
@@ -25,27 +28,30 @@ function GetRSTIndent()
let ind = indent(lnum)
let line = getline(lnum)
if line =~ '^\s*[-*+]\s'
let ind = ind + 2
elseif line =~ '^\s*\d\+.\s'
let ind = ind + matchend(substitute(line, '^\s*', '', ''), '\d\+.\s\+')
if line =~ s:itemization_pattern
let ind += 2
elseif line =~ s:enumeration_pattern
let ind += matchend(line, s:enumeration_pattern)
endif
let line = getline(v:lnum - 1)
" Indent :FIELD: lines. Dont match if there is no text after the field or
" if the text ends with a sent-ender.
if line =~ '^:.\+:\s\{-1,\}\S.\+[^.!?:]$'
return matchend(line, '^:.\{-1,}:\s\+')
endif
if line =~ '^\s*$'
execute lnum
call search('^\s*\%([-*+]\s\|\d\+.\s\|\.\.\|$\)', 'bW')
call search('^\s*\%([-*+]\s\|\%(\d\+\|#\)\.\s\|\.\.\|$\)', 'bW')
let line = getline('.')
if line =~ '^\s*[-*+]'
let ind = ind - 2
elseif line =~ '^\s*\d\+\.\s'
let ind = ind - matchend(substitute(line, '^\s*', '', ''),
\ '\d\+\.\s\+')
if line =~ s:itemization_pattern
let ind -= 2
elseif line =~ s:enumeration_pattern
let ind -= matchend(line, s:enumeration_pattern)
elseif line =~ '^\s*\.\.'
let ind = ind - 3
else
let ind = ind
let ind -= 3
endif
endif
+31 -14
View File
@@ -1,8 +1,8 @@
" VHDL indent ('93 syntax)
" Language: VHDL
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
" Version: 1.56
" Last Change: 2010 Jun 29
" Version: 1.58
" Last Change: 2011 Sep 27
" URL: http://www.vim.org/scripts/script.php?script_id=1450
" only load this indent file when no other was loaded
@@ -95,7 +95,7 @@ function GetVHDLindent()
" ****************************************************************************************
" indent: align generic variables & port names
" keywords: "generic", "map", "port" + "(", provided current line is part of mapping
" keywords: "procedure" + name, "generic", "map", "port" + "(", provided current line is part of mapping
" where: anywhere in previous 2 lines
" find following previous non-comment line
let pn = prevnonblank(prevn - 1)
@@ -104,7 +104,7 @@ function GetVHDLindent()
let pn = prevnonblank(pn - 1)
let ps = getline(pn)
endwhile
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(generic\|map\|port\)\>.*\)\@<!\S\+\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
" align closing ")" with opening "("
if curs =~ '^\s*)'
return ind2 + stridx(prevs_noi, '(')
@@ -160,12 +160,12 @@ function GetVHDLindent()
" make sure one of these is true
" keywords: variable + "<=" without ";" ending
" where: start of previous non-comment line
" keywords: "generic", "map", "port"
" keywords: "procedure", "generic", "map", "port"
" where: anywhere in previous non-comment line
" keyword: "("
" where: start of previous non-comment line
if m < 3 && ps !~? '^\s*\S\+\s*<=[^;]*'.s:ES
if ps =~? s:NC.'\<\%(generic\|map\|port\)\>' || ps =~ '^\s*('
if ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)\>' || ps =~ '^\s*('
let ind = t
endif
break
@@ -207,14 +207,26 @@ function GetVHDLindent()
" keyword: "begin"
" where: anywhere in current line
if curs =~? s:NC.'\<begin\>'
let ind = ind - &sw
" find previous opening statement of
" keywords: "architecture", "block", "entity", "function", "generate", "procedure", "process"
let s2 = s:NC.s:NE.'\<\%(architecture\|block\|entity\|function\|generate\|procedure\|process\)\>'
if (curs !~? s2.'.*'.s:NC.'\<begin\>.*'.s:ES && prevs =~? s2) || m == 1
let ind = ind + &sw
let pn = prevnonblank(curn - 1)
let ps = getline(pn)
while pn > 0 && (ps =~ '^\s*--' || ps !~? s2)
let pn = prevnonblank(pn - 1)
let ps = getline(pn)
if (ps =~? s:NC.'\<begin\>')
return indent(pn) - &sw
endif
endwhile
if (pn == 0)
return ind - &sw
else
return indent(pn)
endif
return ind
endif
" indent: +sw if previous line is previous opening statement
@@ -319,8 +331,13 @@ function GetVHDLindent()
" indent: -sw
" keywords: "else", "elsif", "end" + "block", "for", "function", "generate", "if", "loop", "procedure", "process", "record", "units"
" where: start of current line
if curs =~? '^\s*\%(else\|elsif\|end\s\+\%(block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units\)\)\>'
return ind - &sw
let s5 = 'block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units'
if curs =~? '^\s*\%(else\|elsif\|end\s\+\%('.s5.'\)\)\>'
if prevs =~? '^\s*\%(elsif\|'.s5.'\)'
return ind
else
return ind - &sw
endif
endif
" indent: backtrace previous non-comment lines
@@ -395,9 +412,9 @@ function GetVHDLindent()
" ****************************************************************************************
" indent: maintain indent of previous opening statement
" keywords: without "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
" where: start of current line
if curs =~? '^\s*\%(\<\%(generic\|map\|port\)\>.*\)\@<!\S\+\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
return ind2
endif
+2 -2
View File
@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2010 Nov 16
" Last Change: 2011 Aug 27
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -82,7 +82,7 @@ function! s:Highlight_Matching_Pair()
endif
" When not in a string or comment ignore matches inside them.
" We match "escape" for special items, such as listpEscapeSpecial.
" We match "escape" for special items, such as lispEscapeSpecial.
let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
\ '=~? "string\\|character\\|singlequote\\|escape\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
+9 -14
View File
@@ -1,6 +1,6 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
" Date: Feb 10, 2011
" Date: Aug 24, 2011
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
@@ -20,7 +20,7 @@
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v142"
let g:loaded_netrwPlugin = "v143"
if v:version < 702
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
finish
@@ -47,20 +47,15 @@ augroup END
" Network Browsing Reading Writing: {{{2
augroup Network
au!
if has("win32") || has("win95") || has("win64") || has("win16")
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
else
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd file://localhost/* call netrw#FileUrlRead(substitute(expand("<amatch>")),'file://localhost/','file:///','')
endif
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
try
au SourceCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
au SourceCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
catch /^Vim\%((\a\+)\)\=:E216/
au SourcePre ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
au SourcePre ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
endtry
augroup END
+1 -1
View File
@@ -16,7 +16,7 @@
if &cp || exists("g:loaded_vimballPlugin")
finish
endif
let g:loaded_vimballPlugin = "v33"
let g:loaded_vimballPlugin = "v34"
let s:keepcpo = &cpo
set cpo&vim
+6 -6
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2011 May 2
" Last Change: 2011 Sep 07
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -273,18 +273,18 @@ 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\|elif\)\>"
syn match cPreConditMatch display "^\s*\(%:\|#\)\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
syn region cCppOutWrapper start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse 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
else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip fold
else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip
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
syn region cCppInWrapper start="^\s*\(%:\|#\)\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
+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: 2011 June 01
" Last Change: 2011 Sep 17
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
" Standard syntax initialization
@@ -24,7 +24,7 @@ syn match debControlComma ", *"
syn match debControlSpace " "
" Define some common expressions we can use later on
syn match debcontrolArchitecture contained "\%(all\|any\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\)"
syn match debcontrolArchitecture contained "\%(all\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\|hf\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\|any\)"
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\)"
+19 -13
View File
@@ -1,10 +1,10 @@
" Vim syntax file
" Language: Configuration File (ini file) for MSDOS/MS Windows
" Version Info: @(#)dosini.vim 1.6 97/12/15 08:54:12
" Author: Sean M. McKee <mckee@misslink.net>
" Maintainer: Nima Talebi <nima@it.net.au>
" Updated By: Hong Xu
" Last Change: 2011 Jul 16
" Language: Configuration File (ini file) for MSDOS/MS Windows
" Version: 2.0
" Original Author: Sean M. McKee <mckee@misslink.net>
" Previous Maintainer: Nima Talebi <nima@it.net.au>
" Current Maintainer: Hong Xu <xuhdev@gmail.com>
" Last Change: 2011 Jul 21
" For version 5.x: Clear all syntax items
@@ -18,9 +18,13 @@ endif
" shut case off
syn case ignore
syn match dosiniLabel "^.\{-}="
syn region dosiniHeader start="^\[" end="\]"
syn match dosiniComment "^[#;].*$"
syn match dosiniBool "\<\(yes\|no\|y\|n\|true\|false\)\>"
syn match dosiniNumber "\<\d\+\>"
syn match dosiniNumber "\<\d*\.\d\+\>"
syn match dosiniNumber "\<\d\+e[+-]\=\d\+\>"
syn match dosiniLabel "^.\{-}="
syn region dosiniHeader start="^\s*\[" end="\]"
syn match dosiniComment "^[#;].*$"
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
@@ -33,13 +37,15 @@ if version >= 508 || !exists("did_dosini_syntax_inits")
command -nargs=+ HiLink hi def link <args>
endif
HiLink dosiniHeader Special
HiLink dosiniComment Comment
HiLink dosiniLabel Type
HiLink dosiniBool Boolean
HiLink dosiniNumber Number
HiLink dosiniHeader Special
HiLink dosiniComment Comment
HiLink dosiniLabel Type
delcommand HiLink
endif
let b:current_syntax = "dosini"
" vim:ts=8
" vim: sts=2 sw=2 et
+80
View File
@@ -0,0 +1,80 @@
" Vim syntax file
" Language: gitolite configuration
" URL: https://github.com/tmatilai/gitolite.vim
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
" Last Change: 2011-10-05
if exists("b:current_syntax")
finish
endif
" Comment
syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
" Groups, users and repos
syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{}][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
syn keyword gitoliteCreator CREATER CREATOR contained
syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
" Illegal characters
syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{}-]\+" contained
syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
syn match gitoliteSpaceError "\s\+" contained
" Permission
syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
" Configuration
syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
syn match gitoliteConfVariable "[^=]*" contained
" Include
syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
" String
syn region gitoliteString start=+"+ end=+"+ oneline
" Define the default highlighting
hi def link gitoliteComment Comment
hi def link gitoliteTodo Todo
hi def link gitoliteGroupDef gitoliteGroup
hi def link gitoliteGroup Identifier
hi def link gitoliteWildRepo Special
hi def link gitoliteRepoError gitoliteError
hi def link gitoliteUserError gitoliteError
hi def link gitoliteSpaceError gitoliteError
hi def link gitoliteError Error
hi def link gitoliteCreator gitolitePreProc
hi def link gitolitePreProc PreProc
hi def link gitoliteExtCmdHelper PreProc
hi def link gitoliteExtCmd Special
hi def link gitoliteRepoDef Type
hi def link gitoliteKeyword Keyword
hi def link gitoliteRefex String
hi def link gitoliteDenyRefex gitoliteRefex
hi def link gitoliteSpecialRefex PreProc
hi def link gitoliteDenyUsers WarningMsg
hi def link gitoliteConfVariable Identifier
hi def link gitoliteInclude Include
hi def link gitoliteString String
let b:current_syntax = "gitolite"
+2 -2
View File
@@ -22,7 +22,7 @@ syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
syn match netrwTreeBarSpace " " contained
@@ -63,7 +63,7 @@ if exists("g:netrw_special_syntax") && netrw_special_syntax
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar,@NoSpell
syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
endif
+5 -3
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: pam(8) configuration file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19
" Latest Revision: 2011-08-03
if exists("b:current_syntax")
@@ -33,7 +33,7 @@ syn match pamconfTypeLineCont contained '\\$'
\ pamconfTypeLineCont skipwhite skipnl
syn keyword pamconfControl contained requisite required sufficient
\ optional
\ optional include substack
\ nextgroup=pamconfMPath,
\ pamconfControlLineContH skipwhite
@@ -57,7 +57,9 @@ syn keyword pamconfControlValues contained success open_err symbol_err
\ bad_item and default
\ nextgroup=pamconfControlValueEq
syn match pamconfControlValueEq contained '=' nextgroup=pamconfControlAction
syn match pamconfControlValueEq contained '='
\ nextgroup=pamconfControlActionN,
\ pamconfControlAction
syn match pamconfControlActionN contained '\d\+\>'
\ nextgroup=pamconfControlValues,
+97 -47
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: April 28, 2011
" Last Change: Oct 20, 2011
" URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -54,14 +54,6 @@
" the string would be highlighted as an error, what is incorrect.
" ii) Same problem if you are setting php_folding = 2 with a closing
" } inside an string on the first line of this string.
"
" - A double-quoted string like this:
" "$foo->someVar->someOtherVar->bar"
" will highight '->someOtherVar->bar' as though they will be parsed
" as object member variables, but PHP only recognizes the first
" object member variable ($foo->someVar).
"
"
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -118,6 +110,10 @@ if exists( "php_htmlInStrings")
syn cluster phpAddStrings add=@htmlTop
endif
" make sure we can use \ at the begining of the line to do a continuation
let s:cpo_save = &cpo
set cpo&vim
syn case match
" Env Variables
@@ -131,7 +127,7 @@ syn keyword phpCoreConstant PHP_VERSION PHP_OS DEFAULT_INCLUDE_PATH PEAR_INSTALL
syn case ignore
syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ contained
syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__ contained
" Function and Methods ripped from php_manual_de.tar.gz Jan 2003
@@ -273,7 +269,7 @@ syn keyword phpRepeat as do endfor endforeach endwhile for foreach while contai
syn keyword phpLabel case default switch contained
" Statement
syn keyword phpStatement return break continue exit contained
syn keyword phpStatement return break continue exit goto contained
" Keyword
syn keyword phpKeyword var const contained
@@ -282,7 +278,7 @@ syn keyword phpKeyword var const contained
syn keyword phpType bool[ean] int[eger] real double float string array object NULL contained
" Structure
syn keyword phpStructure extends implements instanceof parent self contained
syn keyword phpStructure namespace extends implements instanceof parent self contained
" Operator
syn match phpOperator "[-=+%^&|*!.~?:]" contained display
@@ -302,11 +298,41 @@ syn match phpIdentifierSimply "${\h\w*}" contains=phpOperator,phpParent contai
syn region phpIdentifierComplex matchgroup=phpParent start="{\$"rs=e-1 end="}" contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
" Interpolated indentifiers (inside strings)
syn match phpBrackets "[][}{]" contained display
" errors
syn match phpInterpSimpleError "\[[^]]*\]" contained display " fallback (if nothing else matches)
syn match phpInterpSimpleError "->[^a-zA-Z_]" contained display
" make sure these stay above the correct DollarCurlies so they don't take priority
syn match phpInterpBogusDollarCurley "${[^}]*}" contained display " fallback (if nothing else matches)
syn match phpinterpSimpleBracketsInner "\w\+" contained
syn match phpInterpSimpleBrackets "\[\h\w*]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
syn match phpInterpSimpleBrackets "\[\d\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
syn match phpInterpSimpleBrackets "\[0[xX]\x\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
syn match phpInterpSimple "\$\h\w*\(\[[^]]*\]\|->\h\w*\)\?" contained contains=phpInterpSimpleBrackets,phpIdentifier,phpInterpSimpleError,phpMethods,phpMemberSelector display
syn match phpInterpVarname "\h\w*" contained
syn match phpInterpMethodName "\h\w*" contained " default color
syn match phpInterpSimpleCurly "\${\h\w*}" contains=phpInterpVarname contained extend
syn region phpInterpDollarCurley1Helper matchgroup=phpParent start="{" end="\[" contains=phpInterpVarname contained
syn region phpInterpDollarCurly1 matchgroup=phpParent start="\${\h\w*\["rs=s+1 end="]}" contains=phpInterpDollarCurley1Helper,@phpClConst contained extend
syn match phpInterpDollarCurley2Helper "{\h\w*->" contains=phpBrackets,phpInterpVarname,phpMemberSelector contained
syn region phpInterpDollarCurly2 matchgroup=phpParent start="\${\h\w*->"rs=s+1 end="}" contains=phpInterpDollarCurley2Helper,phpInterpMethodName contained
syn match phpInterpBogusDollarCurley "${\h\w*->}" contained display
syn match phpInterpBogusDollarCurley "${\h\w*\[]}" contained display
syn region phpInterpComplex matchgroup=phpParent start="{\$"rs=e-1 end="}" contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
" define a cluster to get all interpolation syntaxes for double-quoted strings
syn cluster phpInterpDouble contains=phpInterpSimple,phpInterpSimpleCurly,phpInterpDollarCurly1,phpInterpDollarCurly2,phpInterpBogusDollarCurley,phpInterpComplex
" Methoden
syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelector display
" Include
syn keyword phpInclude include require include_once require_once contained
syn keyword phpInclude include require include_once require_once use contained
" Peter Hodge - added 'clone' keyword
" Define
@@ -322,12 +348,18 @@ syn match phpNumber "\<0x\x\{1,8}\>" contained display
" Float
syn match phpFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" contained display
" SpecialChar
syn match phpSpecialChar "\\[abcfnrtyv\\]" contained display
syn match phpSpecialChar "\\\d\{3}" contained contains=phpOctalError display
syn match phpSpecialChar "\\x\x\{2}" contained display
syn match phpDoubleSpecialChar "\\\"" contained display
syn match phpSingleSpecialChar "\\[\\']" contained display
" Backslash escapes
syn case match
" for double quotes and heredoc
syn match phpBackslashSequences "\\[fnrtv\\\"$]" contained display
syn match phpBackslashSequences "\\\d\{1,3}" contained contains=phpOctalError display
syn match phpBackslashSequences "\\x\x\{1,2}" contained display
" additional sequence for double quotes only
syn match phpBackslashDoubleQuote "\\[\"]" contained display
" for single quotes only
syn match phpBackslashSingleQuote "\\[\\']" contained display
syn case ignore
" Error
syn match phpOctalError "[89]" contained display
@@ -356,23 +388,32 @@ endif
" String
if exists("php_parent_error_open")
syn region phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex,phpDoubleSpecialChar contained keepend
syn region phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex contained keepend
syn region phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpSingleSpecialChar contained keepend
syn region phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained keepend
syn region phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained keepend
syn region phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote contained keepend
else
syn region phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex,phpDoubleSpecialChar contained extend keepend
syn region phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
syn region phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpSingleSpecialChar contained keepend extend
syn region phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained extend keepend
syn region phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
syn region phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote contained keepend extend
endif
" HereDoc
" HereDoc and NowDoc
if version >= 600
syn case match
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\z(\I\i*\)$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
" HereDoc
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\I\i*\)\2$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
" NowDoc
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\I\i*\)'$" end="^\z1\(;\=$\)\@=" contained keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop keepend extend
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop keepend extend
syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript keepend extend
syn case ignore
endif
@@ -389,7 +430,7 @@ else
endif
syn cluster phpClConst contains=phpFunctions,phpIdentifier,phpConditional,phpRepeat,phpStatement,phpOperator,phpRelation,phpStringSingle,phpStringDouble,phpBacktick,phpNumber,phpFloat,phpKeyword,phpType,phpBoolean,phpStructure,phpMethodsVar,phpConstant,phpCoreConstant,phpException
syn cluster phpClInside contains=@phpClConst,phpComment,phpLabel,phpParent,phpParentError,phpInclude,phpHereDoc
syn cluster phpClInside contains=@phpClConst,phpComment,phpLabel,phpParent,phpParentError,phpInclude,phpHereDoc,phpNowDoc
syn cluster phpClFunction contains=@phpClInside,phpDefine,phpParentError,phpStorageClass
syn cluster phpClTop contains=@phpClFunction,phpFoldFunction,phpFoldClass,phpFoldInterface,phpFoldTry,phpFoldCatch
@@ -452,17 +493,14 @@ else
syn keyword phpStorageClass final global private protected public static contained
endif
" TODO: fold on "trait". For now just make sure it gets colored:
syn keyword phpStructure trait
" ================================================================
" Peter Hodge - June 9, 2006
" Some of these changes (highlighting isset/unset/echo etc) are not so
" critical, but they make things more colourful. :-)
" corrected highlighting for an escaped '\$' inside a double-quoted string
syn match phpSpecialChar "\\\$" contained display
" highlight object variables inside strings
syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelector display containedin=phpStringDouble
" highlight constant E_STRICT
syntax case match
syntax keyword phpCoreConstant E_STRICT contained
@@ -613,13 +651,21 @@ if version >= 508 || !exists("did_php_syn_inits")
HiLink phpType Type
HiLink phpInclude Include
HiLink phpDefine Define
HiLink phpSpecialChar SpecialChar
HiLink phpDoubleSpecialChar SpecialChar
HiLink phpSingleSpecialChar SpecialChar
HiLink phpBackslashSequences SpecialChar
HiLink phpBackslashDoubleQuote SpecialChar
HiLink phpBackslashSingleQuote SpecialChar
HiLink phpParent Delimiter
HiLink phpBrackets Delimiter
HiLink phpIdentifierConst Delimiter
HiLink phpParentError Error
HiLink phpOctalError Error
HiLink phpInterpSimpleError Error
HiLink phpInterpBogusDollarCurley Error
HiLink phpInterpDollarCurly1 Error
HiLink phpInterpDollarCurly2 Error
HiLink phpInterpSimpleBracketsInner String
HiLink phpInterpSimpleCurly Delimiter
HiLink phpInterpVarname Identifier
HiLink phpTodo Todo
HiLink phpMemberSelector Structure
if exists("php_oldStyle")
@@ -631,13 +677,13 @@ if version >= 508 || !exists("did_php_syn_inits")
hi phpIdentifier guifg=DarkGray ctermfg=Brown
hi phpIdentifierSimply guifg=DarkGray ctermfg=Brown
else
HiLink phpIntVar Identifier
HiLink phpEnvVar Identifier
HiLink phpOperator Operator
HiLink phpVarSelector Operator
HiLink phpRelation Operator
HiLink phpIdentifier Identifier
HiLink phpIdentifierSimply Identifier
HiLink phpIntVar Identifier
HiLink phpEnvVar Identifier
HiLink phpOperator Operator
HiLink phpVarSelector Operator
HiLink phpRelation Operator
HiLink phpIdentifier Identifier
HiLink phpIdentifierSimply Identifier
endif
delcommand HiLink
@@ -649,4 +695,8 @@ if main_syntax == 'php'
unlet main_syntax
endif
" put cpoptions back the way we found it
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 sts=2 sw=2 expandtab
+4 -4
View File
@@ -2,7 +2,7 @@
" Language: R Help File
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
" Last Change: Sat Feb 19, 2011 02:13PM
" Last Change: Fri Oct 14, 2011 09:54PM
" Version: 0.7.4
" SVN: $Id: rhelp.vim 90 2010-11-22 10:58:11Z ranke $
" Remarks: - Includes R syntax highlighting in the appropriate
@@ -192,9 +192,9 @@ syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}"
syn match rhelpComment /%.*$/
" Error {{{1
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpCurlyError
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpParenError
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rhelpError,rhelpCurlyError,rhelpParenError
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
syn match rhelpError /[)\]}]/
syn match rhelpBraceError /[)}]/ contained
syn match rhelpCurlyError /[)\]]/ contained
+55 -26
View File
@@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Feb 11, 2011
" Version: 115
" Last Change: Aug 16, 2011
" Version: 118
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr)
@@ -16,12 +16,38 @@ elseif exists("b:current_syntax")
finish
endif
" AFAICT "." should be considered part of the iskeyword. Using iskeywords in
" syntax is dicey, so the following code permits the user to prevent/override
" its setting.
if exists("g:sh_isk") " override support
exe "setlocal isk=".g:sh_isk
elseif !exists("g:sh_noisk") " prevent modification support
setlocal isk+=.
endif
" trying to answer the question: which shell is /bin/sh, really?
if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
if executable("/bin/sh")
if resolve("/bin/sh") =~ 'bash$'
let g:is_bash= 1
elseif resolve("/bin/sh") =~ 'ksh$'
let g:is_ksh = 1
endif
elseif executable("/usr/bin/sh")
if resolve("/usr/bin//sh") =~ 'bash$'
let g:is_bash= 1
elseif resolve("/usr/bin//sh") =~ 'ksh$'
let g:is_ksh = 1
endif
endif
endif
" handling /bin/sh with is_kornshell/is_sh {{{1
" b:is_sh is set when "#! /bin/sh" is found;
" However, it often is just a masquerade by bash (typically Linux)
" or kornshell (typically workstations with Posix "sh").
" So, when the user sets "is_bash" or "is_kornshell",
" a b:is_sh is converted into b:is_bash/b:is_kornshell,
" So, when the user sets "g:is_bash", "g:is_kornshell",
" or "g:is_posix", a b:is_sh is converted into b:is_bash/b:is_kornshell,
" respectively.
if !exists("b:is_kornshell") && !exists("b:is_bash")
if exists("g:is_posix") && !exists("g:is_kornshell")
@@ -74,7 +100,7 @@ endif
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shDeref,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement
syn cluster shArithList contains=@shArithParenList,shParenError
syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
syn cluster shColonList contains=@shCaseList
syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
@@ -84,7 +110,7 @@ syn cluster shDerefVarList contains=shDerefOp,shDerefVarArray,shDerefOpError
syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
if exists("b:is_kornshell") || exists("b:is_bash")
syn cluster shFunctionList add=shRepeat
syn cluster shFunctionList add=shDblBrace,shDblParen
@@ -94,8 +120,8 @@ syn cluster shHereList contains=shBeginHere,shHerePayload
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial
syn cluster shLoopList contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest,@shErrorList,shSet
syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shExDoubleQuote,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shExDoubleQuote,shDoubleQuote,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
" Echo: {{{1
" ====
@@ -111,8 +137,8 @@ syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" ski
" =====
if exists("b:is_kornshell") || exists("b:is_bash")
syn match shStatement "\<alias\>"
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\w\+\)\@=" skip="\\$" end="\>\|`"
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\w\+=\)\@=" skip="\\$" end="="
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`"
syn region shAlias matchgroup=shStatement start="\<alias\>\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="="
endif
" Error Codes: {{{1
@@ -152,8 +178,8 @@ syn match shPattern "\<\S\+\())\)\@=" contained contains=shExSingleQuote,shSin
" Subshells: {{{1
" ==========
syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shMoreSpecial
syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")" contains=@shSubShList nextgroup=shMoreSpecial
syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shMoreSpecial
syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")" contains=@shSubShList nextgroup=shMoreSpecial
" Tests: {{{1
"=======
@@ -162,7 +188,7 @@ syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\
syn match shTestOpr contained "<=\|>=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
syn match shTestOpr contained '=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestPattern contained '\w\+'
syn match shTestDoubleQuote contained '"[^"]*"'
syn match shTestDoubleQuote contained '\%(\%(\\\\\)*\\\)\@<!"[^"]*"'
syn match shTestSingleQuote contained '\\.'
syn match shTestSingleQuote contained "'[^']*'"
if exists("b:is_kornshell") || exists("b:is_bash")
@@ -178,11 +204,11 @@ syn match shCharClass contained "\[:\(backspace\|escape\|return\|xdigit\|alnum
" ======
if (g:sh_fold_enabled % (s:sh_fold_ifdofor * 2))/s:sh_fold_ifdofor
syn region shDo fold transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf fold transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional end="\<;\_s*then\>" end="\<fi\>" contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey
syn region shIf fold transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional end="\<;\_s*then\>" end="\<fi\>" contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn region shFor fold matchgroup=shLoop start="\<for\_s" end="\<in\_s" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
else
syn region shDo transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional end="\<;\_s*then\>" end="\<fi\>" contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey
syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional end="\<;\_s*then\>" end="\<fi\>" contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn region shFor matchgroup=shLoop start="\<for\_s" end="\<in\>" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
endif
if exists("b:is_kornshell") || exists("b:is_bash")
@@ -224,7 +250,7 @@ syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+]+ cont
"======
syn match shWrapLineOperator "\\$"
syn region shCommandSub start="`" skip="\\\\\|\\." end="`" contains=@shCommandSubList
syn match shEscape contained '\\.'
syn match shEscape contained '\\.' contains=@shCommandSubList
" $() and $(()): {{{1
" $(..) is not supported by sh (Bourne shell). However, apparently
@@ -243,7 +269,7 @@ endif
if exists("b:is_bash")
syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
syn cluster shCaseList add=bashAdminStatement,bashStatement
syn keyword bashSpecialVariables contained BASH BASH_ENV BASH_VERSINFO BASH_VERSION CDPATH DIRSTACK EUID FCEDIT FIGNORE GLOBIGNORE GROUPS HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_MESSAGES LINENO MACHTYPE MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELLOPTS SHLVL TIMEFORMAT TIMEOUT UID auto_resume histchars
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 install less ls mkdir mv rm rmdir rpm sed sleep sort strip tail touch
syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
endif
@@ -275,7 +301,8 @@ else
syn region shExDoubleQuote matchGroup=Error start=+\$"+ skip=+\\\\\|\\.+ end=+"+ contains=shStringSpecial
endif
syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell
syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
"syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
syn match shStringSpecial "[^[:print:] \t]" contained
syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]"
syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial
@@ -333,7 +360,8 @@ endif
" Here Strings: {{{1
" =============
if exists("b:is_bash")
" 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("g:is_posix"))
syn match shRedir "<<<"
endif
@@ -410,10 +438,10 @@ syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" co
" ksh bash : ${parameter##pattern} remove large left pattern
" ksh bash : ${parameter%pattern} remove small right pattern
" ksh bash : ${parameter%%pattern} remove large right pattern
" ksh bash : ${parameter^pattern} Case modification
" ksh bash : ${parameter^^pattern} Case modification
" ksh bash : ${parameter,pattern} Case modification
" ksh bash : ${parameter,,pattern} Case modification
" bash : ${parameter^pattern} Case modification
" bash : ${parameter^^pattern} Case modification
" bash : ${parameter,pattern} Case modification
" bash : ${parameter,,pattern} Case modification
syn cluster shDerefPatternList contains=shDerefPattern,shDerefString
syn match shDerefOpError contained ":[[:punct:]]"
syn match shDerefOp contained ":\=[-=?]" nextgroup=@shDerefPatternList
@@ -421,12 +449,13 @@ syn match shDerefOp contained ":\=+" nextgroup=@shDerefPatternList
if exists("b:is_bash") || exists("b:is_kornshell")
syn match shDerefOp contained "#\{1,2}" nextgroup=@shDerefPatternList
syn match shDerefOp contained "%\{1,2}" nextgroup=@shDerefPatternList
syn match shDerefOp contained "\^\{1,2}" nextgroup=@shDerefPatternList
syn match shDerefOp contained ",\{1,2}" nextgroup=@shDerefPatternList
syn match shDerefPattern contained "[^{}]\+" contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern
syn region shDerefPattern contained start="{" end="}" contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern
syn match shDerefEscape contained '\%(\\\\\)*\\.'
endif
if exists("b:is_bash")
syn match shDerefOp contained "[,^]\{1,2}" nextgroup=@shDerefPatternList
endif
syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!'+ end=+'+ contains=shStringSpecial
syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial
syn match shDerefString contained "\\["']" nextgroup=shDerefPattern
@@ -445,7 +474,7 @@ if exists("b:is_bash")
endif
" Arithmetic Parenthesized Expressions: {{{1
syn region shParen matchgroup=shArithRegion start='(\ze[^(]' end=')' contains=@shArithParenList
syn region shParen matchgroup=shArithRegion start='(\%(\ze[^(]\|$\)' end=')' contains=@shArithParenList
" Useful sh Keywords: {{{1
" ===================
+6 -6
View File
@@ -43,11 +43,11 @@ syn keyword sqrSection begin-program begin-report begin-setup
syn keyword sqrSection end-footing end-heading end-procedure
syn keyword sqrSection end-program end-report end-setup
syn keyword sqrParagraph alter-color-map alter-conection
syn keyword sqrParagraph alter-color-map alter-connection
syn keyword sqrParagraph alter-locale alter-printer alter-report
syn keyword sqrParagraph begin-document begin-execute begin-select
syn keyword sqrParagraph begin-sql declare-chart declare-image
syn keyword sqrParagraph declare-color-map declare-conection
syn keyword sqrParagraph declare-color-map declare-connection
syn keyword sqrParagraph declare-layout declare-printer
syn keyword sqrParagraph declare-report declare-procedure
syn keyword sqrParagraph declare-toc declare-variable end-declare
@@ -224,16 +224,16 @@ if version >= 600
" See also the sqrString section above for handling of ! characters
" inside of strings. (Those patterns override the ones below.)
syn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
" the ! can't be preceeded by another !,
" the ! can't be preceded by another !,
" and must be followed by at least one
" character other than ! or =, or immediately
" by the end-of-line
syn match sqrComment /^!=.*/ contains=sqrTodo
syn match sqrComment /^!!.*/ contains=sqrTodo
syn match sqrError /^\s\+\zs!=.*/
" it's an error to have "!=" preceeded by
" it's an error to have "!=" preceded by
" just whitespace on the line ("!="
" preceeded by non-whitespace is treated
" preceded by non-whitespace is treated
" as neither a comment nor an error, since
" it is often correct, i.e.
" if #count != 7
@@ -259,7 +259,7 @@ endif
" Define the default highlighting.
" For version 5.7 and earlier, only when not done already.
" For version 5.8 and later, only when an item doesn;t have hightlighting yet.
" For version 5.8 and later, only when an item doesn't have highlighting yet.
if version >= 508 || !exists("did_sqr_syn_inits")
if version < 508
let did_sqr_syn_inits = 1
+144 -53
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Dec 07, 2010
" Version: 64
" Last Change: Oct 12, 2011
" Version: 69
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Notes: {{{1
@@ -37,6 +37,8 @@ if version < 600
elseif exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
scriptencoding utf-8
" Define the default highlighting. {{{1
@@ -101,6 +103,9 @@ endif
if b:tex_stylish
setlocal isk+=@-@
endif
if exists("g:tex_nospell") && g:tex_nospell && !exists("g:tex_comment_nospell")
let g:tex_comment_nospell= 1
endif
" Clusters: {{{1
" --------
@@ -110,8 +115,13 @@ if !exists("g:tex_no_error")
endif
syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texSectionMarker,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract
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 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
if !exists("g:tex_nospell") || !g: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 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 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 texRefGroup contains=texMatcher,texComment,texDelimiter
if !exists("tex_no_math")
syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
@@ -147,7 +157,11 @@ else
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup
endif
syn region texParen start="(" end=")" contains=@texMatchGroup,@Spell
if !exists("g:tex_nospell") || !g:tex_nospell
syn region texParen start="(" end=")" contains=@texMatchGroup,@Spell
else
syn region texParen start="(" end=")" contains=@texMatchGroup
endif
if !exists("g:tex_no_error")
syn match texError "[}\])]"
endif
@@ -155,7 +169,8 @@ if !exists("tex_no_math")
if !exists("g:tex_no_error")
syn match texMathError "}" contained
endif
syn region texMathMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
syn region texMathMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
" syn region texMathMatcher matchgroup=Unique start="[^\\]\zs{" skip="\\\\\|\\[{}]" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
endif
" TeX/LaTeX keywords: {{{1
@@ -173,6 +188,7 @@ endif
" TeX/LaTeX delimiters: {{{1
syn match texDelimiter "&"
syn match texDelimiter "\\\\"
syn match texDelimiter "[{}]"
" Tex/Latex Options: {{{1
syn match texOption "[^\\]\zs#\d\+\|^#\d\+"
@@ -273,33 +289,59 @@ syn match texSpaceCode "\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=
syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
" Sections, subsections, etc: {{{1
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup,@Spell
if !exists("g:tex_nospell") || !g:tex_nospell
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup,@Spell
else
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell
endif
else
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup
else
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup
endif
endif
" Bad Math (mismatched): {{{1
if !exists("tex_no_math")
syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|smallmatrix\|xxalignat\)\s*}"
syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
syn match texBadMath "\\[\])]"
endif
@@ -344,6 +386,7 @@ if !exists("tex_no_math")
call TexNewMathZone("G","gather",1)
call TexNewMathZone("H","math",1)
call TexNewMathZone("I","multline",1)
call TexNewMathZone("J","subequations",0)
call TexNewMathZone("K","xalignat",1)
call TexNewMathZone("L","xxalignat",0)
@@ -364,7 +407,11 @@ if !exists("tex_no_math")
syn match texMathOper "[_^=]" contained
" Text Inside Math Zones: {{{2
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell
if !exists("g:tex_nospell") || !g:tex_nospell
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell
else
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup
endif
" \left..something.. and \right..something.. support: {{{2
syn match texMathDelimBad contained "\S"
@@ -501,16 +548,15 @@ else
endif
" Tex Reference Zones: {{{1
syn match texRefZone '\\@samp\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\nocite\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\bibliography\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\label\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\\(page\|eq\)ref\>' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\v\=ref' skipwhite nextgroup=texRefLabel
syn match texRefZone '\\cite\%([tp]\*\=\)\=' skipwhite nextgroup=texCiteOption,texCite
syn region texRefLabel contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup
syn region texCiteOption contained matchgroup=Delimiter start='\[' end=']' contains=@Spell,@texRefGroup,@texMathZones,texRefZone nextgroup=texCiteOption,texCite
syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texCite
syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\label{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\\(page\|eq\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\v\=ref{" end="}\|%stopzone\>" contains=@texRefGroup
syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite
syn region texRefOption contained matchgroup=Delimiter start='\[' end=']' contains=@texRefGroup,texRefZone nextgroup=texRefOption,texCite
syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texRefZone,texCite
" Handle newcommand, newenvironment : {{{1
syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
@@ -556,12 +602,14 @@ if has("conceal") && &enc == 'utf-8'
if s:tex_conceal =~ 'm'
let s:texMathList=[
\ ['|' , '‖'],
\ ['aleph' , 'ℵ'],
\ ['angle' , '∠'],
\ ['approx' , '≈'],
\ ['ast' , ''],
\ ['asymp' , '≍'],
\ ['backepsilon' , '∍'],
\ ['backsimeq' , '≃'],
\ ['backslash' , ''],
\ ['barwedge' , '⊼'],
\ ['because' , '∵'],
\ ['between' , '≬'],
@@ -592,9 +640,11 @@ if has("conceal") && &enc == 'utf-8'
\ ['circlearrowright', '↻'],
\ ['circledast' , '⊛'],
\ ['circledcirc' , '⊚'],
\ ['clubsuit' , '♣'],
\ ['complement' , '∁'],
\ ['cong' , '≅'],
\ ['coprod' , '∐'],
\ ['copyright' , '©'],
\ ['cup' , ''],
\ ['Cup' , '⋓'],
\ ['curlyeqprec' , '⋞'],
@@ -603,6 +653,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['curlywedge' , '⋏'],
\ ['dashv' , '⊣'],
\ ['diamond' , '⋄'],
\ ['diamondsuit' , '♢'],
\ ['div' , '÷'],
\ ['doteq' , '≐'],
\ ['doteqdot' , '≑'],
@@ -621,8 +672,10 @@ if has("conceal") && &enc == 'utf-8'
\ ['eqslantgtr' , '⪖'],
\ ['eqslantless' , '⪕'],
\ ['equiv' , '≡'],
\ ['ell' , ''],
\ ['exists' , '∃'],
\ ['fallingdotseq' , '≒'],
\ ['flat' , '♭'],
\ ['forall' , '∀'],
\ ['ge' , '≥'],
\ ['geq' , '≥'],
@@ -633,11 +686,14 @@ if has("conceal") && &enc == 'utf-8'
\ ['gtreqless' , '⋛'],
\ ['gtrless' , '≷'],
\ ['gtrsim' , '≳'],
\ ['hbar' , 'ℏ'],
\ ['heartsuit' , '♡'],
\ ['hookleftarrow' , '↩'],
\ ['hookrightarrow' , '↪'],
\ ['iiint' , '∭'],
\ ['iint' , '∬'],
\ ['Im' , ''],
\ ['imath' , 'ɩ'],
\ ['in' , '∈'],
\ ['infty' , '∞'],
\ ['int' , '∫'],
@@ -650,7 +706,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['left(' , '('],
\ ['left\[' , '['],
\ ['left\\{' , '{'],
\ ['Leftrightarrow' , '⇔'],
\ ['leftrightarrow' , '⇔'],
\ ['leftrightsquigarrow', '↭'],
\ ['leftthreetimes' , '⋋'],
\ ['leq' , '≤'],
@@ -667,6 +723,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['mid' , ''],
\ ['mp' , '∓'],
\ ['nabla' , '∇'],
\ ['natural' , '♮'],
\ ['ncong' , '≇'],
\ ['nearrow' , '↗'],
\ ['ne' , '≠'],
@@ -705,6 +762,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['oslash' , '⊘'],
\ ['otimes' , '⊗'],
\ ['owns' , '∋'],
\ ['P' , '¶'],
\ ['partial' , '∂'],
\ ['perp' , '⊥'],
\ ['pitchfork' , '⋔'],
@@ -716,6 +774,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['precnapprox' , '⪹'],
\ ['precneqq' , '⪵'],
\ ['precsim' , '≾'],
\ ['prime' , ''],
\ ['prod' , '∏'],
\ ['propto' , '∝'],
\ ['rceil' , '⌉'],
@@ -732,9 +791,12 @@ if has("conceal") && &enc == 'utf-8'
\ ['risingdotseq' , '≓'],
\ ['rmoustache' , '╮'],
\ ['rtimes' , '⋊'],
\ ['S' , '§'],
\ ['searrow' , '↘'],
\ ['setminus' , ''],
\ ['sharp' , '♯'],
\ ['sim' , ''],
\ ['spadesuit' , '♠'],
\ ['sphericalangle' , '∢'],
\ ['sqcap' , '⊓'],
\ ['sqcup' , '⊔'],
@@ -767,6 +829,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['times' , '×'],
\ ['to' , '→'],
\ ['top' , ''],
\ ['triangle' , '∆'],
\ ['triangleleft' , '⊲'],
\ ['trianglelefteq' , '⊴'],
\ ['triangleq' , '≜'],
@@ -788,6 +851,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['vee' , ''],
\ ['Vvdash' , '⊪'],
\ ['wedge' , '∧'],
\ ['wp' , '℘'],
\ ['wr' , '≀']]
for texmath in s:texMathList
if texmath[0] =~ '\w$'
@@ -804,6 +868,27 @@ if has("conceal") && &enc == 'utf-8'
syn match texMathSymbol '\\gg\>' contained conceal cchar=
syn match texMathSymbol '\\ll\>' contained conceal cchar=
endif
syn match texMathSymbol '\\hat{a}' contained conceal cchar=â
syn match texMathSymbol '\\hat{A}' contained conceal cchar=Â
syn match texMathSymbol '\\hat{c}' contained conceal cchar=ĉ
syn match texMathSymbol '\\hat{C}' contained conceal cchar=Ĉ
syn match texMathSymbol '\\hat{e}' contained conceal cchar=ê
syn match texMathSymbol '\\hat{E}' contained conceal cchar=Ê
syn match texMathSymbol '\\hat{g}' contained conceal cchar=ĝ
syn match texMathSymbol '\\hat{G}' contained conceal cchar=Ĝ
syn match texMathSymbol '\\hat{i}' contained conceal cchar=î
syn match texMathSymbol '\\hat{I}' contained conceal cchar=Î
syn match texMathSymbol '\\hat{o}' contained conceal cchar=ô
syn match texMathSymbol '\\hat{O}' contained conceal cchar=Ô
syn match texMathSymbol '\\hat{s}' contained conceal cchar=ŝ
syn match texMathSymbol '\\hat{S}' contained conceal cchar=Ŝ
syn match texMathSymbol '\\hat{u}' contained conceal cchar=û
syn match texMathSymbol '\\hat{U}' contained conceal cchar=Û
syn match texMathSymbol '\\hat{w}' contained conceal cchar=ŵ
syn match texMathSymbol '\\hat{W}' contained conceal cchar=Ŵ
syn match texMathSymbol '\\hat{y}' contained conceal cchar=ŷ
syn match texMathSymbol '\\hat{Y}' contained conceal cchar=Ŷ
endif
" Greek {{{2
@@ -855,8 +940,8 @@ if has("conceal") && &enc == 'utf-8'
" Superscripts/Subscripts {{{2
if s:tex_conceal =~ 's'
syn region texSuperscript matchgroup=Delimiter start='\^{' end='}' contained concealends contains=texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
syn region texSubscript matchgroup=Delimiter start='_{' end='}' contained concealends contains=texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
syn region texSuperscript matchgroup=Delimiter start='\^{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
syn region texSubscript matchgroup=Delimiter start='_{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
fun! s:SuperSub(group,leader,pat,cchar)
exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar
exe 'syn match '.a:group."s '".a:pat."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s'
@@ -980,18 +1065,23 @@ if has("conceal") && &enc == 'utf-8'
endfor
endfun
" \` \' \^ \" \~ \. \c \H \k \r \u \v
call s:Accents('a','à','á','â','ä','ã',' ',' ',' ','ą','å','ă','ă')
call s:Accents('A','À','Á','Â','Ä','Ã',' ',' ',' ','Ą','Å','Ă','Ă')
call s:Accents('a','à','á','â','ä','ã','ȧ',' ',' ','ą','å','ă','ă')
call s:Accents('A','À','Á','Â','Ä','Ã','Ȧ',' ',' ','Ą','Å','Ă','Ă')
call s:Accents('c',' ','ć','ĉ',' ',' ','ċ','ç',' ',' ',' ',' ','č')
call s:Accents('C',' ','Ć','Ĉ',' ',' ','Ċ','Ç',' ',' ',' ',' ','Č')
call s:Accents('d',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ď')
call s:Accents('D',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ď')
call s:Accents('e','è','é','ê','ë','ẽ','ė','ȩ',' ','ę',' ','ĕ','ě')
call s:Accents('E','È','É','Ê','Ë','Ẽ','Ė','Ȩ',' ','Ę',' ','Ĕ','Ě')
call s:Accents('g',' ',' ',' ',' ',' ','ġ','ģ',' ',' ',' ','ğ',' ')
call s:Accents('G',' ',' ',' ',' ',' ','Ġ','Ģ',' ',' ',' ','Ğ',' ')
call s:Accents('g',' ','ǵ','ĝ',' ',' ','ġ','ģ',' ',' ',' ','ğ',' ')
call s:Accents('G',' ','Ǵ','Ĝ',' ',' ','Ġ','Ģ',' ',' ',' ','Ğ',' ')
call s:Accents('h',' ',' ','ĥ',' ',' ',' ',' ',' ',' ',' ',' ','ȟ')
call s:Accents('H',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ȟ')
call s:Accents('i','ì','í','î','ï','ĩ','į',' ',' ',' ',' ','ĭ',' ')
call s:Accents('I','Ì','Í','Î','Ï','Ĩ','İ',' ',' ',' ',' ','Ĭ',' ')
call s:Accents('J',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ǰ')
call s:Accents('k',' ',' ',' ',' ',' ',' ','ķ',' ',' ',' ',' ',' ')
call s:Accents('K',' ',' ',' ',' ',' ',' ','Ķ',' ',' ',' ',' ',' ')
call s:Accents('l',' ','ĺ','ľ',' ',' ',' ','ļ',' ',' ',' ',' ','ľ')
call s:Accents('L',' ','Ĺ','Ľ',' ',' ',' ','Ļ',' ',' ',' ',' ','Ľ')
call s:Accents('n',' ','ń',' ',' ','ñ',' ','ņ',' ',' ',' ',' ','ň')
@@ -1000,12 +1090,12 @@ if has("conceal") && &enc == 'utf-8'
call s:Accents('O','Ò','Ó','Ô','Ö','Õ','Ȯ',' ','Ő','Ǫ',' ','Ŏ',' ')
call s:Accents('r',' ','ŕ',' ',' ',' ',' ','ŗ',' ',' ',' ',' ','ř')
call s:Accents('R',' ','Ŕ',' ',' ',' ',' ','Ŗ',' ',' ',' ',' ','Ř')
call s:Accents('s',' ','ś','ŝ',' ',' ',' ','ş',' ',' ',' ',' ','š')
call s:Accents('s',' ','ś','ŝ',' ',' ',' ','ş',' ','ȿ',' ',' ','š')
call s:Accents('S',' ','Ś','Ŝ',' ',' ',' ','Ş',' ',' ',' ',' ','Š')
call s:Accents('t',' ',' ',' ',' ',' ',' ','ţ',' ',' ',' ',' ','ť')
call s:Accents('T',' ',' ',' ',' ',' ',' ','Ţ',' ',' ',' ',' ','Ť')
call s:Accents('u','ù','ú','û','ü','ũ',' ',' ','ű',' ','ů','ŭ',' ')
call s:Accents('U','Ù','Ú','Û','Ü','Ũ',' ',' ','Ű',' ','Ů','Ŭ',' ')
call s:Accents('u','ù','ú','û','ü','ũ',' ',' ','ű','ų','ů','ŭ','ǔ')
call s:Accents('U','Ù','Ú','Û','Ü','Ũ',' ',' ','Ű','Ų','Ů','Ŭ','Ǔ')
call s:Accents('w',' ',' ','ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ')
call s:Accents('W',' ',' ','Ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ')
call s:Accents('y','ỳ','ý','ŷ','ÿ','ỹ',' ',' ',' ',' ',' ',' ',' ')
@@ -1068,6 +1158,7 @@ if did_tex_syntax_inits == 1
HiLink texError Error
endif
HiLink texCite texRefZone
HiLink texDefCmd texDef
HiLink texDefName texDef
HiLink texDocType texCmdName
@@ -1092,7 +1183,6 @@ if did_tex_syntax_inits == 1
HiLink texMathZoneV texMath
HiLink texMathZoneZ texMath
endif
HiLink texRefZone Identifier
HiLink texSectionMarker texCmdName
HiLink texSectionName texSection
HiLink texSpaceCode texStatement
@@ -1101,7 +1191,6 @@ if did_tex_syntax_inits == 1
HiLink texTypeStyle texType
" Basic TeX highlighting groups
HiLink texCite Special
HiLink texCmdArgs Number
HiLink texCmdName Statement
HiLink texComment Comment
@@ -1117,7 +1206,7 @@ if did_tex_syntax_inits == 1
HiLink texNewCmd Statement
HiLink texNewEnv Statement
HiLink texOption Number
HiLink texRefLabel Special
HiLink texRefZone Special
HiLink texSection PreCondit
HiLink texSpaceCodeChar Special
HiLink texSpecialChar SpecialChar
@@ -1130,7 +1219,9 @@ if did_tex_syntax_inits == 1
delcommand HiLink
endif
" Current Syntax: {{{1
" Cleanup: {{{1
unlet s:extfname
let b:current_syntax = "tex"
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: ts=8 fdm=marker
+18 -16
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Verilog
" Maintainer: Mun Johl <Mun.Johl@emulex.com>
" Last Update: Fri Oct 13 11:44:32 PDT 2006
" Last Update: Wed Jul 20 16:04:19 PDT 2011
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -11,11 +11,13 @@ elseif exists("b:current_syntax")
finish
endif
" Set the local value of the 'iskeyword' option
" Set the local value of the 'iskeyword' option.
" NOTE: '?' was added so that verilogNumber would be processed correctly when
" '?' is the last character of the number.
if version >= 600
setlocal iskeyword=@,48-57,_,192-255
setlocal iskeyword=@,48-57,63,_,192-255
else
set iskeyword=@,48-57,_,192-255
set iskeyword=@,48-57,63,_,192-255
endif
" A bunch of useful Verilog keywords
@@ -48,7 +50,7 @@ syn keyword verilogLabel begin end fork join
syn keyword verilogConditional if else case casex casez default endcase
syn keyword verilogRepeat forever repeat while for
syn keyword verilogTodo contained TODO
syn keyword verilogTodo contained TODO FIXME
syn match verilogOperator "[&|~><!)(*#%@+/=?:;}{,.\^\-\[\]]"
@@ -113,17 +115,17 @@ if version >= 508 || !exists("did_verilog_syn_inits")
" The default highlighting.
HiLink verilogCharacter Character
HiLink verilogConditional Conditional
HiLink verilogRepeat Repeat
HiLink verilogString String
HiLink verilogTodo Todo
HiLink verilogComment Comment
HiLink verilogConstant Constant
HiLink verilogLabel Label
HiLink verilogNumber Number
HiLink verilogOperator Special
HiLink verilogStatement Statement
HiLink verilogGlobal Define
HiLink verilogDirective SpecialComment
HiLink verilogRepeat Repeat
HiLink verilogString String
HiLink verilogTodo Todo
HiLink verilogComment Comment
HiLink verilogConstant Constant
HiLink verilogLabel Label
HiLink verilogNumber Number
HiLink verilogOperator Special
HiLink verilogStatement Statement
HiLink verilogGlobal Define
HiLink verilogDirective SpecialComment
HiLink verilogEscape Special
delcommand HiLink
+34 -27
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 7.3 script
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Jan 10, 2011
" Version: 7.3-07
" Last Change: Jul 18, 2011
" Version: 7.3-08
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -22,35 +22,35 @@ syn keyword vimCommand contained abc[lear] argdo au bf[irst] bp[revious] br[ewin
syn keyword vimCommand contained abo[veleft] arge[dit] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon elsei[f] endfun Error filename fin[d] folddoc[losed] fu[nction] gs?pat?sub? helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz nb[key] nkf o ownsyntax pe p:h:h p:r profd[el] pta[g] ptn[ext] pw[d] python3 r redi[r] Rena ri[ght] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spelld[ump] sp[lit] start stopi[nsert] s?version?main? sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] X XMLent xunmenu
syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] em[enu] endf[unction] ex files fini[sh] foldd[oopen] g gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p ped[it] po[p] pre[serve] prof[ile] ptf[irst] ptN[ext] py q re red[o] Renu rightb[elow] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spe[llgood] spr[evious] startg[replace] sts[elect] s?version?main?:p syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm TOhtml try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] xa[ll] XMLns xwininfo
syn keyword vimCommand contained Allargs argl[ocal] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier e:e emenu* en[dif] exi[t] filet fir[st] foldo[pen] get gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] mz[scheme] ne noa omapc[lear] p: pe[rl] popu prev[ious] promptf[ind] ptj[ump] ptp[revious] py3 qa[ll] r:e redr[aw] res[ize] r:r rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spelli[nfo] sre[wind] star[tinsert] sun[hide] sv[iew] synlist tabe[dit] tabnew tabs te[aroff] tm[enu] to[pleft] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] x[it] xnoreme y[ank]
syn keyword vimCommand contained ar ar[gs]
syn keyword vimCommand contained ar ar[gs]
syn match vimCommand contained "\<z[-+^.=]\="
syn keyword vimCommand contained maca[ction] macm[enu]
" vimOptions are caught only when contained in a vimSet {{{2
syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co commentstring confirm cpoptions cscopetag csto cwh dg dip eadirection ek equalprg ex fdi fen fileencodings flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imi incsearch infercase isk keymap langmenu linespace loadplugins macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pm printdevice printoptions quoteescape restorescreen rnu rulerformat scr sect sft shellredir shm showmode sj smd spell splitbelow ssl stl sw sxq tabpagemax tags tbis terse thesaurus titleold toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildcharm winaltkeys winminwidth wmnu write
syn keyword vimOption contained ai ambw ari aw backupext beval biosk brk buflisted cdpath cin cinwords cocu compatible consk cpt cscopetagorder csverb debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt revins ro runtimepath scroll sections sh shellslash shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile syn tabstop tagstack tbs textauto tildeop titlestring top ttimeout ttym uc undolevels vb vfile visualbell wc wh wildignore window winwidth wmw writeany
syn keyword vimOption contained akm anti arshape awa backupskip bex bioskey browsedir buftype cedit cindent clipboard cole complete conskey crb cscopeverbose cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformats fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imak ims indentexpr is isp keywordprg lazyredraw lispwords ls makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pexpr pmbfn printexpr pt readonly ri rs sb scrollbind secure shcf shelltemp shortname shq sm so spellfile spr st sts swapsync synmaxcol tag tal tenc textmode timeout tl tpm ttimeoutlen ttymouse udf undoreload vbs vi vop wcm whichwrap wildmenu winfixheight wiv wop writebackup
syn keyword vimOption contained al antialias autochdir background balloondelay bexpr bk bs casemap cf cink cmdheight colorcolumn completefunc copyindent cryptmethod cspc cul def diff display edcompatible endofline errorformat fcl fdm fex filetype fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imc imsearch indentkeys isf isprint km lbr list lsp makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pfn popt printfont pumheight redrawtime rightleft rtp sbo scrolljump sel shell shelltype showbreak si smartcase softtabstop spelllang sps sta su swb syntax tagbsearch tb term textwidth timeoutlen tm tr ttm ttyscroll udir updatecount vdir viewdir wa wd wi wildmode winfixwidth wiw wrap writedelay
syn keyword vimOption contained aleph ar autoindent backspace ballooneval bg bkc bsdir cb cfu cinkeys cmdwinheight columns completeopt cot cscopepathcomp csprg cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fillchars foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imcmdline inc indk isfname joinspaces kmp lcs listchars lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode ph preserveindent printheader pvh relativenumber rightleftcmd ru sbr scrolloff selection shellcmdflag shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf ta taglength tbi termbidi tf title to ts tty ttytype ul updatetime ve viewoptions wak weirdinvert wig wildoptions winheight wm wrapmargin ws
syn keyword vimOption contained allowrevins arab autoread backup balloonexpr bh bl bsk cc ch cino cmp com concealcursor cp cscopeprg csqf cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imd include inex isi js kp linebreak lm lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path pheader previewheight printmbcharset pvw remap rl ruf sc scrollopt selectmode shellpipe shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf tabline tagrelative tbidi termencoding tgst titlelen toolbar tsl ttybuiltin tw undodir ur verbose viminfo warn wfh wildchar wim winminheight wmh wrapscan ww
syn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb bt ccv charconvert cinoptions cms comments conceallevel cpo cscopequickfix cst cursorline dex digraph ead ei equalalways eventignore fde fdt fileencoding fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imdisable includeexpr inf isident key langmap lines lmap ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pi previewwindow printmbfont qe report rlc ruler scb scs sessionoptions shellquote shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws
syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co commentstring confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imd include inex isi js kp linebreak lm lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path pheader previewheight printmbcharset pvw remap rl ruf sc scrollopt selectmode shellpipe shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf tabline tags tbs textmode timeout tl tpm ttimeoutlen ttymouse udf undoreload vbs vi vop wcm whichwrap wildignore winaltkeys winminwidth wmnu write
syn keyword vimOption contained ai ambw ari aw backupext beval biosk brk buflisted cdpath cin cinwords cocu compatible consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fileencoding fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imdisable includeexpr inf isident key langmap lines lmap ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pi previewwindow printmbfont qe report rlc ruler scb scs sessionoptions shellquote shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabpagemax tagstack tenc textwidth timeoutlen tm tr ttm ttyscroll udir updatecount vdir viewdir wa wd wi wildignorecase window winwidth wmw writeany
syn keyword vimOption contained akm anti arshape awa backupskip bex bioskey browsedir buftype cedit cindent clipboard cole complete conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencodings flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imi incsearch infercase isk keymap langmenu linespace loadplugins macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pm printdevice printoptions quoteescape restorescreen rnu rulerformat scr sect sft shellredir shm showmode sj smd spell splitbelow ssl stl sw sxq tabstop tal term tf title to ts tty ttytype ul updatetime ve viewoptions wak weirdinvert wic wildmenu winfixheight wiv wop writebackup
syn keyword vimOption contained al antialias autochdir background balloondelay bexpr bk bs casemap cf cink cmdheight colorcolumn completefunc copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt revins ro runtimepath scroll sections sh shellslash shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile syn tag tb termbidi tgst titlelen toolbar tsl ttybuiltin tw undodir ur verbose viminfo warn wfh wig wildmode winfixwidth wiw wrap writedelay
syn keyword vimOption contained aleph ar autoindent backspace ballooneval bg bkc bsdir cb cfu cinkeys cmdwinheight columns completeopt cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformats fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imak ims indentexpr is isp keywordprg lazyredraw lispwords ls makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pexpr pmbfn printexpr pt readonly ri rs sb scrollbind secure shcf shelltemp shortname shq sm so spellfile spr st sts swapsync synmaxcol tagbsearch tbi termencoding thesaurus titleold toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildchar wildoptions winheight wm wrapmargin ws
syn keyword vimOption contained allowrevins arab autoread backup balloonexpr bh bl bsk cc ch cino cmp com concealcursor cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex filetype fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imc imsearch indentkeys isf isprint km lbr list lsp makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pfn popt printfont pumheight redrawtime rightleft rtp sbo scrolljump sel shell shelltype showbreak si smartcase softtabstop spelllang sps sta su swb syntax taglength tbidi terse tildeop titlestring top ttimeout ttym uc undolevels vb vfile visualbell wc wh wildcharm wim winminheight wmh wrapscan ww
syn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb bt ccv charconvert cinoptions cms comments conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fillchars foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imcmdline inc indk isfname joinspaces kmp lcs listchars lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode ph preserveindent printheader pvh relativenumber rightleftcmd ru sbr scrolloff selection shellcmdflag shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf ta tagrelative tbis textauto
syn keyword vimOption contained fullscreen fu fuoptions fuopt macmeta mmta transparency transp
" vimOptions: These are the turn-off setting variants {{{2
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopetag nocsverb nocursorbind nodeco nodiff noeb noek noeol noerrorbells noet noexpandtab nofen nofkmap nogd noguipty nohidden nohkmap nohkp nohlsearch noicon noim noimcmdline noimdisable noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocscopeverbose nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noincsearch noinfercase nois nojs nolbr nolisp noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast novb nowa nowb nowfh nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocst nocul nocursorline nodg noea noedcompatible
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopetag nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noincsearch noinfercase nois nojs nolbr nolisp noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast novb nowa nowb nowfh nowildignorecase* * nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocscopeverbose nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noet noexpandtab nofen nofkmap nogd noguipty nohidden nohkmap nohkp nohlsearch noicon noim noimcmdline noimdisable noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocst nocul nocursorline nodg noea noedcompatible noeol
syn keyword vimOption contained nofullscreen nofu nomacmeta nommta
" vimOptions: These are the invertible variants {{{2
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbuflisted invcin invconfirm invcopyindent invcscopetag invcsverb invcursorbind invdeco invdiff inveb invek inveol inverrorbells invet invexpandtab invfen invfkmap invgd invguipty invhidden invhkmap invhkp invhlsearch invicon invim invimcmdline invimdisable invinf invinsertmode invjoinspaces invlazyredraw invlinebreak invlist invlpl invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invvisualbell invwarn invweirdinvert invwfw invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbiosk invbl invcf invcindent invconsk invcp invcscopeverbose invcuc invcursorcolumn invdelcombine invdigraph inved invendofline invequalalways invesckeys invex invexrc invfk invfoldenable invgdefault invhid invhk invhkmapp invhls invic invignorecase invimc invimd invincsearch invinfercase invis invjs invlbr invlisp invloadplugins invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invvb invwa invwb invwfh invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcst invcul invcursorline invdg invea invedcompatible
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbuflisted invcin invconfirm invcopyindent invcscopetag invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invesckeys invex invexrc invfk invfoldenable invgdefault invhid invhk invhkmapp invhls invic invignorecase invimc invimd invincsearch invinfercase invis invjs invlbr invlisp invloadplugins invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invvb invwa invwb invwfh invwildignorecase* * invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbiosk invbl invcf invcindent invconsk invcp invcscopeverbose invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invet invexpandtab invfen invfkmap invgd invguipty invhidden invhkmap invhkp invhlsearch invicon invim invimcmdline invimdisable invinf invinsertmode invjoinspaces invlazyredraw invlinebreak invlist invlpl invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invvisualbell invwarn invweirdinvert invwfw invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcst invcul invcursorline invdg invea invedcompatible inveol
syn keyword vimOption contained invfullscreen invfu invmacmeta invmmta
" termcap codes (which can also be set) {{{2
syn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co t_cs t_Cs t_CS t_CV t_da t_db t_dl t_DL t_EI 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_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_te t_ti t_ts t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR
syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm
syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm
syn match vimOption contained "t_%1"
syn match vimOption contained "t_#2"
syn match vimOption contained "t_#4"
@@ -61,24 +61,24 @@ syn match vimOption contained "t_%i"
syn match vimOption contained "t_k;"
" unsupported settings: these are supported by vi but don't do anything in vim {{{2
syn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600
syn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600
" AutoCmd Events {{{2
syn case ignore
syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre Cmd-event CmdwinEnter CmdwinLeave ColorScheme CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertEnter InsertLeave MenuPopup QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave
syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre Cmd-event CmdwinEnter CmdwinLeave ColorScheme CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave
" Highlight commonly used Groupnames {{{2
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
" Default highlighting groups {{{2
syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
syn match vimHLGroup contained "Conceal"
syn case match
" Function Names {{{2
syn keyword vimFuncName contained abs append argv atan2 bufexists bufname byte2line ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdtype getfperm getftype getmatches getqflist gettabvar getwinposy globpath haslocaldir histdel hlexists iconv input inputrestore insert items len line localtime map match matchdelete matchstr min mode nextnonblank pathshorten prevnonblank pumvisible readfile reltimestr remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape sin sort spellbadword split str2float strchars strftime string strpart strtrans submatch synconcealed synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth
syn keyword vimFuncName contained acos argc asin browse buflisted bufnr byteidx changenr clearmatches complete_add copy count deepcopy diff_filler escape executable expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcmdline getcwd getfsize getline getpid getreg gettabwinvar getwinvar has hasmapto histget hlID indent inputdialog inputsave isdirectory join libcall line2byte log maparg matchadd matchend max mkdir mzeval nr2char pow printf range reltime remote_expr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar simplify sinh soundfold spellsuggest sqrt str2nr strdisplaywidth stridx strlen strridx strwidth substitute synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile
syn keyword vimFuncName contained add argidx atan browsedir bufloaded bufwinnr call char2nr col complete_check cos cscope_connection delete diff_hlID eval exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdpos getfontname getftime getloclist getpos getregtype getwinposx glob has_key histadd histnr hostname index inputlist inputsecret islocked keys libcallnr lispindent log10 mapcheck matcharg matchlist
syn keyword vimFuncName contained add argidx atan browsedir bufloaded bufwinnr call char2nr col complete_check cos cscope_connection delete diff_hlID eval exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdpos getfontname getftime getloclist getpos getregtype getwinposx glob has_key histadd histnr hostname index inputlist inputsecret islocked keys libcallnr lispindent log10 mapcheck matcharg matchlist
"--- syntax above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1
@@ -137,7 +137,7 @@ syn keyword vimFTOption contained detect indent off on plugin
" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
syn cluster vimAugroupList contains=vimIsCommand,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
syn cluster vimAugroupList contains=vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a'
syn region vimAugroup fold start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
else
@@ -168,7 +168,7 @@ syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f'
syn region vimFuncBody contained fold start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
else
else
syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
endif
syn match vimFuncVar contained "a:\(\K\k*\|\d\+\)"
@@ -283,7 +283,7 @@ syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1
syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile
syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile
syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile,vimFunction,vimFuncName,vimOperParen
" Complex repeats (:h complex-repeat) {{{2
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
@@ -395,6 +395,7 @@ syn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList
syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
syn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
syn cluster vimFuncBodyList add=vimSyntax
" Syntax: case {{{2
syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError
@@ -411,15 +412,18 @@ syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName
syn region vimClusterName contained matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
syn match vimGroupAdd contained "add=" nextgroup=vimGroupList
syn match vimGroupRem contained "remove=" nextgroup=vimGroupList
syn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem
" Syntax: include {{{2
syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList
syn cluster vimFuncBodyList add=vimSynType
" Syntax: keyword {{{2
syn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion
syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
syn match vimSynKeyOpt contained "\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
syn cluster vimFuncBodyList add=vimSynType
" Syntax: match {{{2
syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
@@ -430,6 +434,7 @@ if has("conceal")
syn match vimSynMtchOpt contained "\<cchar=" nextgroup=VimSynMtchCchar
syn match vimSynMtchCchar contained "\S"
endif
syn cluster vimFuncBodyList add=vimSynMtchGroup
" Syntax: off and on {{{2
syn keyword vimSynType contained enable list manual off on reset
@@ -450,6 +455,7 @@ syn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod
syn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]"
syn match vimSynNotPatRange contained "\\\\\|\\\["
syn match vimMtchComment contained '"[^"]\+$'
syn cluster vimFuncBodyList add=vimSynType
" Syntax: sync {{{2
" ============
@@ -477,7 +483,7 @@ syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotatio
syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster
syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster
syn match vimHiGroup contained "\i\+"
syn case ignore
syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl
@@ -515,7 +521,8 @@ syn match vimHiTermcap contained "\S\+" contains=vimNotation
syn keyword vimHiClear contained clear nextgroup=vimHiGroup
" Highlight: link {{{2
syn region vimHiLink contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
syn region vimHiLink contained oneline matchgroup=vimCommand start="\<\(def\%[ault]\s\+\)\=link\>\|\<def\>" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
syn cluster vimFuncBodyList add=vimHiLink
" Control Characters {{{2
" ==================
-10
View File
@@ -7,16 +7,6 @@
"
" Options: {{{1
" g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
"
" Overall layout of a bison/yacc grammer:
" %{
" Prolog
" %}
" Bison/Yacc Declarations
" %%
" Grammar Rules
" %%
" Epilogue
" ---------------------------------------------------------------------
" this version of syntax/yacc.vim requires 6.0 or later
+77
View File
@@ -0,0 +1,77 @@
# Project: gvimext
# Generates gvimext.dll with gcc.
# To be used with Cygwin.
#
# Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
# Now it is allocated dymanically by the linker by evaluating all DLLs
# already loaded in memory. The binary image contains as well information
# for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
# If cross-compiling set this to yes, else set it to no
CROSS = no
#CROSS = yes
# For the old MinGW 2.95 (the one you get e.g. with debian woody)
# set the following variable to yes and check if the executables are
# really named that way.
# If you have a newer MinGW or you are using cygwin set it to no and
# check also the executables
MINGWOLD = no
# Link against the shared versions of libgcc/libstdc++ by default. Set
# STATIC_STDCPLUS to "yes" to link against static versions instead.
STATIC_STDCPLUS=no
#STATIC_STDCPLUS=yes
# Note: -static-libstdc++ is not available until gcc 4.5.x.
LDFLAGS += -shared
ifeq (yes, $(STATIC_STDCPLUS))
LDFLAGS += -static-libgcc -static-libstdc++
endif
ifeq ($(CROSS),yes)
DEL = rm
ifeq ($(MINGWOLD),yes)
CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
else
CXXFLAGS := -O2 -mno-cygwin
endif
else
CXXFLAGS := -O2 -mno-cygwin
ifneq (sh.exe, $(SHELL))
DEL = rm
else
DEL = del
endif
endif
CXX := $(CROSS_COMPILE)g++
WINDRES := $(CROSS_COMPILE)windres
WINDRES_CXX = $(CXX)
WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
OBJ := gvimext.o
DLL := gvimext.dll
.PHONY: all all-before all-after clean clean-custom
all: all-before $(DLL) all-after
$(DLL): $(OBJ) $(RES) $(DEFFILE)
$(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
-Wl,--enable-auto-image-base \
-Wl,--enable-auto-import \
-Wl,--whole-archive \
$^ \
-Wl,--no-whole-archive \
$(LIBS)
gvimext.o: gvimext.cpp
$(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
$(RES): gvimext_ming.rc
$(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
clean: clean-custom
-$(DEL) $(OBJ) $(RES) $(DLL)
+4 -5
View File
@@ -1,6 +1,6 @@
# Project: gvimext
# Generates gvimext.dll with gcc.
# Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
# To be used with MingW.
#
# Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
# Now it is allocated dymanically by the linker by evaluating all DLLs
@@ -31,12 +31,12 @@ endif
ifeq ($(CROSS),yes)
DEL = rm
ifeq ($(MINGWOLD),yes)
CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
CXXFLAGS := -O2 -fvtable-thunks
else
CXXFLAGS := -O2 -mno-cygwin
CXXFLAGS := -O2
endif
else
CXXFLAGS := -O2 -mno-cygwin
CXXFLAGS := -O2
ifneq (sh.exe, $(SHELL))
DEL = rm
else
@@ -75,4 +75,3 @@ $(RES): gvimext_ming.rc
clean: clean-custom
-$(DEL) $(OBJ) $(RES) $(DLL)
+14 -6
View File
@@ -142,6 +142,7 @@ static char *null_libintl_bindtextdomain(const char *, const char *);
static int dyn_libintl_init(char *dir);
static void dyn_libintl_end(void);
static wchar_t *oldenv = NULL;
static HINSTANCE hLibintlDLL = 0;
static char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
static char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
@@ -339,8 +340,10 @@ DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /* lpReserved */)
inc_cRefThisDLL()
{
#ifdef FEAT_GETTEXT
if (g_cRefThisDll == 0)
if (g_cRefThisDll == 0) {
dyn_gettext_load();
oldenv = GetEnvironmentStringsW();
}
#endif
InterlockedIncrement((LPLONG)&g_cRefThisDll);
}
@@ -349,8 +352,13 @@ inc_cRefThisDLL()
dec_cRefThisDLL()
{
#ifdef FEAT_GETTEXT
if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0)
if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0) {
dyn_gettext_free();
if (oldenv != NULL) {
FreeEnvironmentStringsW(oldenv);
oldenv = NULL;
}
}
#else
InterlockedDecrement((LPLONG)&g_cRefThisDll);
#endif
@@ -905,8 +913,8 @@ STDMETHODIMP CShellExt::InvokeGvim(HWND hParent,
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
oldenv, // Use unmodified environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi) // Pointer to PROCESS_INFORMATION structure.
@@ -987,8 +995,8 @@ STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
oldenv, // Use unmodified environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi) // Pointer to PROCESS_INFORMATION structure.
+175 -590
View File
@@ -2,16 +2,27 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1050</int>
<string key="IBDocument.SystemVersion">10F569</string>
<string key="IBDocument.InterfaceBuilderVersion">762</string>
<string key="IBDocument.AppKitVersion">1038.29</string>
<string key="IBDocument.HIToolboxVersion">461.00</string>
<string key="IBDocument.SystemVersion">11B26</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">762</string>
<string key="NS.object.0">1617</string>
</object>
<array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<integer value="620"/>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSPopUpButton</string>
<string>NSButton</string>
<string>NSMenu</string>
<string>NSTextFieldCell</string>
<string>NSButtonCell</string>
<string>NSMenuItem</string>
<string>NSMatrix</string>
<string>NSCustomView</string>
<string>NSCustomObject</string>
<string>NSPopUpButtonCell</string>
<string>NSUserDefaultsController</string>
<string>NSTextField</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -31,7 +42,7 @@
<bool key="NSSharedInstance">YES</bool>
</object>
<object class="NSCustomView" id="225936320">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="176759725">
@@ -707,17 +718,65 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</array>
<string key="NSFrameSize">{483, 290}</string>
<reference key="NSSuperview"/>
<string key="NSClassName">NSView</string>
</object>
<object class="NSCustomView" id="836854791">
<reference key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSButton" id="1062985527">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 50}, {388, 18}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="209959448"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="37046570">
<int key="NSCellFlags">-2080244224</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Prefer native full-screen support (requires Mac OS X 10.7)</string>
<reference key="NSSupport" ref="398275172"/>
<reference key="NSControlView" ref="1062985527"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="385062508"/>
<reference key="NSAlternateImage" ref="426852917"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSTextField" id="209959448">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 20}, {415, 28}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="485630420">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">272760832</int>
<string key="NSContents">You may want to disable this option when using multiple monitors since the native full-screen support renders secondary monitors useless.</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="209959448"/>
<reference key="NSBackgroundColor" ref="821672772"/>
<object class="NSColor" key="NSTextColor" id="1006868929">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
</object>
<object class="NSButton" id="818542525">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 92}, {174, 18}}</string>
<string key="NSFrame">{{18, 146}, {174, 18}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="536705090"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="948343868">
<int key="NSCellFlags">67239424</int>
@@ -738,8 +797,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSTextField" id="536705090">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 20}, {444, 70}}</string>
<string key="NSFrame">{{17, 74}, {444, 70}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1062985527"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="581527358">
<int key="NSCellFlags">67239424</int>
@@ -748,17 +809,16 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="536705090"/>
<reference key="NSBackgroundColor" ref="821672772"/>
<object class="NSColor" key="NSTextColor" id="1006868929">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<reference key="NSTextColor" ref="1006868929"/>
</object>
</object>
<object class="NSButton" id="747671808">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 228}, {190, 18}}</string>
<string key="NSFrame">{{18, 282}, {190, 18}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="864999293"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="266098397">
<int key="NSCellFlags">67239424</int>
@@ -779,8 +839,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSTextField" id="864999293">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 198}, {449, 28}}</string>
<string key="NSFrame">{{17, 252}, {449, 28}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="538640217"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="526715553">
<int key="NSCellFlags">67239424</int>
@@ -795,8 +857,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSButton" id="538640217">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 174}, {133, 18}}</string>
<string key="NSFrame">{{18, 228}, {133, 18}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="202792916"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1057999425">
<int key="NSCellFlags">67239424</int>
@@ -817,8 +881,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSTextField" id="202792916">
<reference key="NSNextResponder" ref="836854791"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 116}, {449, 56}}</string>
<string key="NSFrame">{{17, 170}, {449, 56}}</string>
<reference key="NSSuperview" ref="836854791"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="818542525"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="894089534">
<int key="NSCellFlags">67239424</int>
@@ -837,8 +903,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
</array>
<string key="NSFrameSize">{483, 264}</string>
<string key="NSFrameSize">{483, 318}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="747671808"/>
<string key="NSClassName">NSView</string>
</object>
</array>
@@ -1040,6 +1108,22 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<int key="connectionID">1016</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: values.MMNativeFullScreen</string>
<reference key="source" ref="1062985527"/>
<reference key="destination" ref="547503666"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="1062985527"/>
<reference key="NSDestination" ref="547503666"/>
<string key="NSLabel">value: values.MMNativeFullScreen</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">values.MMNativeFullScreen</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">1031</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@@ -1211,6 +1295,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference ref="747671808"/>
<reference ref="536705090"/>
<reference ref="818542525"/>
<reference ref="209959448"/>
<reference ref="1062985527"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">Advanced</string>
@@ -1405,80 +1491,77 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="948343868"/>
<reference key="parent" ref="818542525"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1017</int>
<reference key="object" ref="209959448"/>
<array class="NSMutableArray" key="children">
<reference ref="485630420"/>
</array>
<reference key="parent" ref="836854791"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1020</int>
<reference key="object" ref="485630420"/>
<reference key="parent" ref="209959448"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1028</int>
<reference key="object" ref="1062985527"/>
<array class="NSMutableArray" key="children">
<reference ref="37046570"/>
</array>
<reference key="parent" ref="836854791"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1029</int>
<reference key="object" ref="37046570"/>
<reference key="parent" ref="1062985527"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="-3.ImportedFromIB2"/>
<string key="1001.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="1001.ImportedFromIB2"/>
<string key="1004.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1013.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1014.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="115.IBEditorWindowLastContentRect">{{329, 705}, {483, 290}}</string>
<string key="1017.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1020.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1028.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1029.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="115.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="115.ImportedFromIB2"/>
<string key="116.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="116.ImportedFromIB2"/>
<string key="117.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="117.ImportedFromIB2"/>
<string key="119.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="119.ImportedFromIB2"/>
<string key="120.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="120.ImportedFromIB2"/>
<string key="121.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="121.ImportedFromIB2"/>
<string key="122.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="122.ImportedFromIB2"/>
<string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="124.ImportedFromIB2"/>
<string key="126.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="126.ImportedFromIB2"/>
<string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="134.ImportedFromIB2"/>
<string key="135.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="135.ImportedFromIB2"/>
<string key="137.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="137.ImportedFromIB2"/>
<string key="138.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="138.ImportedFromIB2"/>
<string key="139.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="139.ImportedFromIB2"/>
<string key="427.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="427.ImportedFromIB2"/>
<string key="429.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="429.ImportedFromIB2"/>
<string key="430.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="430.ImportedFromIB2"/>
<string key="431.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="431.ImportedFromIB2"/>
<string key="436.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="436.ImportedFromIB2"/>
<string key="544.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="544.ImportedFromIB2"/>
<string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="58.ImportedFromIB2"/>
<string key="620.IBEditorWindowLastContentRect">{{605, 600}, {483, 264}}</string>
<string key="620.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="620.ImportedFromIB2"/>
<string key="782.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="782.ImportedFromIB2"/>
<string key="815.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="815.ImportedFromIB2"/>
<string key="817.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="817.ImportedFromIB2"/>
<string key="826.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="826.ImportedFromIB2"/>
<string key="957.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="957.ImportedFromIB2"/>
<string key="959.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="959.ImportedFromIB2"/>
<string key="960.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="960.ImportedFromIB2"/>
<string key="961.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="961.ImportedFromIB2"/>
<string key="962.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="962.ImportedFromIB2"/>
<string key="972.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="973.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="974.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1498,7 +1581,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">1016</int>
<int key="maxID">1031</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -1507,25 +1590,30 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string key="superclassName">NSWindowController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">DBPrefsWindowController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">DBPrefsWindowController</string>
<string key="superclassName">NSWindowController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
<string key="minorKey">./Classes/DBPrefsWindowController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">FirstResponder</string>
<string key="superclassName">NSObject</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="atsuiButtonClicked:">id</string>
<string key="loginShellButtonClicked:">id</string>
<string key="quickstartButtonClicked:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="atsuiButtonClicked:">
<string key="name">atsuiButtonClicked:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="loginShellButtonClicked:">
<string key="name">loginShellButtonClicked:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="quickstartButtonClicked:">
<string key="name">quickstartButtonClicked:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
@@ -1538,537 +1626,35 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string key="NS.key.0">openInCurrentWindowSelectionChanged:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">openInCurrentWindowSelectionChanged:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">openInCurrentWindowSelectionChanged:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="advancedPreferences">NSView</string>
<string key="generalPreferences">NSView</string>
<string key="layoutPopUpButton">NSPopUpButton</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="advancedPreferences">
<string key="name">advancedPreferences</string>
<string key="candidateClassName">NSView</string>
</object>
<object class="IBToOneOutletInfo" key="generalPreferences">
<string key="name">generalPreferences</string>
<string key="candidateClassName">NSView</string>
</object>
<object class="IBToOneOutletInfo" key="layoutPopUpButton">
<string key="name">layoutPopUpButton</string>
<string key="candidateClassName">NSPopUpButton</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">MMPreferenceController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MMPreferenceController</string>
<string key="superclassName">DBPrefsWindowController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">changePreloadCacheSize:</string>
<string key="NS.object.0">id</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Miscellaneous.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
</object>
</object>
</array>
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
<object class="IBPartialClassDescription">
<string key="className">NSActionCell</string>
<string key="superclassName">NSCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<string key="superclassName">NSResponder</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="918094059">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="778322014">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="637162915">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSButton</string>
<string key="superclassName">NSControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSButtonCell</string>
<string key="superclassName">NSActionCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSCell</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSControl</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="92287012">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSController</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSFormatter</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMatrix</string>
<string key="superclassName">NSControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="130422338">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenuItem</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="881365129">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenuItemCell</string>
<string key="superclassName">NSButtonCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenuItemCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<reference key="sourceIdentifier" ref="918094059"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<reference key="sourceIdentifier" ref="778322014"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<reference key="sourceIdentifier" ref="637162915"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<reference key="sourceIdentifier" ref="92287012"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<reference key="sourceIdentifier" ref="130422338"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="975692421">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSPopUpButton</string>
<string key="superclassName">NSButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSPopUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSPopUpButtonCell</string>
<string key="superclassName">NSMenuItemCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSPopUpButtonCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSResponder</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSResponder</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSTextField</string>
<string key="superclassName">NSControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSTextFieldCell</string>
<string key="superclassName">NSActionCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSUserDefaultsController</string>
<string key="superclassName">NSController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSUserDefaultsController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSView</string>
<reference key="sourceIdentifier" ref="881365129"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSView</string>
<string key="superclassName">NSResponder</string>
<reference key="sourceIdentifier" ref="975692421"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSWindow</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSWindow</string>
<string key="superclassName">NSResponder</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSWindow</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSWindowController</string>
<string key="superclassName">NSResponder</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">showWindow:</string>
<string key="NS.object.0">id</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSWindowController.h</string>
<string key="minorKey">./Classes/MMPreferenceController.h</string>
</object>
</object>
</array>
@@ -2080,7 +1666,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<integer value="1050" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<string key="IBDocument.LastKnownRelativeProjectPath">../MacVim.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NSMenuCheckmark">{9, 8}</string>
Binary file not shown.
+1 -1
View File
@@ -1232,7 +1232,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>61</string>
<string>63</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
-9
View File
@@ -22,15 +22,6 @@
#define ALPHA(argb) (((argb>>24) & 0xff)/255.0f)
enum {
// These values are chosen so that the min text view size is not too small
// with the default font (they only affect resizing with the mouse, you can
// still use e.g. ":set lines=2" to go below these values).
MMMinRows = 4,
MMMinColumns = 30
};
@interface MMTextViewHelper : NSObject {
id textView;
BOOL isDragging;
+4 -1
View File
@@ -168,8 +168,11 @@
- (IBAction)realToggleFullScreen:(id)sender
{
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
// HACK! See toggleFullScreen: comment above.
[super toggleFullScreen:sender];
if ([NSWindow instancesRespondToSelector:@selector(toggleFullScreen:)])
[super toggleFullScreen:sender];
#endif
}
@end // MMWindow
+1
View File
@@ -29,6 +29,7 @@
BOOL windowPresented;
BOOL shouldResizeVimView;
BOOL shouldRestoreUserTopLeft;
BOOL shouldMaximizeWindow;
int updateToolbarFlag;
BOOL keepOnScreen;
NSString *windowAutosaveKey;
+98 -68
View File
@@ -91,10 +91,11 @@
- (void)updateResizeConstraints;
- (NSTabViewItem *)addNewTabViewItem;
- (BOOL)askBackendForStarRegister:(NSPasteboard *)pb;
- (void)updateTablineSeparator;
- (void)hideTablineSeparator:(BOOL)hide;
- (void)doFindNext:(BOOL)next;
- (void)updateToolbar;
- (void)maximizeWindow:(int)options;
- (BOOL)maximizeWindow:(int)options;
- (void)applicationDidChangeScreenParameters:(NSNotification *)notification;
- (void)enterNativeFullScreen;
@end
@@ -379,6 +380,29 @@
shouldResizeVimView = YES;
keepOnScreen = onScreen;
}
// Autosave rows and columns.
if (windowAutosaveKey && !fullScreenEnabled
&& rows > MMMinRows && cols > MMMinColumns) {
// HACK! If tabline is visible then window will look about one line
// higher than it actually is so increment rows by one before
// autosaving dimension so that the approximate total window height is
// autosaved. This is particularly important when window is maximized
// vertically; if we don't add a row here a new window will appear to
// not be tall enough when the first window is showing the tabline.
// A negative side-effect of this is that the window will redraw on
// startup if the window is too tall to fit on screen (which happens
// for example if 'showtabline=2').
// TODO: Store window pixel dimensions instead of rows/columns?
int autosaveRows = rows;
if (![[vimView tabBarControl] isHidden])
++autosaveRows;
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[ud setInteger:autosaveRows forKey:MMAutosaveRowsKey];
[ud setInteger:cols forKey:MMAutosaveColumnsKey];
[ud synchronize];
}
}
- (void)zoomWithRows:(int)rows columns:(int)cols state:(int)state
@@ -457,6 +481,7 @@
{
BOOL scrollbarHidden = [vimView destroyScrollbarWithIdentifier:ident];
shouldResizeVimView = shouldResizeVimView || scrollbarHidden;
shouldMaximizeWindow = shouldMaximizeWindow || scrollbarHidden;
return scrollbarHidden;
}
@@ -466,6 +491,7 @@
BOOL scrollbarToggled = [vimView showScrollbarWithIdentifier:ident
state:visible];
shouldResizeVimView = shouldResizeVimView || scrollbarToggled;
shouldMaximizeWindow = shouldMaximizeWindow || scrollbarToggled;
return scrollbarToggled;
}
@@ -498,6 +524,7 @@
[[NSFontManager sharedFontManager] setSelectedFont:font isMultiple:NO];
[[vimView textView] setFont:font];
[self updateResizeConstraints];
shouldMaximizeWindow = YES;
}
- (void)setWideFont:(NSFont *)font
@@ -527,39 +554,43 @@
if (windowPresented && shouldResizeVimView) {
shouldResizeVimView = NO;
NSSize originalSize = [vimView frame].size;
NSSize contentSize = [vimView desiredSize];
contentSize = [self constrainContentSizeToScreenSize:contentSize];
int rows = 0, cols = 0;
contentSize = [vimView constrainRows:&rows columns:&cols
toSize:contentSize];
[vimView setFrameSize:contentSize];
// Make sure full-screen window stays maximized (e.g. when scrollbar or
// tabline is hidden) according to 'fuopt'.
if (fullScreenWindow) {
// NOTE! Don't mark the full-screen content view as needing an
// update unless absolutely necessary since when it is updated the
// entire screen is cleared. This may cause some parts of the Vim
// view to be cleared but not redrawn since Vim does not realize
// that we've erased part of the view.
if (!NSEqualSizes(originalSize, contentSize)) {
[[fullScreenWindow contentView] setNeedsDisplay:YES];
[fullScreenWindow centerView];
}
} else {
[self resizeWindowToFitContentSize:contentSize
keepOnScreen:keepOnScreen];
BOOL didMaximize = NO;
if (shouldMaximizeWindow && fullScreenEnabled &&
(fullScreenOptions & (FUOPT_MAXVERT|FUOPT_MAXHORZ)) != 0)
didMaximize = [self maximizeWindow:fullScreenOptions];
if (!fullScreenEnabled && windowAutosaveKey && rows > 0 &&
cols > 0) {
// Autosave rows and columns now that they should have been
// constrained to fit on screen. We only do this for the
// window which also autosaves window position and we avoid
// autosaving when in full-screen since the rows usually won't
// fit when in windowed mode.
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[ud setInteger:rows forKey:MMAutosaveRowsKey];
[ud setInteger:cols forKey:MMAutosaveColumnsKey];
[ud synchronize];
shouldMaximizeWindow = NO;
// Resize Vim view and window, but don't do this now if the window was
// just reszied because this would make the window "jump" unpleasantly.
// Instead wait for Vim to respond to the resize message and do the
// resizing then.
// TODO: What if the resize message fails to make it back?
if (!didMaximize) {
NSSize originalSize = [vimView frame].size;
NSSize contentSize = [vimView desiredSize];
contentSize = [self constrainContentSizeToScreenSize:contentSize];
int rows = 0, cols = 0;
contentSize = [vimView constrainRows:&rows columns:&cols
toSize:contentSize];
[vimView setFrameSize:contentSize];
if (fullScreenWindow) {
// NOTE! Don't mark the full-screen content view as needing an
// update unless absolutely necessary since when it is updated
// the entire screen is cleared. This may cause some parts of
// the Vim view to be cleared but not redrawn since Vim does
// not realize that we've erased part of the view.
if (!NSEqualSizes(originalSize, contentSize)) {
[[fullScreenWindow contentView] setNeedsDisplay:YES];
[fullScreenWindow centerView];
}
} else {
[self resizeWindowToFitContentSize:contentSize
keepOnScreen:keepOnScreen];
}
}
@@ -570,24 +601,8 @@
- (void)showTabBar:(BOOL)on
{
[[vimView tabBarControl] setHidden:!on];
// Showing the tabline may result in the tabline separator being hidden or
// shown; this does not apply to full-screen mode.
if (!on) {
if (([decoratedWindow styleMask] & NSTexturedBackgroundWindowMask)
== 0) {
[self hideTablineSeparator:![decoratedWindow toolbar]];
} else {
[self hideTablineSeparator:NO];
}
} else {
if (([decoratedWindow styleMask] & NSTexturedBackgroundWindowMask)
== 0) {
[self hideTablineSeparator:on];
} else {
[self hideTablineSeparator:YES];
}
}
[self updateTablineSeparator];
shouldMaximizeWindow = YES;
}
- (void)showToolbar:(BOOL)on size:(int)size mode:(int)mode
@@ -618,7 +633,7 @@
{
if (vimView && [vimView textView]) {
[[vimView textView] setLinespace:(float)linespace];
shouldResizeVimView = YES;
shouldMaximizeWindow = shouldResizeVimView = YES;
}
}
@@ -701,9 +716,9 @@
if (![NSWindow instancesRespondToSelector:@selector(toggleFullScreen:)])
useNativeFullScreen = NO;
fullScreenOptions = fuoptions;
if (useNativeFullScreen) {
// Enter native full-screen mode. Only supported on Mac OS X 10.7+.
fullScreenOptions = fuoptions;
if (windowPresented) {
[self enterNativeFullScreen];
} else {
@@ -1116,6 +1131,7 @@
} completionHandler:^{
[window setStyleMask:([window styleMask] | NSFullScreenWindowMask)];
[[vimView tabBarControl] setStyleNamed:@"Unified"];
[self updateTablineSeparator];
[self maximizeWindow:fullScreenOptions];
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
@@ -1159,6 +1175,7 @@
[window setAlphaValue:1];
[window setStyleMask:([window styleMask] & ~NSFullScreenWindowMask)];
[[vimView tabBarControl] setStyleNamed:@"Metal"];
[self updateTablineSeparator];
[window setFrame:preFullScreenFrame display:YES];
}
@@ -1188,6 +1205,7 @@
} completionHandler:^{
[window setStyleMask:([window styleMask] & ~NSFullScreenWindowMask)];
[[vimView tabBarControl] setStyleNamed:@"Metal"];
[self updateTablineSeparator];
[window setFrame:preFullScreenFrame display:YES];
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
@@ -1223,6 +1241,7 @@
[window setAlphaValue:1];
[window setStyleMask:([window styleMask] | NSFullScreenWindowMask)];
[[vimView tabBarControl] setStyleNamed:@"Unified"];
[self updateTablineSeparator];
[self maximizeWindow:fullScreenOptions];
}
@@ -1300,6 +1319,7 @@
round(0.5*(screenFrame.size.width - newFrame.size.width));
}
ASLogDebug(@"Set window frame: %@", NSStringFromRect(newFrame));
[decoratedWindow setFrame:newFrame display:YES];
NSPoint oldTopLeft = { frame.origin.x, NSMaxY(frame) };
@@ -1390,6 +1410,22 @@
return reply;
}
- (void)updateTablineSeparator
{
BOOL tabBarVisible = ![[vimView tabBarControl] isHidden];
BOOL toolbarHidden = [decoratedWindow toolbar] == nil;
BOOL windowTextured = ([decoratedWindow styleMask] &
NSTexturedBackgroundWindowMask) != 0;
BOOL hideSeparator = NO;
if (fullScreenEnabled || tabBarVisible)
hideSeparator = YES;
else
hideSeparator = toolbarHidden && !windowTextured;
[self hideTablineSeparator:hideSeparator];
}
- (void)hideTablineSeparator:(BOOL)hide
{
// The full-screen window has no tabline separator so we operate on
@@ -1451,25 +1487,12 @@
// Positive flag shows toolbar, negative hides it.
BOOL on = updateToolbarFlag > 0 ? YES : NO;
[decoratedWindow setToolbar:(on ? toolbar : nil)];
if (([decoratedWindow styleMask] & NSTexturedBackgroundWindowMask) == 0) {
if (!on) {
[self hideTablineSeparator:YES];
} else {
[self hideTablineSeparator:![[vimView tabBarControl] isHidden]];
}
} else {
// Textured windows don't have a line below there title bar, so we
// need the separator in this case as well. In fact, the only case
// where we don't need the separator is when the tab bar control
// is visible (because it brings its own separator).
[self hideTablineSeparator:![[vimView tabBarControl] isHidden]];
}
[self updateTablineSeparator];
updateToolbarFlag = 0;
}
- (void)maximizeWindow:(int)options
- (BOOL)maximizeWindow:(int)options
{
int currRows, currColumns;
[[vimView textView] getMaxRows:&currRows columns:&currColumns];
@@ -1480,7 +1503,7 @@
NSSize size = [[NSScreen mainScreen] frame].size;
[vimView constrainRows:&maxRows columns:&maxColumns toSize:size];
ASLogDebug(@"max: %dx%d curr: %dx%d",
ASLogDebug(@"Window dimensions max: %dx%d current: %dx%d",
maxRows, maxColumns, currRows, currColumns);
// Compute current fu size
@@ -1511,10 +1534,17 @@
}
NSParameterAssert(data != nil && msgid != 0);
ASLogDebug(@"%s: %dx%d", MessageStrings[msgid], fuRows, fuColumns);
MMVimController *vc = [self vimController];
[vc sendMessage:msgid data:data];
[[vimView textView] setMaxRows:fuRows columns:fuColumns];
// Indicate that window was resized
return YES;
}
// Indicate that window was not resized
return NO;
}
- (void)applicationDidChangeScreenParameters:(NSNotification *)notification
+11 -17
View File
@@ -25,7 +25,7 @@
1D493DBA0C52534300AB718C /* PSMTabBarControl.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 1D493DB90C52533B00AB718C /* PSMTabBarControl.framework */; };
1D60088B0E96A0B2003763F0 /* MMFindReplaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D60088A0E96A0B2003763F0 /* MMFindReplaceController.m */; };
1D80591F0E1185EA001699D1 /* Miscellaneous.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D80591D0E1185EA001699D1 /* Miscellaneous.m */; };
1D80FBD40CBBD3B700102A1C /* MMFullscreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D80FBD00CBBD3B700102A1C /* MMFullscreenWindow.m */; };
1D80FBD40CBBD3B700102A1C /* MMFullScreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D80FBD00CBBD3B700102A1C /* MMFullScreenWindow.m */; };
1D80FBD60CBBD3B700102A1C /* MMVimView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D80FBD20CBBD3B700102A1C /* MMVimView.m */; };
1D8B5A53104AF9FF002E59D5 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D8B5A52104AF9FF002E59D5 /* Carbon.framework */; };
1D8BEA74104992290069B072 /* FindAndReplace.nib in Resources */ = {isa = PBXBuildFile; fileRef = 1D8BEA73104992290069B072 /* FindAndReplace.nib */; };
@@ -159,8 +159,8 @@
1D60088A0E96A0B2003763F0 /* MMFindReplaceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MMFindReplaceController.m; sourceTree = "<group>"; };
1D80591D0E1185EA001699D1 /* Miscellaneous.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Miscellaneous.m; sourceTree = "<group>"; };
1D8059220E118663001699D1 /* Miscellaneous.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Miscellaneous.h; sourceTree = "<group>"; };
1D80FBCF0CBBD3B700102A1C /* MMFullscreenWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MMFullscreenWindow.h; sourceTree = "<group>"; };
1D80FBD00CBBD3B700102A1C /* MMFullscreenWindow.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MMFullscreenWindow.m; sourceTree = "<group>"; };
1D80FBCF0CBBD3B700102A1C /* MMFullScreenWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MMFullScreenWindow.h; sourceTree = "<group>"; };
1D80FBD00CBBD3B700102A1C /* MMFullScreenWindow.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MMFullScreenWindow.m; sourceTree = "<group>"; };
1D80FBD10CBBD3B700102A1C /* MMVimView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MMVimView.h; sourceTree = "<group>"; };
1D80FBD20CBBD3B700102A1C /* MMVimView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MMVimView.m; sourceTree = "<group>"; };
1D8B5A52104AF9FF002E59D5 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
@@ -227,13 +227,6 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0395AA980D76E86200881434 /* Edit in ODBEditor */ = {
isa = PBXGroup;
children = (
);
name = "Edit in ODBEditor";
sourceTree = "<group>";
};
080E96DDFE201D6D7F000001 /* MacVim Source */ = {
isa = PBXGroup;
children = (
@@ -254,8 +247,8 @@
1DE9B94E0D341AB8008FEDD4 /* MMWindow.m */,
1D9918460D299F9900A96335 /* MMAtsuiTextView.h */,
1D9918470D299F9900A96335 /* MMAtsuiTextView.m */,
1D80FBCF0CBBD3B700102A1C /* MMFullscreenWindow.h */,
1D80FBD00CBBD3B700102A1C /* MMFullscreenWindow.m */,
1D80FBCF0CBBD3B700102A1C /* MMFullScreenWindow.h */,
1D80FBD00CBBD3B700102A1C /* MMFullScreenWindow.m */,
1D80FBD10CBBD3B700102A1C /* MMVimView.h */,
1D80FBD20CBBD3B700102A1C /* MMVimView.m */,
1DD66ECB0C803D3600EBDAB3 /* MMApplication.h */,
@@ -406,7 +399,6 @@
isa = PBXGroup;
children = (
1D8B5A52104AF9FF002E59D5 /* Carbon.framework */,
0395AA980D76E86200881434 /* Edit in ODBEditor */,
1D493DB30C52533B00AB718C /* PSMTabBarControl.xcodeproj */,
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
@@ -538,7 +530,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "# Clear deployment target, else the python script always thinks we're building on Tiger\nunset MACOSX_DEPLOYMENT_TARGET\n\n# Generate the icons (redirect stderr to ignore warnings)\ncd $PROJECT_DIR/icons/\nmake OUTDIR=$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH 2> /dev/null\n";
shellScript = "# Clear deployment target, else the python script always thinks we're building on Tiger\nunset MACOSX_DEPLOYMENT_TARGET\n\n# Generate the icons (redirect stderr to ignore warnings)\ncd \"$PROJECT_DIR\"/icons/\nmake OUTDIR=\"$TARGET_BUILD_DIR\"/$UNLOCALIZED_RESOURCES_FOLDER_PATH 2> /dev/null\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -557,7 +549,7 @@
1D1474BC0C567A910038FA2B /* MMWindowController.m in Sources */,
1D09AB420C6A4D520045497E /* MMTypesetter.m in Sources */,
1DD66ECE0C803D3600EBDAB3 /* MMApplication.m in Sources */,
1D80FBD40CBBD3B700102A1C /* MMFullscreenWindow.m in Sources */,
1D80FBD40CBBD3B700102A1C /* MMFullScreenWindow.m in Sources */,
1D80FBD60CBBD3B700102A1C /* MMVimView.m in Sources */,
1D9918490D299F9900A96335 /* MMAtsuiTextView.m in Sources */,
1DE9B9500D341AB8008FEDD4 /* MMWindow.m in Sources */,
@@ -622,7 +614,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 61;
CURRENT_PROJECT_VERSION = 63;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
@@ -633,6 +625,7 @@
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_VERSION = "";
GCC_WARN_PEDANTIC = NO;
HEADER_SEARCH_PATHS = "";
INFOPLIST_FILE = Info.plist;
@@ -652,7 +645,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 61;
CURRENT_PROJECT_VERSION = 63;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
@@ -663,6 +656,7 @@
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = s;
GCC_VERSION = "";
HEADER_SEARCH_PATHS = "";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
+9
View File
@@ -82,6 +82,15 @@ enum {
enum {
// These values are chosen so that the min text view size is not too small
// with the default font (they only affect resizing with the mouse, you can
// still use e.g. ":set lines=2" to go below these values).
MMMinRows = 4,
MMMinColumns = 30
};
@interface NSIndexSet (MMExtras)
+ (id)indexSetWithVimList:(NSString *)list;
@@ -551,7 +551,7 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
GCC_VERSION = 4.2;
GCC_VERSION = "";
INFOPLIST_FILE = "PSMTabBarControlFramework-Info.plist";
INSTALL_PATH = "@executable_path/../Frameworks";
ONLY_ACTIVE_ARCH = YES;
@@ -573,7 +573,7 @@
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
GCC_VERSION = 4.2;
GCC_VERSION = "";
INFOPLIST_FILE = "PSMTabBarControlFramework-Info.plist";
INSTALL_PATH = "@executable_path/../Frameworks";
ONLY_ACTIVE_ARCH = YES;
@@ -10,6 +10,14 @@
@implementation PSMRolloverButton
- (void)dealloc
{
[_usualImage release];
[_rolloverImage release];
[super dealloc];
}
// the regular image
- (void)setUsualImage:(NSImage *)newImage
{
+1 -5
View File
@@ -1,7 +1,7 @@
" System gvimrc file for MacVim
"
" Maintainer: Bjorn Winckler <bjorn.winckler@gmail.com>
" Last Change: Tue Jul 26 2011
" Last Change: Sun Aug 29 2009
"
" This is a work in progress. If you feel so inclined, please help me improve
" this file.
@@ -63,10 +63,6 @@ if !exists("macvim_skip_cmd_opt_movement")
imap <M-BS> <C-w>
imap <D-BS> <C-u>
" Make the 'delete' key delete selection in visual+select mode instead of
" moving cursor to the left.
vmap <Backspace> d
endif " !exists("macvim_skip_cmd_opt_movement")
+3 -3
View File
@@ -16,12 +16,12 @@ OUTDIR ?= .
# step requires an internet connection.
$(OUTDIR)/MacVim-generic.icns:
cp -pR MacVim-*.icns $(OUTDIR)/
cp -pR MacVim-*.icns "$(OUTDIR)"/
all: make_icons.py vim-noshadow-512.png loadfont.so
rm -f MacVim-*.icns
$(MAKE) -C makeicns
/usr/bin/python make_icons.py $(OUTDIR)
/usr/bin/python make_icons.py "$(OUTDIR)"
loadfont.so: loadfont.c
/usr/bin/python setup.py install --install-lib .
@@ -40,6 +40,6 @@ EnvyCodeR.zip:
clean:
$(MAKE) -C makeicns clean
rm -f $(OUTDIR)/MacVim-*.icns loadfont.so *.pyc \
rm -f "$(OUTDIR)"/MacVim-*.icns loadfont.so *.pyc \
EnvyCodeR.zip *.ttf *.reg *.txt
rm -rf *.egginfo build # Created by setup.py
+2 -2
View File
@@ -536,7 +536,7 @@ xxd/xxd.exe: xxd/xxd.c
$(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
$(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
$(MAKE) -C GvimExt -f Make_cyg.mak CROSS_COMPILE=$(CROSS_COMPILE)
vimrun.exe: vimrun.c
$(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
@@ -565,7 +565,7 @@ ifdef MZSCHEME
endif
-$(DEL) pathdef.c
$(MAKE) -C xxd -f Make_cyg.mak clean
$(MAKE) -C GvimExt -f Make_ming.mak clean
$(MAKE) -C GvimExt -f Make_cyg.mak clean
distclean: clean
-$(DEL) obj$(DIRSLASH)*.o
+10 -3
View File
@@ -108,6 +108,13 @@ endif
# on NT, it's here:
PERLLIB=$(PERL)/lib
PERLLIBS=$(PERLLIB)/Core
XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp
XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'")
ifeq "$(XSUBPP_EXISTS)" ""
XSUBPP=perl $(XSUBPPTRY)
else
XSUBPP=xsubpp
endif
endif
# uncomment 'LUA' if you want a Lua-enabled version
@@ -634,7 +641,7 @@ upx: exes
upx vim.exe
xxd/xxd.exe: xxd/xxd.c
$(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
$(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
$(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
@@ -652,7 +659,7 @@ ifdef MZSCHEME
-$(DEL) mzscheme_base.c
endif
$(MAKE) -C GvimExt -f Make_ming.mak clean
$(MAKE) -C xxd -f Make_cyg.mak clean
$(MAKE) -C xxd -f Make_ming.mak clean
###########################################################################
INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
@@ -696,7 +703,7 @@ ifeq (16, $(RUBY))
endif
if_perl.c: if_perl.xs typemap
perl $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
$(XSUBPP) -prototypes -typemap \
$(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
+6 -1
View File
@@ -785,6 +785,11 @@ PERL_EXE = $(PERL)\Bin$(PERL_ARCH)\perl
PERL_INC = /I $(PERL_INCDIR)
PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
!if exist($(XSUBPP))
XSUBPP = $(PERL_EXE) $(XSUBPP)
!else
XSUBPP = xsubpp
!endif
XSUBPP_TYPEMAP = $(PERL)\lib\ExtUtils\typemap
!endif
@@ -1041,7 +1046,7 @@ $(OUTDIR)/if_lua.obj: $(OUTDIR) if_lua.c $(INCL)
$(CC) $(CFLAGS) $(LUA_INC) if_lua.c
if_perl.c : if_perl.xs typemap
$(PERL_EXE) $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
$(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
-typemap typemap if_perl.xs > if_perl.c
$(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
+8 -2
View File
@@ -2344,6 +2344,7 @@ shadow: runtime pixmaps
../../testdir/vimrc.unix \
../../testdir/*.in \
../../testdir/*.vim \
../../testdir/test83-tags? \
../../testdir/*.ok .
# Link needed for doing "make install" in a shadow directory.
@@ -2414,8 +2415,13 @@ lintinstall:
auto/if_perl.c: if_perl.xs
$(PERL) -e 'unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$$_ $$_\n" }}' > $@
$(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
$(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@
-@if test -e $(PERLSITELIB)/ExtUtils/xsubpp; then \
$(PERL) $(PERLSITELIB)/ExtUtils/xsubpp -prototypes -typemap \
$(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@; \
else \
$(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
$(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@; \
fi
auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in
CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh
+2 -3
View File
@@ -549,7 +549,7 @@ static BOOL VimOpenFile(BSTR& FileName, long LineNr)
if (g_bNewTabs)
{
sprintf(VimCmd, ":tab drop ");
s = VimCmd + 11;
s = VimCmd + 10;
}
else
{
@@ -557,8 +557,7 @@ static BOOL VimOpenFile(BSTR& FileName, long LineNr)
s = VimCmd + 6;
}
sprintf(FileNameTmp, "%S", (char *)FileName);
for (p = FileNameTmp; *p != '\0' && s < FileNameTmp + MAX_OLE_STR - 4;
++p)
for (p = FileNameTmp; *p != '\0' && s < VimCmd + MAX_OLE_STR - 4; ++p)
if (*p == '\\')
*s++ = '/';
else
+1 -1
View File
@@ -123,7 +123,7 @@
#define DCS 0x90 /* Device Control String */
#define STERM 0x9c /* String Terminator */
#define POUND '£'
#define POUND '\xA3'
#define CTRL_F_STR "\056"
#define CTRL_H_STR "\026"
+9 -5
View File
@@ -691,6 +691,7 @@ MZSCHEME_EXTRA
MZSCHEME_MZC
vi_cv_path_perl
vi_cv_perllib
vi_cv_perlsitelib
shrpenv
PERL_SRC
PERL_OBJ
@@ -5161,6 +5162,8 @@ echo "${ECHO_T}OK" >&6; }
shrpenv=""
fi
vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
vi_cv_perlsitelib=`$vi_cv_path_perl -MConfig -e 'print $Config{sitelibexp}'`
perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
-e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//'`
@@ -5992,7 +5995,7 @@ echo $ECHO_N "checking whether we can do without RTLD_GLOBAL for Python... $ECHO
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
LDFLAGS="-ldl $LDFLAGS"
if test "$cross_compiling" = yes; then
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
See \`config.log' for more details." >&5
@@ -6083,7 +6086,7 @@ echo $ECHO_N "checking whether we can do without RTLD_GLOBAL for Python3... $ECH
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
LDFLAGS="-ldl $LDFLAGS"
if test "$cross_compiling" = yes; then
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
See \`config.log' for more details." >&5
@@ -20157,6 +20160,7 @@ MZSCHEME_EXTRA!$MZSCHEME_EXTRA$ac_delim
MZSCHEME_MZC!$MZSCHEME_MZC$ac_delim
vi_cv_path_perl!$vi_cv_path_perl$ac_delim
vi_cv_perllib!$vi_cv_perllib$ac_delim
vi_cv_perlsitelib!$vi_cv_perlsitelib$ac_delim
shrpenv!$shrpenv$ac_delim
PERL_SRC!$PERL_SRC$ac_delim
PERL_OBJ!$PERL_OBJ$ac_delim
@@ -20175,7 +20179,6 @@ PYTHON3_CONFDIR!$PYTHON3_CONFDIR$ac_delim
PYTHON3_LIBS!$PYTHON3_LIBS$ac_delim
PYTHON3_CFLAGS!$PYTHON3_CFLAGS$ac_delim
PYTHON3_SRC!$PYTHON3_SRC$ac_delim
PYTHON3_OBJ!$PYTHON3_OBJ$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -20217,6 +20220,7 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
PYTHON3_OBJ!$PYTHON3_OBJ$ac_delim
vi_cv_path_tcl!$vi_cv_path_tcl$ac_delim
TCL_SRC!$TCL_SRC$ac_delim
TCL_OBJ!$TCL_OBJ$ac_delim
@@ -20269,7 +20273,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 50; then
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 51; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -20625,7 +20629,7 @@ do
cat >>$CONFIG_STATUS <<_ACEOF
# First, check the format of the line:
cat >"\$tmp/defines.sed" <<\\CEOF
/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def
/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*/b def
/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def
b
:def
+18 -4
View File
@@ -416,6 +416,12 @@ close_buffer(win, buf, action)
#endif
buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
if (
#ifdef FEAT_WINDOWS
win_valid(win) &&
#endif
win->w_buffer == buf)
win->w_buffer = NULL; /* make sure we don't use the buffer now */
#ifdef FEAT_AUTOCMD
/* Autocommands may have deleted the buffer. */
@@ -564,6 +570,10 @@ buf_freeall(buf, flags)
#ifdef FEAT_DIFF
diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
#endif
#ifdef FEAT_SYN_HL
if (curwin->w_buffer == buf)
reset_synblock(curwin); /* remove any ownsyntax */
#endif
#ifdef FEAT_FOLDING
/* No folds in an empty buffer. */
@@ -1350,6 +1360,10 @@ set_curbuf(buf, action)
# endif
#endif
{
#ifdef FEAT_SYN_HL
if (prevbuf == curwin->w_buffer)
reset_synblock(curwin);
#endif
#ifdef FEAT_WINDOWS
if (unload)
close_windows(prevbuf, FALSE);
@@ -1399,10 +1413,6 @@ enter_buffer(buf)
foldUpdateAll(curwin); /* update folds (later). */
#endif
#ifdef FEAT_SYN_HL
reset_synblock(curwin);
curwin->w_s = &(buf->b_s);
#endif
/* Get the buffer in the current window. */
curwin->w_buffer = buf;
curbuf = buf;
@@ -1413,6 +1423,10 @@ enter_buffer(buf)
diff_buf_add(curbuf);
#endif
#ifdef FEAT_SYN_HL
curwin->w_s = &(buf->b_s);
#endif
/* Cursor on first line by default. */
curwin->w_cursor.lnum = 1;
curwin->w_cursor.col = 0;
+3
View File
@@ -346,6 +346,9 @@
/* Define if dynamic python does not require RTLD_GLOBAL */
#undef PY_NO_RTLD_GLOBAL
/* Define if dynamic python3 does not require RTLD_GLOBAL */
#undef PY3_NO_RTLD_GLOBAL
/* Define if you want to include the Ruby interpreter. */
#undef FEAT_RUBY
+1
View File
@@ -54,6 +54,7 @@ MZSCHEME_MZC = @MZSCHEME_MZC@
PERL = @vi_cv_path_perl@
PERLLIB = @vi_cv_perllib@
PERLSITELIB = @vi_cv_perlsitelib@
PERL_LIBS = @PERL_LIBS@
SHRPENV = @shrpenv@
PERL_SRC = @PERL_SRC@
+39 -11
View File
@@ -691,6 +691,7 @@ MZSCHEME_EXTRA
MZSCHEME_MZC
vi_cv_path_perl
vi_cv_perllib
vi_cv_perlsitelib
shrpenv
PERL_SRC
PERL_OBJ
@@ -5161,6 +5162,8 @@ echo "${ECHO_T}OK" >&6; }
shrpenv=""
fi
vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
vi_cv_perlsitelib=`$vi_cv_path_perl -MConfig -e 'print $Config{sitelibexp}'`
perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
-e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//'`
@@ -5708,6 +5711,23 @@ fi
{ echo "$as_me:$LINENO: result: $vi_cv_var_python3_version" >&5
echo "${ECHO_T}$vi_cv_var_python3_version" >&6; }
{ echo "$as_me:$LINENO: checking Python's abiflags" >&5
echo $ECHO_N "checking Python's abiflags... $ECHO_C" >&6; }
if test "${vi_cv_var_python3_abiflags+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
vi_cv_var_python3_abiflags=
if ${vi_cv_path_python3} -c \
"import sys; sys.exit(${vi_cv_var_python3_version} < 3.2)"
then
vi_cv_var_python3_abiflags=`${vi_cv_path_python3} -c \
"import sys; print(sys.abiflags)"`
fi
fi
{ echo "$as_me:$LINENO: result: $vi_cv_var_python3_abiflags" >&5
echo "${ECHO_T}$vi_cv_var_python3_abiflags" >&6; }
{ echo "$as_me:$LINENO: checking Python's install prefix" >&5
echo $ECHO_N "checking Python's install prefix... $ECHO_C" >&6; }
if test "${vi_cv_path_python3_pfx+set}" = set; then
@@ -5758,9 +5778,13 @@ if test "${vi_cv_path_python3_conf+set}" = set; then
else
vi_cv_path_python3_conf=
config_dir="config"
if test "${vi_cv_var_python3_abiflags}" != ""; then
config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
fi
for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
for subdir in lib64 lib share; do
d="${path}/${subdir}/python${vi_cv_var_python3_version}/config"
d="${path}/${subdir}/python${vi_cv_var_python3_version}/${config_dir}"
if test -d "$d" && test -f "$d/config.c"; then
vi_cv_path_python3_conf="$d"
fi
@@ -5789,13 +5813,12 @@ __:
@echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
@echo "python3_LIBS='$(LIBS)'"
@echo "python3_SYSLIBS='$(SYSLIBS)'"
@echo "python3_LINKFORSHARED='$(LINKFORSHARED)'"
@echo "python3_INSTSONAME='$(INSTSONAME)'"
eof
eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
rm -f -- "${tmp_mkf}"
vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS} ${python3_LINKFORSHARED}"
vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
@@ -5804,9 +5827,9 @@ fi
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
else
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
fi
PYTHON3_SRC="if_python3.c"
if test "x$MACOSX" = "xyes"; then
@@ -5972,7 +5995,7 @@ echo $ECHO_N "checking whether we can do without RTLD_GLOBAL for Python... $ECHO
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
LDFLAGS="-ldl $LDFLAGS"
if test "$cross_compiling" = yes; then
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
See \`config.log' for more details." >&5
@@ -6063,7 +6086,7 @@ echo $ECHO_N "checking whether we can do without RTLD_GLOBAL for Python3... $ECH
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
LDFLAGS="-ldl $LDFLAGS"
if test "$cross_compiling" = yes; then
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
See \`config.log' for more details." >&5
@@ -18257,6 +18280,10 @@ echo $ECHO_N "checking how to create tags... $ECHO_C" >&6; }
test -f tags && mv tags tags.save
if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
TAGPRG="ctags -I INIT+ --fields=+S"
elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
TAGPRG="exctags -I INIT+ --fields=+S"
elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
else
TAGPRG="ctags"
(eval etags /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
@@ -20133,6 +20160,7 @@ MZSCHEME_EXTRA!$MZSCHEME_EXTRA$ac_delim
MZSCHEME_MZC!$MZSCHEME_MZC$ac_delim
vi_cv_path_perl!$vi_cv_path_perl$ac_delim
vi_cv_perllib!$vi_cv_perllib$ac_delim
vi_cv_perlsitelib!$vi_cv_perlsitelib$ac_delim
shrpenv!$shrpenv$ac_delim
PERL_SRC!$PERL_SRC$ac_delim
PERL_OBJ!$PERL_OBJ$ac_delim
@@ -20151,7 +20179,6 @@ PYTHON3_CONFDIR!$PYTHON3_CONFDIR$ac_delim
PYTHON3_LIBS!$PYTHON3_LIBS$ac_delim
PYTHON3_CFLAGS!$PYTHON3_CFLAGS$ac_delim
PYTHON3_SRC!$PYTHON3_SRC$ac_delim
PYTHON3_OBJ!$PYTHON3_OBJ$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -20193,6 +20220,7 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
PYTHON3_OBJ!$PYTHON3_OBJ$ac_delim
vi_cv_path_tcl!$vi_cv_path_tcl$ac_delim
TCL_SRC!$TCL_SRC$ac_delim
TCL_OBJ!$TCL_OBJ$ac_delim
@@ -20245,7 +20273,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 50; then
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 51; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -20601,7 +20629,7 @@ do
cat >>$CONFIG_STATUS <<_ACEOF
# First, check the format of the line:
cat >"\$tmp/defines.sed" <<\\CEOF
/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def
/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*/b def
/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def
b
:def
+6 -2
View File
@@ -715,7 +715,9 @@ if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
shrpenv=""
fi
vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
vi_cv_perlsitelib=`$vi_cv_path_perl -MConfig -e 'print $Config{sitelibexp}'`
AC_SUBST(vi_cv_perllib)
AC_SUBST(vi_cv_perlsitelib)
dnl Remove "-fno-something", it breaks using cproto.
perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
-e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
@@ -1193,7 +1195,8 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
LDFLAGS="-ldl $LDFLAGS"
AC_RUN_IFELSE([
#include <dlfcn.h>
/* If this program fails, then RTLD_GLOBAL is needed.
@@ -1237,7 +1240,8 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
cflags_save=$CFLAGS
CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
LDFLAGS="-ldl $LDFLAGS"
AC_RUN_IFELSE([
#include <dlfcn.h>
#include <wchar.h>
+127 -26
View File
@@ -135,6 +135,8 @@ static char_u *compl_orig_text = NULL; /* text as it was before
static int compl_cont_mode = 0;
static expand_T compl_xp;
static int compl_opt_refresh_always = FALSE;
static void ins_ctrl_x __ARGS((void));
static int has_compl_option __ARGS((int dict_opt));
static int ins_compl_accept_char __ARGS((int c));
@@ -153,16 +155,19 @@ static char_u *find_line_end __ARGS((char_u *ptr));
static void ins_compl_free __ARGS((void));
static void ins_compl_clear __ARGS((void));
static int ins_compl_bs __ARGS((void));
static int ins_compl_need_restart __ARGS((void));
static void ins_compl_new_leader __ARGS((void));
static void ins_compl_addleader __ARGS((int c));
static int ins_compl_len __ARGS((void));
static int ins_compl_len __ARGS((void));
static void ins_compl_restart __ARGS((void));
static void ins_compl_set_original_text __ARGS((char_u *str));
static void ins_compl_addfrommatch __ARGS((void));
static int ins_compl_prep __ARGS((int c));
static void ins_compl_fixRedoBufForLeader __ARGS((char_u *ptr_arg));
static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
#if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL)
static void ins_compl_add_list __ARGS((list_T *list));
static void ins_compl_add_dict __ARGS((dict_T *dict));
#endif
static int ins_compl_get_exp __ARGS((pos_T *ini));
static void ins_compl_delete __ARGS((void));
@@ -3351,7 +3356,7 @@ ins_compl_bs()
/* Deleted more than what was used to find matches or didn't finish
* finding all matches: need to look for matches all over again. */
if (curwin->w_cursor.col <= compl_col + compl_length
|| compl_was_interrupted)
|| ins_compl_need_restart())
ins_compl_restart();
vim_free(compl_leader);
@@ -3364,6 +3369,20 @@ ins_compl_bs()
return K_BS;
}
/*
* Return TRUE when we need to find matches again, ins_compl_restart() is to
* be called.
*/
static int
ins_compl_need_restart()
{
/* Return TRUE if we didn't complete finding matches or when the
* 'completefunc' returned "always" in the "refresh" dictionary item. */
return compl_was_interrupted
|| ((ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
&& compl_opt_refresh_always);
}
/*
* Called after changing "compl_leader".
* Show the popup menu with a different set of matches.
@@ -3453,7 +3472,7 @@ ins_compl_addleader(c)
ins_char(c);
/* If we didn't complete finding matches we must search again. */
if (compl_was_interrupted)
if (ins_compl_need_restart())
ins_compl_restart();
vim_free(compl_leader);
@@ -3710,9 +3729,6 @@ ins_compl_prep(c)
* memory that was used, and make sure we can redo the insert. */
if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E)
{
char_u *p;
int temp = 0;
/*
* If any of the original typed text has been changed, eg when
* ignorecase is set, we must add back-spaces to the redo
@@ -3723,25 +3739,9 @@ ins_compl_prep(c)
*/
if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
ptr = compl_curr_match->cp_str;
else if (compl_leader != NULL)
ptr = compl_leader;
else
ptr = compl_orig_text;
if (compl_orig_text != NULL)
{
p = compl_orig_text;
for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp];
++temp)
;
#ifdef FEAT_MBYTE
if (temp > 0)
temp -= (*mb_head_off)(compl_orig_text, p + temp);
#endif
for (p += temp; *p != NUL; mb_ptr_adv(p))
AppendCharToRedobuff(K_BS);
}
if (ptr != NULL)
AppendToRedobuffLit(ptr + temp, -1);
ptr = NULL;
ins_compl_fixRedoBufForLeader(ptr);
}
#ifdef FEAT_CINDENT
@@ -3830,6 +3830,44 @@ ins_compl_prep(c)
return retval;
}
/*
* Fix the redo buffer for the completion leader replacing some of the typed
* text. This inserts backspaces and appends the changed text.
* "ptr" is the known leader text or NUL.
*/
static void
ins_compl_fixRedoBufForLeader(ptr_arg)
char_u *ptr_arg;
{
int len;
char_u *p;
char_u *ptr = ptr_arg;
if (ptr == NULL)
{
if (compl_leader != NULL)
ptr = compl_leader;
else
return; /* nothing to do */
}
if (compl_orig_text != NULL)
{
p = compl_orig_text;
for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len)
;
#ifdef FEAT_MBYTE
if (len > 0)
len -= (*mb_head_off)(p, p + len);
#endif
for (p += len; *p != NUL; mb_ptr_adv(p))
AppendCharToRedobuff(K_BS);
}
else
len = 0;
if (ptr != NULL)
AppendToRedobuffLit(ptr + len, -1);
}
/*
* Loops through the list of windows, loaded-buffers or non-loaded-buffers
* (depending on flag) starting from buf and looking for a non-scanned
@@ -3886,12 +3924,14 @@ expand_by_function(type, base)
int type; /* CTRL_X_OMNI or CTRL_X_FUNCTION */
char_u *base;
{
list_T *matchlist;
list_T *matchlist = NULL;
dict_T *matchdict = NULL;
char_u *args[2];
char_u *funcname;
pos_T pos;
win_T *curwin_save;
buf_T *curbuf_save;
typval_T rettv;
funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
if (*funcname == NUL)
@@ -3904,7 +3944,25 @@ expand_by_function(type, base)
pos = curwin->w_cursor;
curwin_save = curwin;
curbuf_save = curbuf;
matchlist = call_func_retlist(funcname, 2, args, FALSE);
/* Call a function, which returns a list or dict. */
if (call_vim_function(funcname, 2, args, FALSE, &rettv) == OK)
{
switch (rettv.v_type)
{
case VAR_LIST:
matchlist = rettv.vval.v_list;
break;
case VAR_DICT:
matchdict = rettv.vval.v_dict;
break;
default:
/* TODO: Give error message? */
clear_tv(&rettv);
break;
}
}
if (curwin_save != curwin || curbuf_save != curbuf)
{
EMSG(_(e_complwin));
@@ -3917,10 +3975,15 @@ expand_by_function(type, base)
EMSG(_(e_compldel));
goto theend;
}
if (matchlist != NULL)
ins_compl_add_list(matchlist);
else if (matchdict != NULL)
ins_compl_add_dict(matchdict);
theend:
if (matchdict != NULL)
dict_unref(matchdict);
if (matchlist != NULL)
list_unref(matchlist);
}
@@ -3948,6 +4011,33 @@ ins_compl_add_list(list)
}
}
/*
* Add completions from a dict.
*/
static void
ins_compl_add_dict(dict)
dict_T *dict;
{
dictitem_T *refresh;
dictitem_T *words;
/* Check for optional "refresh" item. */
compl_opt_refresh_always = FALSE;
refresh = dict_find(dict, (char_u *)"refresh", 7);
if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
{
char_u *v = refresh->di_tv.vval.v_string;
if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
compl_opt_refresh_always = TRUE;
}
/* Add completions from a "words" list. */
words = dict_find(dict, (char_u *)"words", 5);
if (words != NULL && words->di_tv.v_type == VAR_LIST)
ins_compl_add_list(words->di_tv.vval.v_list);
}
/*
* Add a match to the list of matches from a typeval_T.
* If the given string is already in the list of completions, then return
@@ -5103,6 +5193,12 @@ ins_complete(c)
return FAIL;
}
/*
* Reset extended parameters of completion, when start new
* completion.
*/
compl_opt_refresh_always = FALSE;
if (col < 0)
col = curs_col;
compl_col = col;
@@ -5180,6 +5276,10 @@ ins_complete(c)
else
edit_submode = (char_u *)_(CTRL_X_MSG(ctrl_x_mode));
/* If any of the original typed text has been changed we need to fix
* the redo buffer. */
ins_compl_fixRedoBufForLeader(NULL);
/* Always add completion for the original text. */
vim_free(compl_orig_text);
compl_orig_text = vim_strnsave(line + compl_col, compl_length);
@@ -5993,6 +6093,7 @@ internal_format(textwidth, second_indent, flags, format_only, c)
* Stop at first entered white when 'formatoptions' has 'v'
*/
while ((!fo_ins_blank && !has_format_option(FO_INS_VI))
|| (flags & INSCHAR_FORMAT)
|| curwin->w_cursor.lnum != Insstart.lnum
|| curwin->w_cursor.col >= Insstart.col)
{
+36 -20
View File
@@ -380,9 +380,6 @@ static dictitem_T vimvars_var;
static void prepare_vimvar __ARGS((int idx, typval_T *save_tv));
static void restore_vimvar __ARGS((int idx, typval_T *save_tv));
#if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)
static int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
#endif
static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars));
static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon));
static char_u *skip_var_one __ARGS((char_u *arg));
@@ -451,7 +448,6 @@ static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
static void set_ref_in_list __ARGS((list_T *l, int copyID));
static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
static int rettv_dict_alloc __ARGS((typval_T *rettv));
static void dict_unref __ARGS((dict_T *d));
static void dict_free __ARGS((dict_T *d, int recurse));
static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
@@ -1357,7 +1353,11 @@ eval_to_string(arg, nextcmd, convert)
{
ga_init2(&ga, (int)sizeof(char), 80);
if (tv.vval.v_list != NULL)
{
list_join(&ga, tv.vval.v_list, (char_u *)"\n", TRUE, 0);
if (tv.vval.v_list->lv_len > 0)
ga_append(&ga, NL);
}
ga_append(&ga, NUL);
retval = (char_u *)ga.ga_data;
}
@@ -1559,7 +1559,7 @@ eval_expr(arg, nextcmd)
* arguments are currently supported.
* Returns OK or FAIL.
*/
static int
int
call_vim_function(func, argc, argv, safe, rettv)
char_u *func;
int argc;
@@ -3377,7 +3377,10 @@ ex_call(eap)
/* trans_function_name() doesn't work well when skipping, use eval0()
* instead to skip to any following command, e.g. for:
* :if 0 | call dict.foo().bar() | endif */
eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
++emsg_skip;
if (eval0(eap->arg, &rettv, &eap->nextcmd, FALSE) != FAIL)
clear_tv(&rettv);
--emsg_skip;
return;
}
@@ -6900,7 +6903,7 @@ rettv_dict_alloc(rettv)
* Unreference a Dictionary: decrement the reference count and free it when it
* becomes zero.
*/
static void
void
dict_unref(d)
dict_T *d;
{
@@ -20489,6 +20492,7 @@ ex_function(eap)
exarg_T *eap;
{
char_u *theline;
int i;
int j;
int c;
int saved_did_emsg;
@@ -20735,6 +20739,15 @@ ex_function(eap)
arg = vim_strsave(arg);
if (arg == NULL)
goto erret;
/* Check for duplicate argument name. */
for (i = 0; i < newargs.ga_len; ++i)
if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0)
{
EMSG2(_("E853: Duplicate argument name: %s"), arg);
goto erret;
}
((char_u **)(newargs.ga_data))[newargs.ga_len] = arg;
*p = c;
newargs.ga_len++;
@@ -20810,7 +20823,8 @@ ex_function(eap)
nesting = 0;
for (;;)
{
msg_scroll = TRUE;
if (KeyTyped)
msg_scroll = TRUE;
need_wait_return = FALSE;
sourcing_lnum_off = sourcing_lnum;
@@ -20913,6 +20927,8 @@ ex_function(eap)
&& (!ASCII_ISALPHA(p[2]) || p[2] == 'r'))
|| (p[0] == 't' && p[1] == 'c'
&& (!ASCII_ISALPHA(p[2]) || p[2] == 'l'))
|| (p[0] == 'l' && p[1] == 'u' && p[2] == 'a'
&& !ASCII_ISALPHA(p[3]))
|| (p[0] == 'r' && p[1] == 'u' && p[2] == 'b'
&& (!ASCII_ISALPHA(p[3]) || p[3] == 'y'))
|| (p[0] == 'm' && p[1] == 'z'
@@ -23229,6 +23245,7 @@ modify_fname(src, usedlen, fnamep, bufp, fnamelen)
int c;
int has_fullname = 0;
#ifdef WIN3264
char_u *fname_start = *fnamep;
int has_shortname = 0;
#endif
@@ -23403,24 +23420,25 @@ repeat:
}
#ifdef WIN3264
/* Check shortname after we have done 'heads' and before we do 'tails'
/*
* Handle ":8" after we have done 'heads' and before we do 'tails'.
*/
if (has_shortname)
{
pbuf = NULL;
/* Copy the string if it is shortened by :h */
if (*fnamelen < (int)STRLEN(*fnamep))
/* Copy the string if it is shortened by :h and when it wasn't copied
* yet, because we are going to change it in place. Avoids changing
* the buffer name for "%:8". */
if (*fnamelen < (int)STRLEN(*fnamep) || *fnamep == fname_start)
{
p = vim_strnsave(*fnamep, *fnamelen);
if (p == 0)
if (p == NULL)
return -1;
vim_free(*bufp);
*bufp = *fnamep = p;
}
/* Split into two implementations - makes it easier. First is where
* there isn't a full name already, second is where there is.
*/
* there isn't a full name already, second is where there is. */
if (!has_fullname && !vim_isAbsName(*fnamep))
{
if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
@@ -23428,18 +23446,16 @@ repeat:
}
else
{
int l;
int l = *fnamelen;
/* Simple case, already have the full-name
/* Simple case, already have the full-name.
* Nearly always shorter, so try first time. */
l = *fnamelen;
if (get_short_pathname(fnamep, bufp, &l) == FAIL)
return -1;
if (l == 0)
{
/* Couldn't find the filename.. search the paths.
*/
/* Couldn't find the filename, search the paths. */
l = *fnamelen;
if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
return -1;
+173 -104
View File
@@ -3619,10 +3619,6 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
*/
check_arg_idx(curwin);
#ifdef FEAT_SYN_HL
reset_synblock(curwin); /* remove any ownsyntax */
#endif
#ifdef FEAT_AUTOCMD
if (!auto_buf)
#endif
@@ -5512,6 +5508,9 @@ ex_help(eap)
int len;
char_u *lang;
#endif
#ifdef FEAT_FOLDING
int old_KeyTyped = KeyTyped;
#endif
if (eap != NULL)
{
@@ -5675,6 +5674,12 @@ ex_help(eap)
if (!p_im)
restart_edit = 0; /* don't want insert mode in help file */
#ifdef FEAT_FOLDING
/* Restore KeyTyped, setting 'filetype=help' may reset it.
* It is needed for do_tag top open folds under the cursor. */
KeyTyped = old_KeyTyped;
#endif
if (tag != NULL)
do_tag(tag, DT_HELP, 1, FALSE, TRUE);
@@ -5977,6 +5982,7 @@ fix_help_buffer()
char_u *line;
int in_example = FALSE;
int len;
char_u *fname;
char_u *p;
char_u *rt;
int mustfree;
@@ -6023,124 +6029,187 @@ fix_help_buffer()
}
/*
* In the "help.txt" file, add the locally added help files.
* This uses the very first line in the help file.
* In the "help.txt" and "help.abx" file, add the locally added help
* files. This uses the very first line in the help file.
*/
if (fnamecmp(gettail(curbuf->b_fname), "help.txt") == 0)
fname = gettail(curbuf->b_fname);
if (fnamecmp(fname, "help.txt") == 0
#ifdef FEAT_MULTI_LANG
|| (fnamencmp(fname, "help.", 5) == 0
&& ASCII_ISALPHA(fname[5])
&& ASCII_ISALPHA(fname[6])
&& TOLOWER_ASC(fname[7]) == 'x'
&& fname[8] == NUL)
#endif
)
{
for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
{
line = ml_get_buf(curbuf, lnum, FALSE);
if (strstr((char *)line, "*local-additions*") != NULL)
if (strstr((char *)line, "*local-additions*") == NULL)
continue;
/* Go through all directories in 'runtimepath', skipping
* $VIMRUNTIME. */
p = p_rtp;
while (*p != NUL)
{
/* Go through all directories in 'runtimepath', skipping
* $VIMRUNTIME. */
p = p_rtp;
while (*p != NUL)
copy_option_part(&p, NameBuff, MAXPATHL, ",");
mustfree = FALSE;
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
{
copy_option_part(&p, NameBuff, MAXPATHL, ",");
mustfree = FALSE;
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
{
int fcount;
char_u **fnames;
FILE *fd;
char_u *s;
int fi;
int fcount;
char_u **fnames;
FILE *fd;
char_u *s;
int fi;
#ifdef FEAT_MBYTE
vimconv_T vc;
char_u *cp;
vimconv_T vc;
char_u *cp;
#endif
/* Find all "doc/ *.txt" files in this directory. */
add_pathsep(NameBuff);
STRCAT(NameBuff, "doc/*.txt");
if (gen_expand_wildcards(1, &NameBuff, &fcount,
&fnames, EW_FILE|EW_SILENT) == OK
&& fcount > 0)
{
for (fi = 0; fi < fcount; ++fi)
{
fd = mch_fopen((char *)fnames[fi], "r");
if (fd != NULL)
{
vim_fgets(IObuff, IOSIZE, fd);
if (IObuff[0] == '*'
&& (s = vim_strchr(IObuff + 1, '*'))
!= NULL)
{
#ifdef FEAT_MBYTE
int this_utf = MAYBE;
#endif
/* Change tag definition to a
* reference and remove <CR>/<NL>. */
IObuff[0] = '|';
*s = '|';
while (*s != NUL)
{
if (*s == '\r' || *s == '\n')
*s = NUL;
#ifdef FEAT_MBYTE
/* The text is utf-8 when a byte
* above 127 is found and no
* illegal byte sequence is found.
*/
if (*s >= 0x80 && this_utf != FALSE)
{
int l;
this_utf = TRUE;
l = utf_ptr2len(s);
if (l == 1)
this_utf = FALSE;
s += l - 1;
}
#endif
++s;
}
#ifdef FEAT_MBYTE
/* The help file is latin1 or utf-8;
* conversion to the current
* 'encoding' may be required. */
vc.vc_type = CONV_NONE;
convert_setup(&vc, (char_u *)(
this_utf == TRUE ? "utf-8"
: "latin1"), p_enc);
if (vc.vc_type == CONV_NONE)
/* No conversion needed. */
cp = IObuff;
else
{
/* Do the conversion. If it fails
* use the unconverted text. */
cp = string_convert(&vc, IObuff,
NULL);
if (cp == NULL)
cp = IObuff;
}
convert_setup(&vc, NULL, NULL);
ml_append(lnum, cp, (colnr_T)0, FALSE);
if (cp != IObuff)
vim_free(cp);
/* Find all "doc/ *.txt" files in this directory. */
add_pathsep(NameBuff);
#ifdef FEAT_MULTI_LANG
STRCAT(NameBuff, "doc/*.??[tx]");
#else
ml_append(lnum, IObuff, (colnr_T)0,
FALSE);
STRCAT(NameBuff, "doc/*.txt");
#endif
++lnum;
}
fclose(fd);
if (gen_expand_wildcards(1, &NameBuff, &fcount,
&fnames, EW_FILE|EW_SILENT) == OK
&& fcount > 0)
{
#ifdef FEAT_MULTI_LANG
int i1;
int i2;
char_u *f1;
char_u *f2;
char_u *t1;
char_u *e1;
char_u *e2;
/* If foo.abx is found use it instead of foo.txt in
* the same directory. */
for (i1 = 0; i1 < fcount; ++i1)
{
for (i2 = 0; i2 < fcount; ++i2)
{
if (i1 == i2)
continue;
if (fnames[i1] == NULL || fnames[i2] == NULL)
continue;
f1 = fnames[i1];
f2 = fnames[i2];
t1 = gettail(f1);
if (fnamencmp(f1, f2, t1 - f1) != 0)
continue;
e1 = vim_strrchr(t1, '.');
e2 = vim_strrchr(gettail(f2), '.');
if (e1 == NUL || e2 == NUL)
continue;
if (fnamecmp(e1, ".txt") != 0
&& fnamecmp(e1, fname + 4) != 0)
{
/* Not .txt and not .abx, remove it. */
vim_free(fnames[i1]);
fnames[i1] = NULL;
continue;
}
if (fnamencmp(f1, f2, e1 - f1) != 0)
continue;
if (fnamecmp(e1, ".txt") == 0
&& fnamecmp(e2, fname + 4) == 0)
{
/* use .abx instead of .txt */
vim_free(fnames[i1]);
fnames[i1] = NULL;
}
}
FreeWild(fcount, fnames);
}
#endif
for (fi = 0; fi < fcount; ++fi)
{
if (fnames[fi] == NULL)
continue;
fd = mch_fopen((char *)fnames[fi], "r");
if (fd != NULL)
{
vim_fgets(IObuff, IOSIZE, fd);
if (IObuff[0] == '*'
&& (s = vim_strchr(IObuff + 1, '*'))
!= NULL)
{
#ifdef FEAT_MBYTE
int this_utf = MAYBE;
#endif
/* Change tag definition to a
* reference and remove <CR>/<NL>. */
IObuff[0] = '|';
*s = '|';
while (*s != NUL)
{
if (*s == '\r' || *s == '\n')
*s = NUL;
#ifdef FEAT_MBYTE
/* The text is utf-8 when a byte
* above 127 is found and no
* illegal byte sequence is found.
*/
if (*s >= 0x80 && this_utf != FALSE)
{
int l;
this_utf = TRUE;
l = utf_ptr2len(s);
if (l == 1)
this_utf = FALSE;
s += l - 1;
}
#endif
++s;
}
#ifdef FEAT_MBYTE
/* The help file is latin1 or utf-8;
* conversion to the current
* 'encoding' may be required. */
vc.vc_type = CONV_NONE;
convert_setup(&vc, (char_u *)(
this_utf == TRUE ? "utf-8"
: "latin1"), p_enc);
if (vc.vc_type == CONV_NONE)
/* No conversion needed. */
cp = IObuff;
else
{
/* Do the conversion. If it fails
* use the unconverted text. */
cp = string_convert(&vc, IObuff,
NULL);
if (cp == NULL)
cp = IObuff;
}
convert_setup(&vc, NULL, NULL);
ml_append(lnum, cp, (colnr_T)0, FALSE);
if (cp != IObuff)
vim_free(cp);
#else
ml_append(lnum, IObuff, (colnr_T)0,
FALSE);
#endif
++lnum;
}
fclose(fd);
}
}
FreeWild(fcount, fnames);
}
if (mustfree)
vim_free(rt);
}
break;
if (mustfree)
vim_free(rt);
}
break;
}
}
}
+3
View File
@@ -4226,6 +4226,9 @@ ex_language(eap)
# ifdef FEAT_EVAL
/* Set v:lang, v:lc_time and v:ctype to the final result. */
set_lang_var();
# endif
# ifdef FEAT_TITLE
maketitle();
# endif
}
}
+45 -8
View File
@@ -61,6 +61,7 @@ static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*
static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie));
static int if_level = 0; /* depth in :if */
#endif
static void append_command __ARGS((char_u *cmd));
static char_u *find_command __ARGS((exarg_T *eap, int *full));
static void ex_abbreviate __ARGS((exarg_T *eap));
@@ -372,11 +373,9 @@ static void ex_tag_cmd __ARGS((exarg_T *eap, char_u *name));
# define ex_endif ex_ni
# define ex_else ex_ni
# define ex_while ex_ni
# define ex_for ex_ni
# define ex_continue ex_ni
# define ex_break ex_ni
# define ex_endwhile ex_ni
# define ex_endfor ex_ni
# define ex_throw ex_ni
# define ex_try ex_ni
# define ex_catch ex_ni
@@ -2143,10 +2142,7 @@ do_one_cmd(cmdlinep, sourcing,
{
STRCPY(IObuff, _("E492: Not an editor command"));
if (!sourcing)
{
STRCAT(IObuff, ": ");
STRNCAT(IObuff, *cmdlinep, 40);
}
append_command(*cmdlinep);
errormsg = IObuff;
}
goto doend;
@@ -2715,8 +2711,7 @@ doend:
STRCPY(IObuff, errormsg);
errormsg = IObuff;
}
STRCAT(errormsg, ": ");
STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1);
append_command(*cmdlinep);
}
emsg(errormsg);
}
@@ -2803,6 +2798,42 @@ checkforcmd(pp, cmd, len)
return FALSE;
}
/*
* Append "cmd" to the error message in IObuff.
* Takes care of limiting the length and handling 0xa0, which would be
* invisible otherwise.
*/
static void
append_command(cmd)
char_u *cmd;
{
char_u *s = cmd;
char_u *d;
STRCAT(IObuff, ": ");
d = IObuff + STRLEN(IObuff);
while (*s != NUL && d - IObuff < IOSIZE - 7)
{
if (
#ifdef FEAT_MBYTE
enc_utf8 ? (s[0] == 0xc2 && s[1] == 0xa0) :
#endif
*s == 0xa0)
{
s +=
#ifdef FEAT_MBYTE
enc_utf8 ? 2 :
#endif
1;
STRCPY(d, "<a0>");
d += 4;
}
else
MB_COPY_CHAR(s, d);
}
*d = NUL;
}
/*
* Find an Ex command by its name, either built-in or user.
* Start of the name can be found at eap->cmd.
@@ -8194,6 +8225,12 @@ do_sleep(msec)
{
ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE);
ui_breakcheck();
#ifdef FEAT_NETBEANS_INTG
/* Process the netbeans messages that may have been received in the
* call to ui_breakcheck() when the GUI is in use. This may occur when
* running a test case. */
netbeans_parse_messages();
#endif
}
}
+56 -9
View File
@@ -67,7 +67,7 @@ static int hislen = 0; /* actual length of history tables */
static int hist_char2type __ARGS((int c));
static int in_history __ARGS((int, char_u *, int));
static int in_history __ARGS((int, char_u *, int, int));
# ifdef FEAT_EVAL
static int calc_hist_idx __ARGS((int histype, int num));
# endif
@@ -121,6 +121,14 @@ static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
static int ex_window __ARGS((void));
#endif
#if defined(FEAT_CMDL_COMPL) || defined(PROTO)
static int
#ifdef __BORLANDC__
_RTLENTRYF
#endif
sort_func_compare __ARGS((const void *s1, const void *s2));
#endif
/*
* getcmdline() - accept a command line starting with firstc.
*
@@ -1977,8 +1985,12 @@ getcmdline_prompt(firstc, prompt, attr, xp_context, xp_arg)
# endif
s = getcmdline(firstc, 1L, 0);
restore_cmdline(&save_ccline);
/* Restore msg_col, the prompt from input() may have changed it. */
msg_col = msg_col_save;
/* Restore msg_col, the prompt from input() may have changed it.
* But only if called recursively and the commandline is therefore being
* restored to an old one; if not, the input() prompt stays on the screen,
* so we need its modified msg_col left intact. */
if (ccline.cmdbuff != NULL)
msg_col = msg_col_save;
return s;
}
@@ -2877,6 +2889,7 @@ put_on_cmdline(str, len, redraw)
{
msg_no_more = TRUE;
i = cmdline_row;
cursorcmd();
draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos);
/* Avoid clearing the rest of the line too often. */
if (cmdline_row != i || ccline.overstrike)
@@ -3292,6 +3305,24 @@ ccheck_abbr(c)
return check_abbr(c, ccline.cmdbuff, ccline.cmdpos, 0);
}
#if defined(FEAT_CMDL_COMPL) || defined(PROTO)
static int
#ifdef __BORLANDC__
_RTLENTRYF
#endif
sort_func_compare(s1, s2)
const void *s1;
const void *s2;
{
char_u *p1 = *(char_u **)s1;
char_u *p2 = *(char_u **)s2;
if (*p1 != '<' && *p2 == '<') return -1;
if (*p1 == '<' && *p2 != '<') return 1;
return STRCMP(p1, p2);
}
#endif
/*
* Return FAIL if this is not an appropriate context in which to do
* completion of anything, return OK if it is (even if there are no matches).
@@ -4553,7 +4584,7 @@ ExpandFromContext(xp, pat, num_file, file, options)
}
if (xp->xp_context == EXPAND_COMPILER)
{
char *directories[] = {"colors", NULL};
char *directories[] = {"compiler", NULL};
return ExpandRTDir(pat, num_file, file, directories);
}
if (xp->xp_context == EXPAND_OWNSYNTAX)
@@ -4744,7 +4775,16 @@ ExpandGeneric(xp, regmatch, num_file, file, func, escaped)
/* Sort the results. Keep menu's in the specified order. */
if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
sort_strings(*file, *num_file);
{
if (xp->xp_context == EXPAND_EXPRESSION
|| xp->xp_context == EXPAND_FUNCTIONS
|| xp->xp_context == EXPAND_USER_FUNC)
/* <SNR> functions should be sorted to the end. */
qsort((void *)*file, (size_t)*num_file, sizeof(char_u *),
sort_func_compare);
else
sort_strings(*file, *num_file);
}
#ifdef FEAT_CMDL_COMPL
/* Reset the variables used for special highlight names expansion, so that
@@ -5303,13 +5343,15 @@ init_history()
* If 'move_to_front' is TRUE, matching entry is moved to end of history.
*/
static int
in_history(type, str, move_to_front)
in_history(type, str, move_to_front, sep)
int type;
char_u *str;
int move_to_front; /* Move the entry to the front if it exists */
int sep;
{
int i;
int last_i = -1;
char_u *p;
if (hisidx[type] < 0)
return FALSE;
@@ -5318,7 +5360,12 @@ in_history(type, str, move_to_front)
{
if (history[type][i].hisstr == NULL)
return FALSE;
if (STRCMP(str, history[type][i].hisstr) == 0)
/* For search history, check that the separator character matches as
* well. */
p = history[type][i].hisstr;
if (STRCMP(str, p) == 0
&& (type != HIST_SEARCH || sep == p[STRLEN(p) + 1]))
{
if (!move_to_front)
return TRUE;
@@ -5412,7 +5459,7 @@ add_to_history(histype, new_entry, in_map, sep)
}
last_maptick = -1;
}
if (!in_history(histype, new_entry, TRUE))
if (!in_history(histype, new_entry, TRUE, sep))
{
if (++hisidx[histype] == hislen)
hisidx[histype] = 0;
@@ -5991,7 +6038,7 @@ read_viminfo_history(virp)
if (val != NULL && *val != NUL)
{
if (!in_history(type, val + (type == HIST_SEARCH),
viminfo_add_at_front))
viminfo_add_at_front, *val))
{
/* Need to re-allocate to append the separator byte. */
len = STRLEN(val);
+17 -4
View File
@@ -1061,6 +1061,9 @@
# ifdef FEAT_BIG
# define FEAT_MOUSE_DEC
# endif
# ifdef FEAT_BIG
# define FEAT_MOUSE_URXVT
# endif
# if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
# define DOS_MOUSE
# endif
@@ -1076,13 +1079,23 @@
#if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
# define FEAT_SYSMOUSE
#endif
/* urxvt is a small variation of mouse_xterm, and shares its code */
#if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM)
# define FEAT_MOUSE_XTERM
#endif
/* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
#if !defined(FEAT_MOUSE_TTY) \
&& (defined(FEAT_MOUSE_XTERM) \
|| defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
|| defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
|| defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
|| defined(FEAT_SYSMOUSE))
|| defined(FEAT_MOUSE_NET) \
|| defined(FEAT_MOUSE_DEC) \
|| defined(DOS_MOUSE) \
|| defined(FEAT_MOUSE_GPM) \
|| defined(FEAT_MOUSE_JSB) \
|| defined(FEAT_MOUSE_PTERM) \
|| defined(FEAT_SYSMOUSE) \
|| defined(FEAT_MOUSE_URXVT))
# define FEAT_MOUSE_TTY /* include non-GUI mouse support */
#endif
#if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+16 -2
View File
@@ -3342,8 +3342,22 @@ buf_write(buf, fname, sfname, start, end, eap, append, forceit,
}
else if (reset_changed && whole)
{
if (!(did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
sfname, sfname, FALSE, curbuf, eap)))
int was_changed = curbufIsChanged();
did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
sfname, sfname, FALSE, curbuf, eap);
if (did_cmd)
{
if (was_changed && !curbufIsChanged())
{
/* Written everything correctly and BufWriteCmd has reset
* 'modified': Correct the undo information so that an
* undo now sets 'modified'. */
u_unchanged(curbuf);
u_update_save_nr(curbuf);
}
}
else
{
#ifdef FEAT_QUICKFIX
if (overwriting && bt_nofile(curbuf))
+6 -3
View File
@@ -1469,11 +1469,14 @@ deleteFoldEntry(gap, idx, recursive)
}
else
{
/* move nested folds one level up, to overwrite the fold that is
/* Move nested folds one level up, to overwrite the fold that is
* deleted. */
moved = fp->fd_nested.ga_len;
if (ga_grow(gap, (int)(moved - 1)) == OK)
{
/* Get "fp" again, the array may have been reallocated. */
fp = (fold_T *)gap->ga_data + idx;
/* adjust fd_top and fd_flags for the moved folds */
nfp = (fold_T *)fp->fd_nested.ga_data;
for (i = 0; i < moved; ++i)
@@ -1486,9 +1489,9 @@ deleteFoldEntry(gap, idx, recursive)
}
/* move the existing folds down to make room */
if (idx < gap->ga_len)
if (idx + 1 < gap->ga_len)
mch_memmove(fp + moved, fp + 1,
sizeof(fold_T) * (gap->ga_len - idx));
sizeof(fold_T) * (gap->ga_len - (idx + 1)));
/* move the contained folds one level up */
mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved));
vim_free(nfp);
+39 -21
View File
@@ -2460,27 +2460,18 @@ vgetorpeek(advance)
/*
* Handle ":map <expr>": evaluate the {rhs} as an
* expression. Save and restore the typeahead so that
* getchar() can be used. Also save and restore the
* command line for "normal :".
* expression. Also save and restore the command line
* for "normal :".
*/
if (mp->m_expr)
{
tasave_T tabuf;
int save_vgetc_busy = vgetc_busy;
save_typeahead(&tabuf);
if (tabuf.typebuf_valid)
{
vgetc_busy = 0;
save_m_keys = vim_strsave(mp->m_keys);
save_m_str = vim_strsave(mp->m_str);
s = eval_map_expr(save_m_str, NUL);
vgetc_busy = save_vgetc_busy;
}
else
s = NULL;
restore_typeahead(&tabuf);
vgetc_busy = 0;
save_m_keys = vim_strsave(mp->m_keys);
save_m_str = vim_strsave(mp->m_str);
s = eval_map_expr(save_m_str, NUL);
vgetc_busy = save_vgetc_busy;
}
else
#endif
@@ -3262,9 +3253,9 @@ do_map(maptype, arg, mode, abbrev)
validate_maphash();
/*
* find end of keys and skip CTRL-Vs (and backslashes) in it
* Find end of keys and skip CTRL-Vs (and backslashes) in it.
* Accept backslash like CTRL-V when 'cpoptions' does not contain 'B'.
* with :unmap white space is included in the keys, no argument possible
* with :unmap white space is included in the keys, no argument possible.
*/
p = keys;
do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
@@ -3964,7 +3955,17 @@ showmap(mp, local)
if (*mp->m_str == NUL)
msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
else
msg_outtrans_special(mp->m_str, FALSE);
{
/* Remove escaping of CSI, because "m_str" is in a format to be used
* as typeahead. */
char_u *s = vim_strsave(mp->m_str);
if (s != NULL)
{
vim_unescape_csi(s);
msg_outtrans_special(s, FALSE);
vim_free(s);
}
}
#ifdef FEAT_EVAL
if (p_verbose > 0)
last_set_msg(mp->m_script_ID);
@@ -4506,12 +4507,23 @@ eval_map_expr(str, c)
{
char_u *res;
char_u *p;
char_u *expr;
char_u *save_cmd;
pos_T save_cursor;
/* Remove escaping of CSI, because "str" is in a format to be used as
* typeahead. */
expr = vim_strsave(str);
if (expr == NULL)
return NULL;
vim_unescape_csi(expr);
save_cmd = save_cmdline_alloc();
if (save_cmd == NULL)
{
vim_free(expr);
return NULL;
}
/* Forbid changing text or using ":normal" to avoid most of the bad side
* effects. Also restore the cursor position. */
@@ -4521,7 +4533,7 @@ eval_map_expr(str, c)
#endif
set_vim_var_char(c); /* set v:char to the typed character */
save_cursor = curwin->w_cursor;
p = eval_to_string(str, NULL, FALSE);
p = eval_to_string(expr, NULL, FALSE);
--textlock;
#ifdef FEAT_EX_EXTRA
--ex_normal_lock;
@@ -4529,8 +4541,11 @@ eval_map_expr(str, c)
curwin->w_cursor = save_cursor;
restore_cmdline_alloc(save_cmd);
vim_free(expr);
if (p == NULL)
return NULL;
/* Escape CSI in the result to be able to use the string as typeahead. */
res = vim_strsave_escape_csi(p);
vim_free(p);
@@ -5174,14 +5189,17 @@ static struct initmap
# endif
#endif
#if defined(MACOS) && !defined(FEAT_GUI_MACVIM)
#if defined(MACOS)
# if !defined(FEAT_GUI_MACVIM)
/* Use the Standard MacOS binding. */
/* paste, copy and cut */
/* (These are menu bindings in MacVim, so don't bind them here.) */
{(char_u *)"<D-v> \"*P", NORMAL},
{(char_u *)"<D-v> \"-d\"*P", VIS_SEL},
{(char_u *)"<D-v> <C-R>*", INSERT+CMDLINE},
{(char_u *)"<D-c> \"*y", VIS_SEL},
{(char_u *)"<D-x> \"*d", VIS_SEL},
# endif
{(char_u *)"<Backspace> \"-d", VIS_SEL},
#endif
};
+239 -119
View File
@@ -37,6 +37,24 @@ static void gui_set_fg_color __ARGS((char_u *name));
static void gui_set_bg_color __ARGS((char_u *name));
static win_T *xy2win __ARGS((int x, int y));
#if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
&& !defined(__APPLE__)
# define MAY_FORK
static void gui_do_fork __ARGS((void));
static int gui_read_child_pipe __ARGS((int fd));
/* Return values for gui_read_child_pipe */
enum {
GUI_CHILD_IO_ERROR,
GUI_CHILD_OK,
GUI_CHILD_FAILED
};
#endif /* MAY_FORK */
static void gui_attempt_start __ARGS((void));
static int can_update_cursor = TRUE; /* can display the cursor */
/*
@@ -59,51 +77,47 @@ static int can_update_cursor = TRUE; /* can display the cursor */
gui_start()
{
char_u *old_term;
#if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
&& !defined(__APPLE__)
/* By the time we get here Mac OS X will already have forked (it does so
* right after scanning the command line) so don't do anything here. This
* means that "f" in 'guioptions' cannot be supported.
*/
# define MAY_FORK
int dofork = TRUE;
#endif
static int recursive = 0;
old_term = vim_strsave(T_NAME);
/*
* Set_termname() will call gui_init() to start the GUI.
* Set the "starting" flag, to indicate that the GUI will start.
*
* We don't want to open the GUI shell until after we've read .gvimrc,
* otherwise we don't know what font we will use, and hence we don't know
* what size the shell should be. So if there are errors in the .gvimrc
* file, they will have to go to the terminal: Set full_screen to FALSE.
* full_screen will be set to TRUE again by a successful termcapinit().
*/
settmode(TMODE_COOK); /* stop RAW mode */
if (full_screen)
cursor_on(); /* needed for ":gui" in .vimrc */
gui.starting = TRUE;
full_screen = FALSE;
#ifdef FEAT_GUI_GTK
gui.event_time = GDK_CURRENT_TIME;
#endif
#ifdef MAY_FORK
if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive)
dofork = FALSE;
#endif
++recursive;
termcapinit((char_u *)"builtin_gui");
gui.starting = recursive - 1;
#ifdef MAY_FORK
/*
* Quit the current process and continue in the child.
* Makes "gvim file" disconnect from the shell it was started in.
* Don't do this when Vim was started with "-f" or the 'f' flag is present
* in 'guioptions'.
*/
if (gui.dofork && !vim_strchr(p_go, GO_FORG) && recursive <= 1)
{
gui_do_fork();
}
else
#endif
{
gui_attempt_start();
}
if (!gui.in_use) /* failed to start GUI */
{
termcapinit(old_term); /* back to old term settings */
/* Back to old term settings
*
* FIXME: If we got here because a child process failed and flagged to
* the parent to resume, and X11 is enabled with FEAT_TITLE, this will
* hit an X11 I/O error and do a longjmp(), leaving recursive
* permanently set to 1. This is probably not as big a problem as it
* sounds, because gui_mch_init() in both gui_x11.c and gui_gtk_x11.c
* return "OK" unconditionally, so it would be very difficult to
* actually hit this case.
*/
termcapinit(old_term);
settmode(TMODE_RAW); /* restart RAW mode */
#ifdef FEAT_TITLE
set_title_defaults(); /* set 'title' and 'icon' again */
@@ -112,6 +126,41 @@ gui_start()
vim_free(old_term);
#ifdef FEAT_AUTOCMD
/* If the GUI started successfully, trigger the GUIEnter event, otherwise
* the GUIFailed event. */
gui_mch_update();
apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
NULL, NULL, FALSE, curbuf);
#endif
--recursive;
}
/*
* Set_termname() will call gui_init() to start the GUI.
* Set the "starting" flag, to indicate that the GUI will start.
*
* We don't want to open the GUI shell until after we've read .gvimrc,
* otherwise we don't know what font we will use, and hence we don't know
* what size the shell should be. So if there are errors in the .gvimrc
* file, they will have to go to the terminal: Set full_screen to FALSE.
* full_screen will be set to TRUE again by a successful termcapinit().
*/
static void
gui_attempt_start()
{
static int recursive = 0;
++recursive;
gui.starting = TRUE;
#ifdef FEAT_GUI_GTK
gui.event_time = GDK_CURRENT_TIME;
#endif
termcapinit((char_u *)"builtin_gui");
gui.starting = recursive - 1;
#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
if (gui.in_use)
{
@@ -127,96 +176,167 @@ gui_start()
display_errors();
}
#endif
#if defined(MAY_FORK) && !defined(__QNXNTO__)
/*
* Quit the current process and continue in the child.
* Makes "gvim file" disconnect from the shell it was started in.
* Don't do this when Vim was started with "-f" or the 'f' flag is present
* in 'guioptions'.
*/
if (gui.in_use && dofork)
{
int pipefd[2]; /* pipe between parent and child */
int pipe_error;
char dummy;
pid_t pid = -1;
/* Setup a pipe between the child and the parent, so that the parent
* knows when the child has done the setsid() call and is allowed to
* exit. */
pipe_error = (pipe(pipefd) < 0);
pid = fork();
if (pid > 0) /* Parent */
{
/* Give the child some time to do the setsid(), otherwise the
* exit() may kill the child too (when starting gvim from inside a
* gvim). */
if (pipe_error)
ui_delay(300L, TRUE);
else
{
/* The read returns when the child closes the pipe (or when
* the child dies for some reason). */
close(pipefd[1]);
ignored = (int)read(pipefd[0], &dummy, (size_t)1);
close(pipefd[0]);
}
/* When swapping screens we may need to go to the next line, e.g.,
* after a hit-enter prompt and using ":gui". */
if (newline_on_exit)
mch_errmsg("\r\n");
/*
* The parent must skip the normal exit() processing, the child
* will do it. For example, GTK messes up signals when exiting.
*/
_exit(0);
}
# if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
/*
* Change our process group. On some systems/shells a CTRL-C in the
* shell where Vim was started would otherwise kill gvim!
*/
if (pid == 0) /* child */
# if defined(HAVE_SETSID)
(void)setsid();
# else
(void)setpgid(0, 0);
# endif
# endif
if (!pipe_error)
{
close(pipefd[0]);
close(pipefd[1]);
}
# if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
/* Tell the session manager our new PID */
gui_mch_forked();
# endif
}
#else
# if defined(__QNXNTO__)
if (gui.in_use && dofork)
procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
# endif
#endif
#ifdef FEAT_AUTOCMD
/* If the GUI started successfully, trigger the GUIEnter event, otherwise
* the GUIFailed event. */
gui_mch_update();
apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
NULL, NULL, FALSE, curbuf);
#endif
--recursive;
}
#ifdef MAY_FORK
/* for waitpid() */
# if defined(HAVE_SYS_WAIT_H) || defined(HAVE_UNION_WAIT)
# include <sys/wait.h>
# endif
/*
* Create a new process, by forking. In the child, start the GUI, and in
* the parent, exit.
*
* If something goes wrong, this will return with gui.in_use still set
* to FALSE, in which case the caller should continue execution without
* the GUI.
*
* If the child fails to start the GUI, then the child will exit and the
* parent will return. If the child succeeds, then the parent will exit
* and the child will return.
*/
static void
gui_do_fork()
{
#ifdef __QNXNTO__
procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
gui_attempt_start();
return;
#else
int pipefd[2]; /* pipe between parent and child */
int pipe_error;
int status;
int exit_status;
pid_t pid = -1;
/* Setup a pipe between the child and the parent, so that the parent
* knows when the child has done the setsid() call and is allowed to
* exit. */
pipe_error = (pipe(pipefd) < 0);
pid = fork();
if (pid < 0) /* Fork error */
{
EMSG(_("E851: Failed to create a new process for the GUI"));
return;
}
else if (pid > 0) /* Parent */
{
/* Give the child some time to do the setsid(), otherwise the
* exit() may kill the child too (when starting gvim from inside a
* gvim). */
if (!pipe_error)
{
/* The read returns when the child closes the pipe (or when
* the child dies for some reason). */
close(pipefd[1]);
status = gui_read_child_pipe(pipefd[0]);
if (status == GUI_CHILD_FAILED)
{
/* The child failed to start the GUI, so the caller must
* continue. There may be more error information written
* to stderr by the child. */
# ifdef __NeXT__
wait4(pid, &exit_status, 0, (struct rusage *)0);
# else
waitpid(pid, &exit_status, 0);
# endif
EMSG(_("E852: The child process failed to start the GUI"));
return;
}
else if (status == GUI_CHILD_IO_ERROR)
{
pipe_error = TRUE;
}
/* else GUI_CHILD_OK: parent exit */
}
if (pipe_error)
ui_delay(300L, TRUE);
/* When swapping screens we may need to go to the next line, e.g.,
* after a hit-enter prompt and using ":gui". */
if (newline_on_exit)
mch_errmsg("\r\n");
/*
* The parent must skip the normal exit() processing, the child
* will do it. For example, GTK messes up signals when exiting.
*/
_exit(0);
}
/* Child */
# if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
/*
* Change our process group. On some systems/shells a CTRL-C in the
* shell where Vim was started would otherwise kill gvim!
*/
# if defined(HAVE_SETSID)
(void)setsid();
# else
(void)setpgid(0, 0);
# endif
# endif
if (!pipe_error)
close(pipefd[0]);
# if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
/* Tell the session manager our new PID */
gui_mch_forked();
# endif
/* Try to start the GUI */
gui_attempt_start();
/* Notify the parent */
if (!pipe_error)
{
if (gui.in_use)
write_eintr(pipefd[1], "ok", 3);
else
write_eintr(pipefd[1], "fail", 5);
close(pipefd[1]);
}
/* If we failed to start the GUI, exit now. */
if (!gui.in_use)
exit(1);
#endif
}
/*
* Read from a pipe assumed to be connected to the child process (this
* function is called from the parent).
* Return GUI_CHILD_OK if the child successfully started the GUI,
* GUY_CHILD_FAILED if the child failed, or GUI_CHILD_IO_ERROR if there was
* some other error.
*
* The file descriptor will be closed before the function returns.
*/
static int
gui_read_child_pipe(int fd)
{
long bytes_read;
#define READ_BUFFER_SIZE 10
char buffer[READ_BUFFER_SIZE];
bytes_read = read_eintr(fd, buffer, READ_BUFFER_SIZE - 1);
#undef READ_BUFFER_SIZE
close(fd);
if (bytes_read < 0)
return GUI_CHILD_IO_ERROR;
buffer[bytes_read] = NUL;
if (strcmp(buffer, "ok") == 0)
return GUI_CHILD_OK;
return GUI_CHILD_FAILED;
}
#endif /* MAY_FORK */
/*
* Call this when vim starts up, whether or not the GUI is started
*/
@@ -1428,7 +1548,7 @@ gui_set_shellsize(mustset, fit_to_display, direction)
if (!gui.shell_created)
return;
#ifdef MSWIN
#if defined(MSWIN) || defined(FEAT_GUI_GTK)
/* If not setting to a user specified size and maximized, calculate the
* number of characters that fit in the maximized window. */
if (!mustset && gui_mch_maximized())
+17 -7
View File
@@ -3081,7 +3081,7 @@ gui_gtk_set_dnd_targets(void)
for (i = 0; i < (int)N_DND_TARGETS; ++i)
{
if (!clip_html && selection_targets[i].info == TARGET_HTML)
if (!clip_html && dnd_targets[i].info == TARGET_HTML)
n_targets--;
else
targets[j++] = dnd_targets[i];
@@ -3899,6 +3899,21 @@ gui_mch_unmaximize()
gtk_window_unmaximize(GTK_WINDOW(gui.mainwin));
}
/*
* Called when the font changed while the window is maximized. Compute the
* new Rows and Columns. This is like resizing the window.
*/
void
gui_mch_newfont()
{
int w, h;
gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
w -= get_menu_tool_width();
h -= get_menu_tool_height();
gui_resize_shell(w, h);
}
/*
* Set the windows size.
*/
@@ -4409,14 +4424,9 @@ gui_mch_init_font(char_u *font_name, int fontset UNUSED)
if (gui_mch_maximized())
{
int w, h;
/* Update lines and columns in accordance with the new font, keep the
* window maximized. */
gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
w -= get_menu_tool_width();
h -= get_menu_tool_height();
gui_resize_shell(w, h);
gui_mch_newfont();
}
else
{
+775 -775
View File
File diff suppressed because it is too large Load Diff

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