mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-02 11:19:22 +02:00
Compare commits
215 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b959dabf31 | |||
| fb682aa63b | |||
| 0df4812a34 | |||
| 33238357a4 | |||
| a7433858d2 | |||
| feab21d38e | |||
| 38f22f9c19 | |||
| 49ee1c0362 | |||
| becaaaead9 | |||
| f7a78fd1d6 | |||
| 13cb4e6055 | |||
| 406ac0a6d3 | |||
| e7c4730ea7 | |||
| d07211ba92 | |||
| 2c634a61c1 | |||
| ce2d6ca8a0 | |||
| 0949e7f3cb | |||
| 020e3b0da8 | |||
| 9a0bd38bac | |||
| b7bb0bdc20 | |||
| 3011c698b3 | |||
| a1213ba4c8 | |||
| 324460bd91 | |||
| 69f06a5f47 | |||
| a21d5cd3fb | |||
| 349aba9d06 | |||
| 0390598346 | |||
| 393701519f | |||
| 439e2de8e4 | |||
| d080627083 | |||
| 16fa70308c | |||
| 770d08e1d9 | |||
| 6aae53fbbc | |||
| 79f63a43c8 | |||
| 81a7633180 | |||
| 4df94e4d83 | |||
| 8645ea43d0 | |||
| ca1a04794c | |||
| 51e31e9713 | |||
| 994b93a73d | |||
| dc6e5f1009 | |||
| 9d6da2621a | |||
| 65c62e1036 | |||
| 92011ac52a | |||
| 9d2bfce7a5 | |||
| 2e1ef7f670 | |||
| 5507ad9c4e | |||
| 5b43e33aa6 | |||
| b5711505da | |||
| 54eddb6057 | |||
| f17a7b3224 | |||
| a26ab7715d | |||
| 71f29fbc2d | |||
| 8b7e080a84 | |||
| 90af7efedf | |||
| f959b996e8 | |||
| e48974af8c | |||
| 2de2bfa2d0 | |||
| 5cfb54ead4 | |||
| b7571e20e7 | |||
| 27933401af | |||
| afc4e4ce4a | |||
| 6a9a8f9b19 | |||
| e5c652eca9 | |||
| 3ab9c1384f | |||
| 054b67b2b8 | |||
| bf9c575456 | |||
| a4f92ceca3 | |||
| 970f752598 | |||
| 08147f3210 | |||
| 63eb54becf | |||
| 716195299b | |||
| eadead4e05 | |||
| dae8dd82a1 | |||
| 36083d9981 | |||
| 24c79f8574 | |||
| a73d723be8 | |||
| bc4b1d2485 | |||
| 9404aab7e5 | |||
| f226625aef | |||
| f55f73cb30 | |||
| f4bbe1b24d | |||
| 252510d3df | |||
| 50a0c80dd7 | |||
| 9f368a11b2 | |||
| a4fc0ce9eb | |||
| ee5543b7de | |||
| aa016a5bfe | |||
| 4cc118bb3d | |||
| b26f0fb957 | |||
| 4f487cb1a0 | |||
| 9b6d1038ba | |||
| a44e66647e | |||
| 2fc242e6cc | |||
| af81f033f9 | |||
| e1cd0dfcd0 | |||
| 5ebe10cd56 | |||
| eae54ba84f | |||
| 025402ead3 | |||
| 69761f00d2 | |||
| b6f9d20ef4 | |||
| 994b223919 | |||
| 6fb1ea8d7f | |||
| c58a35b454 | |||
| 8b4e70c31d | |||
| 674896651e | |||
| 57747fd2bf | |||
| 1e1f876bc1 | |||
| e1fae7284e | |||
| b35ffe84c6 | |||
| c2d6883594 | |||
| a810a2915f | |||
| 490a242c79 | |||
| 88fc234df7 | |||
| 95b3957d73 | |||
| 31d7d95535 | |||
| b68b47e81f | |||
| af13572c16 | |||
| 62511ccb37 | |||
| 9007fe7ea4 | |||
| 1435c84507 | |||
| 8d255ed95a | |||
| ff09e61694 | |||
| f33d8610ca | |||
| 84bd7acdcb | |||
| d7868fe396 | |||
| 4fbfd3b72d | |||
| e3c8fb2cc5 | |||
| 67755f963f | |||
| 871d6fb68d | |||
| 2dcdd2a153 | |||
| 2999bcc962 | |||
| bb18281bd3 | |||
| a0aba21f7a | |||
| 8b7a78a4ca | |||
| ef6d40a9c4 | |||
| dc9a599bb4 | |||
| 98346d00d1 | |||
| 7f8ed177e5 | |||
| d01ee9a02b | |||
| 4fbdea5683 | |||
| bcfd3686d3 | |||
| 705cce16cb | |||
| ec80934916 | |||
| 9dabefa342 | |||
| 19d9e88653 | |||
| f295c0db32 | |||
| b8e2540fef | |||
| 6f05829f7e | |||
| 9e6a7b76b5 | |||
| aa86531f82 | |||
| e0f133cb14 | |||
| 56390fac62 | |||
| c35d6d1d3c | |||
| 27086e3b64 | |||
| df741b5f4e | |||
| 79ba4bcdc0 | |||
| 6bd19ecf62 | |||
| df0c4d770c | |||
| 672bf1f0fc | |||
| 1c1b721b93 | |||
| 37741a0cb5 | |||
| e967a23863 | |||
| 851cd145ab | |||
| 12011cfc3e | |||
| 073aa81247 | |||
| 3f7b3209d8 | |||
| d293bc15ca | |||
| 136af5316e | |||
| e01174b1f3 | |||
| 103ac57ae2 | |||
| ac79fd3bee | |||
| fc6320cf98 | |||
| 31ed9f1341 | |||
| 88b7b921be | |||
| 35c355a085 | |||
| 47e83bcd2e | |||
| 1e4ca096eb | |||
| 301fd4c3ac | |||
| b5fae0ff3f | |||
| d99c9c1101 | |||
| 155ee7b0ca | |||
| c3d99f427d | |||
| cee4357a5b | |||
| fa6185ce52 | |||
| c9cf2496c7 | |||
| 803d8bdfb4 | |||
| 4616dfcd3a | |||
| 37573a22d4 | |||
| 44d2f391c9 | |||
| 187319ac73 | |||
| bea434d7ad | |||
| ddc01469a8 | |||
| 1f1e41911e | |||
| 7c4547bf99 | |||
| 7322c3ba4b | |||
| 9d86f0c543 | |||
| be9bf38b00 | |||
| 78f1705c39 | |||
| f752a1288f | |||
| 5aa313472e | |||
| ff3e697c62 | |||
| 9c42afa550 | |||
| cf1628689a | |||
| b70aad41ed | |||
| 8dd190f611 | |||
| b20d2575d0 | |||
| 195add0620 | |||
| fd92d3e268 | |||
| a9c96dd4b4 | |||
| 09fcb03138 | |||
| dab1828e3d | |||
| a732285db7 | |||
| f562b94b3f | |||
| 64379f252a |
@@ -3,6 +3,8 @@
|
||||
src/MacVim/MacVim.xcodeproj/*.mode1
|
||||
src/MacVim/MacVim.xcodeproj/*.mode1v3
|
||||
src/MacVim/MacVim.xcodeproj/*.pbxuser
|
||||
src/MacVim/MacVim.xcodeproj/project.xcworkspace
|
||||
src/MacVim/MacVim.xcodeproj/xcuserdata
|
||||
src/MacVim/icons/*.pyc
|
||||
src/MacVim/icons/*.ttf
|
||||
src/MacVim/icons/*.reg
|
||||
@@ -16,6 +18,7 @@ src/MacVim/icons/makeicns/makeicns
|
||||
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.mode1
|
||||
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.mode1v3
|
||||
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.pbxuser
|
||||
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/xcuserdata
|
||||
src/MacVim/PSMTabBarControl/build
|
||||
src/MacVim/PSMTabBarControl/build
|
||||
src/MacVim/build
|
||||
@@ -35,3 +38,4 @@ src/po/*.mo
|
||||
src/tags
|
||||
src/xxd/xxd
|
||||
src/xxd/xxd.dSYM
|
||||
src/a.out.dSYM
|
||||
|
||||
@@ -1572,3 +1572,81 @@ b67d3a44262a97e7b3ae212fcffb36926b5f53f4 v7-3-232
|
||||
441d364773dc53264b5f26042f8fc6f8b77c8044 v7-3-235
|
||||
c1733ef5b6e87dde521d0d85a1e5e62259854ac1 v7-3-236
|
||||
e3bb93df6c34da672244bce5695c1426da139614 v7-3-237
|
||||
f2c108f44f415c7cfe92862e791a01cc542ac378 v7-3-238
|
||||
0bef86c5c985218a9448fa16d935b913e67af8d5 v7-3-239
|
||||
bf283e37792b4b557a2b9081e4fdb0e10acb9655 v7-3-240
|
||||
0a650db0265381b540df8ca6bd716c4b2d47dfc9 v7-3-241
|
||||
3d96ddbeb3b0003de29b736f63b76675909f133c v7-3-242
|
||||
512ddd87f1a817749c8362bd043682a7bbd87014 v7-3-243
|
||||
be6b6509636242cd7e6fab9a4b8772e97fc9a0db v7-3-244
|
||||
52512eddb876f64399e98d12643233a87c9f2823 v7-3-245
|
||||
3f1a4ed36d1b520a1ad5aa6cbf50d68bc8b9c7a5 v7-3-246
|
||||
7fe2c092913e84e6717782da1f1a220069eebbe7 v7-3-247
|
||||
57a7998e0fa8854a7a8c3946df1d4c9b1ee220e5 v7-3-248
|
||||
9f71f5a526aff4f1e0eefe1068d9534aee427afa v7-3-249
|
||||
f909f4f0f38c71594266b3595d31ce04d4ebe3ec v7-3-250
|
||||
fe6ad3fd85322b394824a5c495a78061a747b074 v7-3-251
|
||||
0b4289bcf8364854dd5f94c42d0252504103e5b9 v7-3-252
|
||||
c21429d7768cd4b834a086dd47881d01bca74e8c v7-3-253
|
||||
1eb805225de7750c03af7b0f7ac2f5dd18d032be v7-3-254
|
||||
aa998de9f9592426c17396b60c5db9170a234024 v7-3-255
|
||||
c296c225736e4489706c62c95752a0c4788be1d3 v7-3-256
|
||||
1fad9c73d77a0030586704cccab1b1a7aba8b58b v7-3-257
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 7.3. Last change: 2011 Jun 19
|
||||
*eval.txt* For Vim version 7.3. Last change: 2011 Aug 29
|
||||
|
||||
|
||||
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*
|
||||
@@ -2277,7 +2277,8 @@ char2nr({expr}) *char2nr()*
|
||||
< The current 'encoding' is used. Example for "utf-8": >
|
||||
char2nr("á") returns 225
|
||||
char2nr("á"[0]) returns 195
|
||||
< |nr2char()| does the opposite.
|
||||
< A combining character is a separate character.
|
||||
|nr2char()| does the opposite.
|
||||
|
||||
cindent({lnum}) *cindent()*
|
||||
Get the amount of indent for line {lnum} according the C
|
||||
@@ -5968,7 +5969,7 @@ virtcol({expr}) *virtcol()*
|
||||
When 'virtualedit' is used {expr} can be [lnum, col, off], where
|
||||
"off" is the offset in screen columns from the start of the
|
||||
character. E.g., a position within a <Tab> or after the last
|
||||
character.
|
||||
character. When "off" is omitted zero is used.
|
||||
When Virtual editing is active in the current mode, a position
|
||||
beyond the end of the line can be returned. |'virtualedit'|
|
||||
The accepted positions are:
|
||||
|
||||
+10
-1
@@ -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*
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+47
-8
@@ -1,4 +1,4 @@
|
||||
*indent.txt* For Vim version 7.3. Last change: 2011 May 31
|
||||
*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
|
||||
@@ -486,9 +486,10 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
) )
|
||||
<
|
||||
*java-cinoptions* *java-indenting* *cino-j*
|
||||
jN Indent java anonymous classes correctly. The value 'N' is
|
||||
currently unused but must be non-zero (e.g. 'j1'). 'j1' will
|
||||
indent for example the following code snippet correctly: >
|
||||
jN Indent Java anonymous classes correctly. Also works well for
|
||||
Javascript. The value 'N' is currently unused but must be
|
||||
non-zero (e.g. 'j1'). 'j1' will indent for example the
|
||||
following code snippet correctly: >
|
||||
|
||||
object.add(new ChangeListener() {
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
@@ -499,7 +500,8 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
*javascript-cinoptions* *javascript-indenting* *cino-J*
|
||||
JN Indent JavaScript object declarations correctly by not confusing
|
||||
them with labels. The value 'N' is currently unused but must be
|
||||
non-zero (e.g. 'J1'). >
|
||||
non-zero (e.g. 'J1'). If you enable this you probably also want
|
||||
to set |cino-j|. >
|
||||
|
||||
var bar = {
|
||||
foo: {
|
||||
@@ -704,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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
+7
-2
@@ -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 Aug 19
|
||||
|
||||
|
||||
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.
|
||||
@@ -544,6 +544,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.
|
||||
|
||||
@@ -1211,17 +1212,21 @@ completion can be enabled:
|
||||
|
||||
-complete=augroup autocmd groups
|
||||
-complete=buffer buffer names
|
||||
-complete=color color schemes
|
||||
-complete=command Ex command (and arguments)
|
||||
-complete=compiler compilers
|
||||
-complete=cscope |:cscope| suboptions
|
||||
-complete=dir directory names
|
||||
-complete=environment environment variable names
|
||||
-complete=event autocommand events
|
||||
-complete=expression Vim expression
|
||||
-complete=file file and directory names
|
||||
-complete=file_in_path file and directory names in |'path'|
|
||||
-complete=filetype filetype names |'filetype'|
|
||||
-complete=function function name
|
||||
-complete=help help subjects
|
||||
-complete=highlight highlight groups
|
||||
-complete=locale locale names (as output of locale -a)
|
||||
-complete=mapping mapping name
|
||||
-complete=menu menus
|
||||
-complete=option options
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 7.3. Last change: 2011 Feb 01
|
||||
*mbyte.txt* For Vim version 7.3. Last change: 2011 Jul 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -1306,8 +1306,8 @@ character. However, search patterns may not match on an overlong sequence.
|
||||
character.) An exception is NUL (zero) which is displayed as "<00>".
|
||||
|
||||
In the file and buffer the full range of Unicode characters can be used (31
|
||||
bits). However, displaying only works for 16 bit characters, and only for the
|
||||
characters present in the selected font.
|
||||
bits). However, displaying only works for the characters present in the
|
||||
selected font.
|
||||
|
||||
Useful commands:
|
||||
- "ga" shows the decimal, hexadecimal and octal value of the character under
|
||||
|
||||
@@ -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}
|
||||
|
||||
|
||||
+20
-11
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.3. Last change: 2011 Jun 12
|
||||
*options.txt* For Vim version 7.3. Last change: 2011 Sep 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -3308,7 +3308,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
XXX: Think about how 'fullscreen' and 'transparency' should interact.
|
||||
|
||||
*'fuoptions'* *'fuopt'*
|
||||
'fuoptions' 'fuopt' string (default "maxvert")
|
||||
'fuoptions' 'fuopt' string (default "maxvert,maxhorz")
|
||||
global
|
||||
{not in Vi}
|
||||
{only in MacVim GUI}
|
||||
@@ -3328,6 +3328,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
number of columns, it is restored to the value it had before
|
||||
entering fullscreen.
|
||||
background:color
|
||||
{not supported in Mac OS X native full screen}
|
||||
When entering fullscreen, 'color' defines the color of the part
|
||||
of the screen that is not occupied by the Vim control. If
|
||||
'color' is an 8-digit hexadecimal number preceded by '#',
|
||||
@@ -3339,15 +3340,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
scheme.
|
||||
|
||||
Examples:
|
||||
Don't change size of Vim when entering fullscreen: >
|
||||
Don't change size when entering fullscreen: >
|
||||
:set fuoptions=
|
||||
< Maximize Vim when entering fullscreen: >
|
||||
:set fuoptions=maxvert,maxhorz
|
||||
< Maximize Vim only vertically when entering fullscreen, and color the
|
||||
< Only maximize vertically when entering fullscreen: >
|
||||
:set fuoptions=maxvert
|
||||
< Maximize only vertically when entering fullscreen, and color the
|
||||
background dark blue: >
|
||||
:set fuoptions=maxvert,background:#FF003042
|
||||
< Don't change the size of Vim when entering fullscreen, and color the
|
||||
background like the current text background: >
|
||||
< Don't change size when entering fullscreen, and color the background
|
||||
like the current text background: >
|
||||
:set fuoptions=background:Normal
|
||||
<
|
||||
XXX: what if the font size is changed? you probably never want to
|
||||
@@ -4975,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.
|
||||
|
||||
@@ -6012,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.
|
||||
|
||||
@@ -6116,7 +6124,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not in Vi}
|
||||
When on, use temp files for shell commands. When off use a pipe.
|
||||
When using a pipe is not possible temp files are used anyway.
|
||||
Currently a pipe is only supported on Unix. You can check it with: >
|
||||
Currently a pipe is only supported on Unix and MS-Windows 2K and
|
||||
later. You can check it with: >
|
||||
:if has("filterpipe")
|
||||
< The advantage of using a pipe is that nobody can read the temp file
|
||||
and the 'shell' command does not need to support redirection.
|
||||
|
||||
+48
-50
@@ -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)
|
||||
|
||||
@@ -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 .
|
||||
|
||||
@@ -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 Jul 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1036,11 +1036,9 @@ x A single character, with no special meaning, matches itself
|
||||
These items only work for 8-bit characters.
|
||||
*/[[=* *[==]*
|
||||
- An equivalence class. This means that characters are matched that
|
||||
have almost the same meaning, e.g., when ignoring accents. The form
|
||||
is:
|
||||
have almost the same meaning, e.g., when ignoring accents. This
|
||||
only works for Unicode, latin1 and latin9. The form is:
|
||||
[=a=]
|
||||
Currently this is only implemented for latin1. Also works for the
|
||||
latin1 characters in utf-8 and latin9.
|
||||
*/[[.* *[..]*
|
||||
- A collation element. This currently simply accepts a single
|
||||
character in the form:
|
||||
|
||||
@@ -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 Aug 14
|
||||
|
||||
----------------
|
||||
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|
|
||||
|
||||
@@ -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*
|
||||
|
||||
@@ -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*
|
||||
|
||||
+11
-5
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.3. Last change: 2011 May 06
|
||||
*syntax.txt* For Vim version 7.3. Last change: 2011 Jul 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -866,13 +866,13 @@ used.
|
||||
Detecting whether a file is csh or tcsh is notoriously hard. Some systems
|
||||
symlink /bin/csh to /bin/tcsh, making it almost impossible to distinguish
|
||||
between csh and tcsh. In case VIM guesses wrong you can set the
|
||||
"filetype_csh" variable. For using csh: >
|
||||
|
||||
:let filetype_csh = "csh"
|
||||
"filetype_csh" variable. For using csh: *g:filetype_csh*
|
||||
>
|
||||
:let g:filetype_csh = "csh"
|
||||
|
||||
For using tcsh: >
|
||||
|
||||
:let filetype_csh = "tcsh"
|
||||
:let g:filetype_csh = "tcsh"
|
||||
|
||||
Any script with a tcsh extension or a standard tcsh filename (.tcshrc,
|
||||
tcsh.tcshrc, tcsh.login) will have filetype tcsh. All other tcsh/csh scripts
|
||||
@@ -2372,6 +2372,12 @@ This will make the syntax synchronization start 50 lines before the first
|
||||
displayed line. The default value is 10. The disadvantage of using a larger
|
||||
number is that redrawing can become slow.
|
||||
|
||||
Vim tries to guess what type a ".r" file is. If it can't be detected (from
|
||||
comment lines), the default is "r". To make the default rexx add this line to
|
||||
your .vimrc: *g:filetype_r*
|
||||
>
|
||||
:let g:filetype_r = "r"
|
||||
|
||||
|
||||
RUBY *ruby.vim* *ft-ruby-syntax*
|
||||
|
||||
|
||||
+9
-1
@@ -4280,6 +4280,8 @@ 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*
|
||||
E86 windows.txt /*E86*
|
||||
E87 windows.txt /*E87*
|
||||
E88 windows.txt /*E88*
|
||||
@@ -5013,7 +5015,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 +5041,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*
|
||||
@@ -5149,6 +5151,7 @@ cpo-+ options.txt /*cpo-+*
|
||||
cpo-- options.txt /*cpo--*
|
||||
cpo-. options.txt /*cpo-.*
|
||||
cpo-/ options.txt /*cpo-\/*
|
||||
cpo-; options.txt /*cpo-;*
|
||||
cpo-< options.txt /*cpo-<*
|
||||
cpo-> options.txt /*cpo->*
|
||||
cpo-A options.txt /*cpo-A*
|
||||
@@ -5743,6 +5746,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*
|
||||
@@ -5838,6 +5842,8 @@ g:decada.Error_Format ft_ada.txt /*g:decada.Error_Format*
|
||||
g:decada.Make() ft_ada.txt /*g:decada.Make()*
|
||||
g:decada.Make_Command ft_ada.txt /*g:decada.Make_Command*
|
||||
g:decada.Unit_Name() ft_ada.txt /*g:decada.Unit_Name()*
|
||||
g:filetype_csh syntax.txt /*g:filetype_csh*
|
||||
g:filetype_r syntax.txt /*g:filetype_r*
|
||||
g:gnat ft_ada.txt /*g:gnat*
|
||||
g:gnat.Error_Format ft_ada.txt /*g:gnat.Error_Format*
|
||||
g:gnat.Find() ft_ada.txt /*g:gnat.Find()*
|
||||
@@ -6073,6 +6079,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*
|
||||
@@ -6283,6 +6290,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]*
|
||||
|
||||
+71
-118
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.3. Last change: 2011 Jun 19
|
||||
*todo.txt* For Vim version 7.3. Last change: 2011 Sep 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,66 +34,45 @@ not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Patch to start GTK only after forking. (Tim Starling, 2011 Sep 12)
|
||||
|
||||
Patch for Lua debug(). (Rob Hoelz, 2011 Sep 12)
|
||||
|
||||
Go through more coverity reports.
|
||||
|
||||
Using "." to repeat a Visual delete counts bytes, not characters. Can this be
|
||||
fixed? (Connor Lane Smith, 2011 Sep 1)
|
||||
|
||||
Patch to allow getchar() in expression mapping.
|
||||
Why was typeahead saved and restored? (James Vega, 2011 Aug 31)
|
||||
|
||||
Crash in autocomplete, valgrind log. (Greg Weber, 2011 Apr 22)
|
||||
|
||||
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
|
||||
|
||||
Patch to fix gj with count. (James Vega, 2011 Jun 13)
|
||||
|
||||
Patch to disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka, 2010
|
||||
Nov 25)
|
||||
|
||||
7 Output for ":scriptnames" and ":breaklist" should shorten the file names:
|
||||
use "~/" when possible.
|
||||
Patch by Jean-Rene David, 2011 May 1.
|
||||
|
||||
Cindent wrong after patch 7.3.202. (Lech Lorens, issue 9)
|
||||
|
||||
Patch for cindent fix with closing brace placement, including tests.
|
||||
(Lech Lorens, issue 10, 2011 Jun 12)
|
||||
|
||||
Patch for better #if 0 syntax highlighting for C code. (Ben Schmidt, 2011 Jan
|
||||
20)
|
||||
Change to C syntax folding to make it work much faster, but a bit less
|
||||
reliable. (Lech Lorens, 2009 Nov 9) Enable with an option?
|
||||
Most time is spent in in_id_list().
|
||||
Updated to merge both patches. (Ben Schmidt, 2011 May 2)
|
||||
|
||||
GTK: Patch to fix menu popping down. (Hong Xu, 2010 Dec 4, Dec 5)
|
||||
Update 2011 Feb 3.
|
||||
|
||||
Patch to use pipes on Win32. (Vincent Berthoux, 2011 Feb 28)
|
||||
Update Mar 1 using 'shelltemp'.
|
||||
|
||||
Patch to fix CTRL-R CTRL-W in the command line when the cursor is not at the
|
||||
end. (Tyru, 2011 Jun 6)
|
||||
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.
|
||||
|
||||
Patch to make ";" not get stuck on "t" command. (Christian Brabandt, 2011 May
|
||||
23)
|
||||
Patch for glob() returning a list. (Christian Brabandt, 2011 Aug 24, second
|
||||
one)
|
||||
|
||||
Patch to do more testing of Javascript indenting. Some items are srong.
|
||||
(Luc Deschenaux, 2011 Jun 14)
|
||||
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).
|
||||
|
||||
"gh<Del>" deletes the current line, except when it's the last line.
|
||||
Hint by Christian Brabandt, 2011 Mar 22
|
||||
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.
|
||||
|
||||
"echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
|
||||
mb_strnicmp() checks for illegal and truncated bytes are wrong.
|
||||
Should also not assume that byte length is equal before case folding.
|
||||
Patch by Ivan Krasilnikov, 2011 May 27.
|
||||
|
||||
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.
|
||||
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
|
||||
|
||||
'cursorline' is displayed too short when there are concealed characters and
|
||||
'list' is set. (Dennis Preiser)
|
||||
Patch 7.3.116 was the wrong solution.
|
||||
Christian Brabandt has another incomplete patch. (2011 Jul 13)
|
||||
|
||||
With concealed text mouse click doesn't put the cursor in the right position.
|
||||
(Herb Sitz) Fix by Christian Brabandt, 2011 Jun 16. Doesn't work properly,
|
||||
@@ -103,24 +82,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 make character classes work with multi-byte characters.
|
||||
(Dominique Pelle, 2011 May 31)
|
||||
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:
|
||||
@@ -137,15 +104,8 @@ 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.
|
||||
|
||||
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.
|
||||
popup completion menu closes quickly when there is a fold in the buffer. (Jan
|
||||
Christoph Ebersbach, 2011 Jul 3)
|
||||
|
||||
Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
|
||||
|
||||
@@ -167,6 +127,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.
|
||||
@@ -174,24 +136,27 @@ 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.
|
||||
|
||||
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)
|
||||
|
||||
Highlighting stops working after changing it many times. Script to reproduce
|
||||
it: Pablo Contreras, 2010 Oct 12 Windows XP and 7. Font is never freed?
|
||||
|
||||
When setting a local option value from the global value, add a script ID that
|
||||
indicates this, so that ":verbose set" can give a hint. Check with options in
|
||||
the help file.
|
||||
|
||||
After patch 7.3.097 still get E15. (Yukihiro Nakadaira, 2011 Jan 18)
|
||||
Also for another example (ZyX, 2011 Jan 24)
|
||||
|
||||
@@ -199,10 +164,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)
|
||||
|
||||
@@ -222,6 +183,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".
|
||||
@@ -334,26 +318,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)
|
||||
|
||||
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)
|
||||
(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
|
||||
|
||||
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)
|
||||
@@ -429,6 +407,9 @@ characters. (2010 Aug 14, bootleq)
|
||||
|
||||
Problem with stop directory in findfile(). (Adam Simpkins, 2009 Aug 26)
|
||||
|
||||
Using ']' as the end of a range in a pattern requires double escaping:
|
||||
/[@-\\]] (Andy Wokula, 2011 Jun 28)
|
||||
|
||||
Undo problem: line not removed as expected when using setline() from Insert
|
||||
mode. (Israel Chauca, 2010 May 13, more in second msg)
|
||||
Break undo when CTRL-R = changes the text? Or save more lines?
|
||||
@@ -448,10 +429,6 @@ 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.
|
||||
@@ -778,11 +755,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)
|
||||
|
||||
@@ -858,8 +830,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)
|
||||
|
||||
@@ -893,9 +863,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)
|
||||
|
||||
@@ -956,9 +923,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?
|
||||
@@ -1097,9 +1061,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)
|
||||
@@ -1525,6 +1486,7 @@ Awaiting updated patches:
|
||||
- Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
|
||||
Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30)
|
||||
Version for latest MacVim: Tobia Conforto, 2009 Nov 23
|
||||
More recent version: https://retracile.net/wiki/VimBreakIndent
|
||||
8 Add a few more command names to the menus. Patch from Jiri Brezina
|
||||
(28 feb 2002). Will mess the translations...
|
||||
7 ATTENTION dialog choices are more logical when "Delete it' appears
|
||||
@@ -2683,7 +2645,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?
|
||||
@@ -2863,7 +2824,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.
|
||||
@@ -4500,11 +4460,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)
|
||||
@@ -4622,8 +4579,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
|
||||
@@ -4641,8 +4596,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
+15
-4
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2011 Jun 13
|
||||
" Last Change: 2011 Sep 07
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -922,7 +922,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
|
||||
@@ -1588,8 +1588,13 @@ func! s:FTr()
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Nothing recognized, assume Rexx
|
||||
setf rexx
|
||||
" Nothing recognized, use user default or assume Rexx
|
||||
if exists("g:filetype_r")
|
||||
exe "setf " . g:filetype_r
|
||||
else
|
||||
" Rexx used to be the default, but R appears to be much more popular.
|
||||
setf r
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Remind
|
||||
@@ -2340,6 +2345,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)
|
||||
@@ -2510,6 +2518,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')
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -13,7 +13,10 @@ set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl fo< tw< cole< cocu<"
|
||||
|
||||
setlocal formatoptions+=tcroql textwidth=78 cole=2 cocu=nc
|
||||
setlocal formatoptions+=tcroql textwidth=78
|
||||
if has("conceal")
|
||||
setlocal cole=2 cocu=nc
|
||||
endif
|
||||
|
||||
if has("gui_macvim")
|
||||
" Use swipe gesture to navigate back/forward
|
||||
|
||||
@@ -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+=\.,-
|
||||
|
||||
@@ -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,'(',')' )
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: DTD (Document Type Definition for XML)
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2010-09-21
|
||||
" Latest Revision: 2011-07-08
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
@@ -52,7 +52,7 @@ function s:indent_to_innermost_parentheses(line, end)
|
||||
let end = a:end
|
||||
let parentheses = [end - 1]
|
||||
while token != ""
|
||||
let [token, end] = s:lex(a:line, end, '^\%([(),|]\|[A-Za-z0-9_-]\+\|#PCDATA\|%[A-Za-z0-9_-]\+;\)[?*+]\=')
|
||||
let [token, end] = s:lex(a:line, end, '^\%([(),|]\|[A-Za-z0-9_-]\+\|#P\=CDATA\|%[A-Za-z0-9_-]\+;\)[?*+]\=')
|
||||
if token[0] == '('
|
||||
call add(parentheses, end - 1)
|
||||
elseif token[0] == ')'
|
||||
|
||||
@@ -0,0 +1,482 @@
|
||||
" Vim indent file
|
||||
" Language: R
|
||||
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
|
||||
" Last Change: Wed Aug 31, 2011 12:24AM
|
||||
|
||||
|
||||
" 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 ind == pind || (ind == (pind + &sw) && pline =~ '{$' && ppost_else == 0)
|
||||
return ind
|
||||
endif
|
||||
|
||||
while pind < ind && plnum > 0 && ppb == 0
|
||||
let ind = pind
|
||||
let plnum = s:Get_prev_line(plnum)
|
||||
let pline = getline(plnum)
|
||||
let ppb = 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, '(', ')')
|
||||
endwhile
|
||||
let pind = indent(plnum)
|
||||
if ind == (pind + &sw) && pline =~ '{$'
|
||||
return ind
|
||||
endif
|
||||
endwhile
|
||||
|
||||
return ind
|
||||
|
||||
endfunction
|
||||
|
||||
" vim: sw=4
|
||||
+20
-14
@@ -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. Don’t 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
|
||||
|
||||
|
||||
+1
-1
@@ -1215,7 +1215,7 @@ if has("gui_macvim")
|
||||
macm Window.Minimize\ All key=<D-M-m> action=miniaturizeAll: alt=YES
|
||||
macm Window.Zoom key=<D-C-z> action=performZoom:
|
||||
macm Window.Zoom\ All key=<D-M-C-z> action=zoomAll: alt=YES
|
||||
macm Window.Toggle\ Full\ Screen\ Mode key=<D-F>
|
||||
macm Window.Toggle\ Full\ Screen\ Mode key=<D-C-f>
|
||||
macm Window.Select\ Next\ Tab key=<D-}>
|
||||
macm Window.Select\ Previous\ Tab key=<D-{>
|
||||
macm Window.Bring\ All\ To\ Front action=arrangeInFront:
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
" Vim syntax file
|
||||
" Language: BIND zone files (RFC1035)
|
||||
" Language: BIND zone files (RFC 1035)
|
||||
" Maintainer: Julian Mehnle <julian@mehnle.net>
|
||||
" URL: http://www.mehnle.net/source/odds+ends/vim/syntax/
|
||||
" Last Change: Thu 2006-04-20 12:30:45 UTC
|
||||
" Last Change: Thu 2011-07-16 20:42:00 UTC
|
||||
"
|
||||
" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with
|
||||
" heavy modifications.
|
||||
"
|
||||
" $Id: bindzone.vim,v 1.2 2006/04/20 22:06:21 vimboss Exp $
|
||||
" $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -23,7 +23,7 @@ syn case match
|
||||
syn region zoneRRecord start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown
|
||||
|
||||
syn match zoneDirective /^\$ORIGIN\s\+/ nextgroup=zoneOrigin,zoneUnknown
|
||||
syn match zoneDirective /^\$TTL\s\+/ nextgroup=zoneNumber,zoneUnknown
|
||||
syn match zoneDirective /^\$TTL\s\+/ nextgroup=zoneTTL,zoneUnknown
|
||||
syn match zoneDirective /^\$INCLUDE\s\+/ nextgroup=zoneText,zoneUnknown
|
||||
syn match zoneDirective /^\$GENERATE\s/
|
||||
|
||||
@@ -34,9 +34,9 @@ syn match zoneOrigin contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\
|
||||
syn match zoneDomain contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
|
||||
|
||||
syn match zoneSpecial contained /^[@*.]\s/
|
||||
syn match zoneTTL contained /\<\d[0-9HhWwDd]*\>/ nextgroup=zoneClass,zoneRRType skipwhite
|
||||
syn keyword zoneClass contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
|
||||
syn keyword zoneRRType contained A AAAA CNAME HINFO MX NS PTR SOA SRV TXT nextgroup=zoneRData skipwhite
|
||||
syn match zoneTTL contained /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite
|
||||
syn keyword zoneClass contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
|
||||
syn keyword zoneRRType contained A AAAA CNAME DNAME HINFO MX NS PTR SOA SRV TXT SPF nextgroup=zoneRData skipwhite
|
||||
syn match zoneRData contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown
|
||||
|
||||
syn match zoneIPAddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/
|
||||
@@ -66,7 +66,7 @@ syn match zoneNumber contained /\<[0-9]\+\(\s\|;\|$\)\@=/
|
||||
syn match zoneSerial contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/
|
||||
|
||||
syn match zoneErrParen /)/
|
||||
syn region zoneParen contained start="(" end=")" contains=zoneSerial,zoneNumber,zoneComment
|
||||
syn region zoneParen contained start="(" end=")" contains=zoneSerial,zoneTTL,zoneNumber,zoneComment
|
||||
syn match zoneComment /;.*/
|
||||
|
||||
" Define the default highlighting.
|
||||
|
||||
+36
-17
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2009 Nov 17
|
||||
" Last Change: 2011 Sep 07
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -72,7 +72,7 @@ endif
|
||||
" This should be before cErrInParen to avoid problems with #define ({ xxx })
|
||||
if exists("c_curly_error")
|
||||
syntax match cCurlyError "}"
|
||||
syntax region cBlock start="{" end="}" contains=ALLBUT,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell fold
|
||||
syntax region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell fold
|
||||
else
|
||||
syntax region cBlock start="{" end="}" transparent fold
|
||||
endif
|
||||
@@ -80,31 +80,33 @@ endif
|
||||
"catch errors caused by wrong parenthesis and brackets
|
||||
" also accept <% for {, %> for }, <: for [ and :> for ] (C99)
|
||||
" But avoid matching <::.
|
||||
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
|
||||
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
|
||||
if exists("c_no_curly_error")
|
||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
|
||||
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||
syn match cParenError display ")"
|
||||
syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
|
||||
elseif exists("c_no_bracket_error")
|
||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
|
||||
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||
syn match cParenError display ")"
|
||||
syn match cErrInParen display contained "[{}]\|<%\|%>"
|
||||
else
|
||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
|
||||
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
|
||||
syn match cParenError display "[\])]"
|
||||
syn match cErrInParen display contained "[\]{}]\|<%\|%>"
|
||||
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell
|
||||
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell
|
||||
" cCppBracket: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppBracket transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell
|
||||
syn match cErrInBracket display contained "[);{}]\|<%\|%>"
|
||||
endif
|
||||
|
||||
syntax region cBadBlock keepend extend start="{" end="}" contained containedin=cParen,cBracket,cBadBlock transparent fold
|
||||
|
||||
"integer number, or floating point number without a dot and with "f".
|
||||
syn case ignore
|
||||
syn match cNumbers display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal
|
||||
@@ -270,27 +272,39 @@ if !exists("c_no_c99") " ISO C99
|
||||
endif
|
||||
|
||||
" Accept %: for # (C99)
|
||||
syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
|
||||
syn match cPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
|
||||
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\)\>"
|
||||
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 fold
|
||||
syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
|
||||
if !exists("c_no_if0_fold")
|
||||
syn region cCppOut start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2 fold
|
||||
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 cCppOut start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2
|
||||
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 cCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cSpaceError,cCppSkip
|
||||
syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip
|
||||
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
|
||||
syn region cCppInWrapper start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
|
||||
syn region 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
|
||||
else
|
||||
syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
|
||||
endif
|
||||
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip
|
||||
syn region cCppOutSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
|
||||
syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
|
||||
endif
|
||||
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match cIncluded display contained "<[^>]*>"
|
||||
syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
|
||||
"syn match cLineSkip "\\$"
|
||||
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti
|
||||
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti
|
||||
syn region cDefine start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
|
||||
" Highlight User Labels
|
||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
|
||||
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
||||
syn cluster cLabelGroup contains=cUserLabel
|
||||
@@ -354,6 +368,9 @@ hi def link cDefine Macro
|
||||
hi def link cIncluded cString
|
||||
hi def link cError Error
|
||||
hi def link cStatement Statement
|
||||
hi def link cCppInWrapper cCppOutWrapper
|
||||
hi def link cCppOutWrapper cPreCondit
|
||||
hi def link cPreConditMatch cPreCondit
|
||||
hi def link cPreCondit PreCondit
|
||||
hi def link cType Type
|
||||
hi def link cConstant Constant
|
||||
@@ -365,8 +382,10 @@ hi def link cComment Comment
|
||||
hi def link cSpecial SpecialChar
|
||||
hi def link cTodo Todo
|
||||
hi def link cBadContinuation Error
|
||||
hi def link cCppSkip cCppOut
|
||||
hi def link cCppOut2 cCppOut
|
||||
hi def link cCppOutSkip cCppOutIf2
|
||||
hi def link cCppInElse2 cCppOutIf2
|
||||
hi def link cCppOutIf2 cCppOut2 " Old syntax group for #if 0 body
|
||||
hi def link cCppOut2 cCppOut " Old syntax group for #if of #if 0
|
||||
hi def link cCppOut Comment
|
||||
|
||||
let b:current_syntax = "c"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: dnsmasq(8) configuration file
|
||||
" Maintainer: Thilo Six <T.Six@gmx.de>
|
||||
" Last Change: 17 May 2011
|
||||
" Last Change: 2011 Jul 14
|
||||
" Credits: This file is a mix of cfg.vim, wget.vim and xf86conf.vim, credits go to:
|
||||
" Igor N. Prischepoff
|
||||
" Doug Kearns
|
||||
@@ -58,7 +58,7 @@ syn match DnsmasqString "'.*'"
|
||||
syn match DnsmasqComment "^#.*$" contains=DnsmasqTodo
|
||||
syn match DnsmasqComment "\s#.*$" contains=DnsmasqTodo
|
||||
|
||||
syn keyword DnsmasqTodo FIXME TODO XXX NOT contained
|
||||
syn keyword DnsmasqTodo FIXME TODO XXX NOTE contained
|
||||
|
||||
syn match DnsmasqKeywordSpecial "\<set\>:"me=e-1
|
||||
syn match DnsmasqKeywordSpecial "\<tag\>:"me=e-1
|
||||
|
||||
+19
-12
@@ -1,9 +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>
|
||||
" Last Change: Mon, 26 Jun 2006 22:07:28 +1000
|
||||
" 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
|
||||
@@ -17,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
|
||||
@@ -32,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
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: gnash(1) configuration files
|
||||
" http://www.gnu.org/software/gnash/manual/gnashuser.html#gnashrc
|
||||
" Maintainer: Thilo Six <T.Six@gmx.de>
|
||||
" Last Change: 17 May 2011
|
||||
" Last Change: 2011 Jul 02
|
||||
" Credidts: derived from readline.vim
|
||||
" Nikolai Weibull
|
||||
"
|
||||
@@ -32,6 +32,7 @@ syn case match
|
||||
syn match GnashSet '^\s*set\>'
|
||||
syn match GnashSet '^\s*append\>'
|
||||
|
||||
syn case ignore
|
||||
syn match GnashKeyword '\<CertDir\>'
|
||||
syn match GnashKeyword '\<ASCodingErrorsVerbosity\>'
|
||||
syn match GnashKeyword '\<CertFile\>'
|
||||
|
||||
+13
-4
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2010 Nov 03
|
||||
" Last Change: 2011 Jul 11
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -21,8 +21,13 @@ else
|
||||
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar
|
||||
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
|
||||
endif
|
||||
syn match helpBar contained "|" conceal
|
||||
syn match helpStar contained "\*" conceal
|
||||
if has("conceal")
|
||||
syn match helpBar contained "|" conceal
|
||||
syn match helpStar contained "\*" conceal
|
||||
else
|
||||
syn match helpBar contained "|"
|
||||
syn match helpStar contained "\*"
|
||||
endif
|
||||
syn match helpNormal "|.*====*|"
|
||||
syn match helpNormal ":|vim:|" " for :help modeline
|
||||
syn match helpVim "Vim version [0-9.a-z]\+"
|
||||
@@ -31,7 +36,11 @@ syn match helpOption "'[a-z]\{2,\}'"
|
||||
syn match helpOption "'t_..'"
|
||||
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
|
||||
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
|
||||
syn match helpIgnore "." contained conceal
|
||||
if has("conceal")
|
||||
syn match helpIgnore "." contained conceal
|
||||
else
|
||||
syn match helpIgnore "." contained
|
||||
endif
|
||||
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
|
||||
syn match helpSpecial "\<N\>"
|
||||
syn match helpSpecial "\<N\.$"me=e-1
|
||||
|
||||
@@ -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,
|
||||
|
||||
+89
-47
@@ -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: July 29, 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
|
||||
@@ -131,7 +123,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 +265,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 +274,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 +294,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 +344,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 +384,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 +426,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 +489,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 +647,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 +673,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
|
||||
|
||||
+18
-16
@@ -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
|
||||
|
||||
+11
-11
@@ -1,5 +1,5 @@
|
||||
===============================================================================
|
||||
= B i e n v e n u e dans le T u t o r i e l de V I M - Version 1.7.fr.2 =
|
||||
= B i e n v e n u e dans l e T u t o r i e l de V I M - Version 1.7 =
|
||||
===============================================================================
|
||||
|
||||
Vim est un éditeur très puissant qui a trop de commandes pour pouvoir
|
||||
@@ -67,7 +67,7 @@ NOTE : Les touches fl
|
||||
4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes
|
||||
1 à 3 pour sortir puis rentrer dans l'éditeur.
|
||||
|
||||
NOTE : :q! <Entrée> annule tous les changements que vous avez fait. Dans
|
||||
NOTE : :q! <Entrée> annule tous les changements que vous avez faits. Dans
|
||||
quelques leçons, vous apprendrez à enregistrer les changements.
|
||||
|
||||
5. Déplacez le curseur à la Leçon 1.3.
|
||||
@@ -260,7 +260,7 @@ NOTE : La lettre d appara
|
||||
|
||||
Une courte liste de mouvements :
|
||||
w - jusqu'au début du prochain mot, en EXCLUANT son premier caractère.
|
||||
e - jusqu'à la fin du mot courant, en EXCLUANT son denier caractère.
|
||||
e - jusqu'à la fin du mot courant, en EXCLUANT son dernier caractère.
|
||||
$ - jusqu'à la fin de la ligne, en INCLUANT son dernier caractère.
|
||||
|
||||
Ainsi, taper de va effacer depuis le curseur jusqu'à la fin du mot.
|
||||
@@ -299,7 +299,7 @@ NOTE : Le seul appui d'un mouvement en mode Normal, sans commande, d
|
||||
|
||||
Outre la combinaison de l'opérateur d'effacement avec un déplacement
|
||||
mentionné ci-dessus, vous pouvez insérer un nombre (quantificateur)
|
||||
pour effacez encore plus :
|
||||
pour effacer encore plus :
|
||||
d nombre déplacement
|
||||
|
||||
1. Déplacez le curseur vers le premier mot en MAJUSCULES dans la ligne
|
||||
@@ -704,7 +704,7 @@ NOTE : Si vous quittez Vim et le red
|
||||
3. Appuyez : . En bas de l'écran :'<,'> va apparaître.
|
||||
|
||||
4. Tapez w TEST , où TEST est un nom de fichier qui n'existe pas.
|
||||
Vérifiez que vous voyez :'<,'>w TEST avant de d'appuyer sur Entrée.
|
||||
Vérifiez que vous voyez :'<,'>w TEST avant de d'appuyer sur <Entrée>.
|
||||
|
||||
5. Vim va enregistrer les lignes sélectionnées dans le fichier TEST.
|
||||
Utilisez :!dir ou !ls pour le voir. Ne l'effacez pas encore !
|
||||
@@ -725,7 +725,7 @@ NOTE : L'appui de v d
|
||||
1. Placez le curseur juste au-dessus de cette ligne.
|
||||
|
||||
NOTE : Après avoir exécuté l'étape 2 vous verrez du texte de la Leçon 5.3.
|
||||
Puis déplacez vous vers le bas pour voir cette leçon à nouveau.
|
||||
Puis déplacez-vous vers le bas pour voir cette leçon à nouveau.
|
||||
|
||||
2. Maintenant récupérez votre fichier TEST en utilisant la commande :r TEST
|
||||
où TEST est le nom de votre fichier.
|
||||
@@ -854,7 +854,7 @@ NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
|
||||
5. Tapez p pour coller le texte. Puis tapez : un second <Échap> .
|
||||
|
||||
6. Utilisez le mode Visuel pour sélectionner "élément", copiez le avec y ,
|
||||
déplacez vous à la fin de la ligne suivant avec j$ et collez le texte
|
||||
déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte
|
||||
à cet endroit avec p .
|
||||
|
||||
---> a) ceci est le premier élément.
|
||||
@@ -1012,8 +1012,8 @@ NOTE : Le compl
|
||||
Ceci conclut le Tutoriel Vim. Le but était de vous donner un bref aperçu de
|
||||
l'éditeur Vim, juste assez pour vous permettre d'utiliser l'éditeur
|
||||
relativement facilement. Il est loin d'être complet, vu que Vim a beaucoup
|
||||
beaucoup plus de commandes. Un Manuel de l'utilisateur est disponible en
|
||||
anglais : :help user-manual .
|
||||
plus de commandes. Un Manuel de l'utilisateur est disponible en anglais :
|
||||
:help user-manual
|
||||
|
||||
Pour continuer à découvrir et à apprendre Vim, il existe un livre traduit en
|
||||
français. Il parle plus de Vi que de Vim, mais pourra vous être utile.
|
||||
@@ -1030,9 +1030,9 @@ NOTE : Le compl
|
||||
Université d'État du Colorado. E-mail : bware@mines.colorado.edu.
|
||||
|
||||
Modifié pour Vim par Bram Moolenar.
|
||||
Traduit en Français par Adrien Beau, en avril 2001.
|
||||
Traduit en français par Adrien Beau, en avril 2001.
|
||||
Dernières mises à jour par Dominique Pellé.
|
||||
|
||||
E-mail : dominique.pelle@gmail.com
|
||||
Last Change : 2010 May 23
|
||||
Last Change : 2011 Jun 25
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
===============================================================================
|
||||
= B i e n v e n u e dans le T u t o r i e l de V I M - Version 1.7.fr.2 =
|
||||
= B i e n v e n u e dans l e T u t o r i e l de V I M - Version 1.7 =
|
||||
===============================================================================
|
||||
|
||||
Vim est un éditeur très puissant qui a trop de commandes pour pouvoir
|
||||
@@ -67,7 +67,7 @@ NOTE : Les touches fléchées devraient également fonctionner. Mais en utilisan
|
||||
4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes
|
||||
1 à 3 pour sortir puis rentrer dans l'éditeur.
|
||||
|
||||
NOTE : :q! <Entrée> annule tous les changements que vous avez fait. Dans
|
||||
NOTE : :q! <Entrée> annule tous les changements que vous avez faits. Dans
|
||||
quelques leçons, vous apprendrez à enregistrer les changements.
|
||||
|
||||
5. Déplacez le curseur à la Leçon 1.3.
|
||||
@@ -260,7 +260,7 @@ NOTE : La lettre d apparaîtra sur la dernière ligne de l'écran lors de
|
||||
|
||||
Une courte liste de mouvements :
|
||||
w - jusqu'au début du prochain mot, en EXCLUANT son premier caractère.
|
||||
e - jusqu'à la fin du mot courant, en EXCLUANT son denier caractère.
|
||||
e - jusqu'à la fin du mot courant, en EXCLUANT son dernier caractère.
|
||||
$ - jusqu'à la fin de la ligne, en INCLUANT son dernier caractère.
|
||||
|
||||
Ainsi, taper de va effacer depuis le curseur jusqu'à la fin du mot.
|
||||
@@ -299,7 +299,7 @@ NOTE : Le seul appui d'un mouvement en mode Normal, sans commande, déplace le
|
||||
|
||||
Outre la combinaison de l'opérateur d'effacement avec un déplacement
|
||||
mentionné ci-dessus, vous pouvez insérer un nombre (quantificateur)
|
||||
pour effacez encore plus :
|
||||
pour effacer encore plus :
|
||||
d nombre déplacement
|
||||
|
||||
1. Déplacez le curseur vers le premier mot en MAJUSCULES dans la ligne
|
||||
@@ -704,7 +704,7 @@ NOTE : Si vous quittez Vim et le redémarrez de nouveau avec le fichier TEST,
|
||||
3. Appuyez : . En bas de l'écran :'<,'> va apparaître.
|
||||
|
||||
4. Tapez w TEST , où TEST est un nom de fichier qui n'existe pas.
|
||||
Vérifiez que vous voyez :'<,'>w TEST avant de d'appuyer sur Entrée.
|
||||
Vérifiez que vous voyez :'<,'>w TEST avant de d'appuyer sur <Entrée>.
|
||||
|
||||
5. Vim va enregistrer les lignes sélectionnées dans le fichier TEST.
|
||||
Utilisez :!dir ou !ls pour le voir. Ne l'effacez pas encore !
|
||||
@@ -725,7 +725,7 @@ NOTE : L'appui de v démarre la sélection Visuelle. Vous pouvez déplacer le
|
||||
1. Placez le curseur juste au-dessus de cette ligne.
|
||||
|
||||
NOTE : Après avoir exécuté l'étape 2 vous verrez du texte de la Leçon 5.3.
|
||||
Puis déplacez vous vers le bas pour voir cette leçon à nouveau.
|
||||
Puis déplacez-vous vers le bas pour voir cette leçon à nouveau.
|
||||
|
||||
2. Maintenant récupérez votre fichier TEST en utilisant la commande :r TEST
|
||||
où TEST est le nom de votre fichier.
|
||||
@@ -854,7 +854,7 @@ NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
|
||||
5. Tapez p pour coller le texte. Puis tapez : un second <Échap> .
|
||||
|
||||
6. Utilisez le mode Visuel pour sélectionner "élément", copiez le avec y ,
|
||||
déplacez vous à la fin de la ligne suivant avec j$ et collez le texte
|
||||
déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte
|
||||
à cet endroit avec p .
|
||||
|
||||
---> a) ceci est le premier élément.
|
||||
@@ -1012,8 +1012,8 @@ NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
|
||||
Ceci conclut le Tutoriel Vim. Le but était de vous donner un bref aperçu de
|
||||
l'éditeur Vim, juste assez pour vous permettre d'utiliser l'éditeur
|
||||
relativement facilement. Il est loin d'être complet, vu que Vim a beaucoup
|
||||
beaucoup plus de commandes. Un Manuel de l'utilisateur est disponible en
|
||||
anglais : :help user-manual .
|
||||
plus de commandes. Un Manuel de l'utilisateur est disponible en anglais :
|
||||
:help user-manual
|
||||
|
||||
Pour continuer à découvrir et à apprendre Vim, il existe un livre traduit en
|
||||
français. Il parle plus de Vi que de Vim, mais pourra vous être utile.
|
||||
@@ -1030,9 +1030,9 @@ NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
|
||||
Université d'État du Colorado. E-mail : bware@mines.colorado.edu.
|
||||
|
||||
Modifié pour Vim par Bram Moolenar.
|
||||
Traduit en Français par Adrien Beau, en avril 2001.
|
||||
Traduit en français par Adrien Beau, en avril 2001.
|
||||
Dernières mises à jour par Dominique Pellé.
|
||||
|
||||
E-mail : dominique.pelle@gmail.com
|
||||
Last Change : 2010 May 23
|
||||
Last Change : 2011 Jun 25
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
+31
-8
@@ -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
|
||||
@@ -586,8 +594,23 @@ STDMETHODIMP CShellExt::QueryContextMenu(HMENU hMenu,
|
||||
|
||||
// Initialize m_cntOfHWnd to 0
|
||||
m_cntOfHWnd = 0;
|
||||
// Retrieve all the vim instances
|
||||
EnumWindows(EnumWindowsProc, (LPARAM)this);
|
||||
|
||||
HKEY keyhandle;
|
||||
bool showExisting = true;
|
||||
|
||||
// Check whether "Edit with existing Vim" entries are disabled.
|
||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0,
|
||||
KEY_READ, &keyhandle) == ERROR_SUCCESS)
|
||||
{
|
||||
if (RegQueryValueEx(keyhandle, "DisableEditWithExisting", 0, NULL,
|
||||
NULL, NULL) == ERROR_SUCCESS)
|
||||
showExisting = false;
|
||||
RegCloseKey(keyhandle);
|
||||
}
|
||||
|
||||
// Retrieve all the vim instances, unless disabled.
|
||||
if (showExisting)
|
||||
EnumWindows(EnumWindowsProc, (LPARAM)this);
|
||||
|
||||
if (cbFiles > 1)
|
||||
{
|
||||
@@ -890,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.
|
||||
@@ -972,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.
|
||||
|
||||
+64
-5
@@ -11,9 +11,9 @@ The file "feature.h" can be edited to match your preferences. You can skip
|
||||
this, then you will get the default behavior as is documented, which should
|
||||
be fine for most people.
|
||||
|
||||
With the exception of the last two sections (Windows 3.1 and MS-DOS),
|
||||
this document assumes that you are building Vim for Win32
|
||||
(Windows NT/2000/XP/2003/Vista and Windows 95/98/Me)
|
||||
With the exception of two sections (Windows 3.1 and MS-DOS), this document
|
||||
assumes that you are building Vim for Win32 or later.
|
||||
(Windows 95/98/Me/NT/2000/XP/2003/Vista/7)
|
||||
|
||||
|
||||
Contents:
|
||||
@@ -27,6 +27,9 @@ Contents:
|
||||
8. Windows 3.1
|
||||
9. MS-DOS
|
||||
|
||||
10. Installing after building from sources
|
||||
|
||||
|
||||
The currently preferred method is using the free Visual C++ Toolkit 2008
|
||||
|msvc-2008-express|, the produced binary runs on most MS-Windows systems. If
|
||||
you need the executable to run on Windows 98 or ME, use the 2003 one
|
||||
@@ -407,5 +410,61 @@ Windows exe (GUI or console mode), or a 16-bit MS-DOS version.
|
||||
NOTE: multi-byte support is broken in the Borland libraries, not everything
|
||||
will work properly! Esp. handling multi-byte file names.
|
||||
|
||||
If you get all kinds of strange error messages when compiling, try adding
|
||||
changing the file format from "unix" to "dos".
|
||||
If you get all kinds of strange error messages when compiling, try changing
|
||||
the file format from "unix" to "dos".
|
||||
|
||||
|
||||
10. Installing after building from sources
|
||||
==========================================
|
||||
|
||||
[provided by Michael Soyka]
|
||||
|
||||
After you've built the Vim binaries as described above, you're ready to
|
||||
install Vim on your system. However, if you've obtained the Vim sources
|
||||
using Mercurial or by downloading them as a unix tar file, you must first
|
||||
create a "vim73" directory. If you instead downloaded the sources as
|
||||
zip files, you can skip this setup as the zip archives already have the
|
||||
correct directory structure.
|
||||
|
||||
A. Create a Vim "runtime" subdirectory named "vim73"
|
||||
-----------------------------------------------------
|
||||
If you obtained your Vim sources as zip files, you can skip this step.
|
||||
Otherwise, continue reading.
|
||||
|
||||
Go to the directory that contains the Vim "src" and "runtime"
|
||||
directories and create a new subdirectory named "vim73".
|
||||
|
||||
Copy the "runtime" files into "vim73":
|
||||
copy runtime\* vim73
|
||||
|
||||
B. Copy the new binaries into the "vim73" directory
|
||||
----------------------------------------------------
|
||||
Regardless of how you installed the Vim sources, you need to copy the
|
||||
new binaries you created above into "vim73":
|
||||
|
||||
copy src\*.exe vim73
|
||||
copy src\GvimExt\gvimext.dll vim73
|
||||
copy src\xxd\xxd.exe vim73
|
||||
|
||||
C. Move the "vim73" directory into the Vim installation subdirectory
|
||||
---------------------------------------------------------------------
|
||||
Move the "vim73" subdirectory into the subdirectory where you want Vim
|
||||
to be installed. Typically, this subdirectory will be named "vim".
|
||||
If you already have a "vim73" subdirectory in "vim", delete it first
|
||||
by running its uninstal.exe program.
|
||||
|
||||
D. Install Vim
|
||||
---------------
|
||||
"cd" to your Vim installation subdirectory "vim\vim73" and run the
|
||||
"install.exe" program. It will ask you a number of questions about
|
||||
how you would like to have your Vim setup. Among these are:
|
||||
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||
parent directory.
|
||||
- It can also install an "Edit with Vim" entry in the Windows Explorer
|
||||
popup menu.
|
||||
- You can have it create batch files, so that you can run Vim from the
|
||||
console or in a shell. You can select one of the directories in your
|
||||
PATH or add the directory to PATH using the Windows Control Panel.
|
||||
- Create entries for Vim on the desktop and in the Start menu.
|
||||
|
||||
Happy Vimming!
|
||||
|
||||
+175
-590
@@ -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.
@@ -1232,7 +1232,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>59</string>
|
||||
<string>62</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
||||
@@ -223,6 +223,7 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
|
||||
[NSNumber numberWithBool:YES], MMUseInlineImKey,
|
||||
#endif // INCLUDE_OLD_IM_CODE
|
||||
[NSNumber numberWithBool:NO], MMSuppressTerminationAlertKey,
|
||||
[NSNumber numberWithBool:YES], MMNativeFullScreenKey,
|
||||
nil];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:dict];
|
||||
@@ -241,6 +242,12 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
|
||||
{
|
||||
if (!(self = [super init])) return nil;
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
|
||||
// Disable automatic relaunching
|
||||
if ([NSApp respondsToSelector:@selector(disableRelaunchOnLogin)])
|
||||
[NSApp disableRelaunchOnLogin];
|
||||
#endif
|
||||
|
||||
vimControllers = [NSMutableArray new];
|
||||
cachedVimControllers = [NSMutableArray new];
|
||||
preloadPid = -1;
|
||||
@@ -1065,10 +1072,40 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
|
||||
NSOpenPanel *panel = [NSOpenPanel openPanel];
|
||||
[panel setAllowsMultipleSelection:YES];
|
||||
[panel setAccessoryView:showHiddenFilesView()];
|
||||
#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6)
|
||||
// NOTE: -[NSOpenPanel runModalForDirectory:file:types:] is deprecated on
|
||||
// 10.7 but -[NSOpenPanel setDirectoryURL:] requires 10.6 so jump through
|
||||
// the following hoops on 10.6+.
|
||||
dir = [dir stringByExpandingTildeInPath];
|
||||
if (dir) {
|
||||
NSURL *dirURL = [NSURL fileURLWithPath:dir isDirectory:YES];
|
||||
if (dirURL)
|
||||
[panel setDirectoryURL:dirURL];
|
||||
}
|
||||
|
||||
int result = [panel runModalForDirectory:dir file:nil types:nil];
|
||||
if (NSOKButton == result)
|
||||
[self application:NSApp openFiles:[panel filenames]];
|
||||
NSInteger result = [panel runModal];
|
||||
#else
|
||||
NSInteger result = [panel runModalForDirectory:dir file:nil types:nil];
|
||||
#endif
|
||||
if (NSOKButton == result) {
|
||||
// NOTE: -[NSOpenPanel filenames] is deprecated on 10.7 so use
|
||||
// -[NSOpenPanel URLs] instead. The downside is that we have to check
|
||||
// that each URL is really a path first.
|
||||
NSMutableArray *filenames = [NSMutableArray array];
|
||||
NSArray *urls = [panel URLs];
|
||||
NSUInteger i, count = [urls count];
|
||||
for (i = 0; i < count; ++i) {
|
||||
NSURL *url = [urls objectAtIndex:i];
|
||||
if ([url isFileURL]) {
|
||||
NSString *path = [url path];
|
||||
if (path)
|
||||
[filenames addObject:path];
|
||||
}
|
||||
}
|
||||
|
||||
if ([filenames count] > 0)
|
||||
[self application:NSApp openFiles:filenames];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)selectNextWindow:(id)sender
|
||||
@@ -1410,7 +1447,7 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
|
||||
// as follows:
|
||||
//
|
||||
// 1. Search through ordered windows as determined by NSApp. Unfortunately
|
||||
// this method can fail, e.g. if a full screen window is on another
|
||||
// this method can fail, e.g. if a full-screen window is on another
|
||||
// "Space" (in this case NSApp returns no windows at all), so we have to
|
||||
// fall back on ...
|
||||
// 2. Search through all Vim controllers and return the first visible
|
||||
|
||||
@@ -131,9 +131,9 @@ extern NSTimeInterval MMBalloonEvalInternalDelay;
|
||||
- (int)lookupColorWithKey:(NSString *)key;
|
||||
- (BOOL)hasSpecialKeyWithValue:(char_u *)value;
|
||||
|
||||
- (void)enterFullscreen:(int)fuoptions background:(int)bg;
|
||||
- (void)leaveFullscreen;
|
||||
- (void)setFullscreenBackgroundColor:(int)color;
|
||||
- (void)enterFullScreen:(int)fuoptions background:(int)bg;
|
||||
- (void)leaveFullScreen;
|
||||
- (void)setFullScreenBackgroundColor:(int)color;
|
||||
|
||||
- (void)setAntialias:(BOOL)antialias;
|
||||
|
||||
|
||||
@@ -1150,27 +1150,27 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (void)enterFullscreen:(int)fuoptions background:(int)bg
|
||||
- (void)enterFullScreen:(int)fuoptions background:(int)bg
|
||||
{
|
||||
NSMutableData *data = [NSMutableData data];
|
||||
[data appendBytes:&fuoptions length:sizeof(int)];
|
||||
bg = MM_COLOR(bg);
|
||||
[data appendBytes:&bg length:sizeof(int)];
|
||||
[self queueMessage:EnterFullscreenMsgID data:data];
|
||||
[self queueMessage:EnterFullScreenMsgID data:data];
|
||||
}
|
||||
|
||||
- (void)leaveFullscreen
|
||||
- (void)leaveFullScreen
|
||||
{
|
||||
[self queueMessage:LeaveFullscreenMsgID data:nil];
|
||||
[self queueMessage:LeaveFullScreenMsgID data:nil];
|
||||
}
|
||||
|
||||
- (void)setFullscreenBackgroundColor:(int)color
|
||||
- (void)setFullScreenBackgroundColor:(int)color
|
||||
{
|
||||
NSMutableData *data = [NSMutableData data];
|
||||
color = MM_COLOR(color);
|
||||
[data appendBytes:&color length:sizeof(int)];
|
||||
|
||||
[self queueMessage:SetFullscreenColorMsgID data:data];
|
||||
[self queueMessage:SetFullScreenColorMsgID data:data];
|
||||
}
|
||||
|
||||
- (void)setAntialias:(BOOL)antialias
|
||||
@@ -1819,6 +1819,7 @@ static void netbeansReadCallback(CFSocketRef s,
|
||||
[NSNumber numberWithInt:p_mh], @"p_mh",
|
||||
[NSNumber numberWithBool:mmta], @"p_mmta",
|
||||
[NSNumber numberWithInt:numTabs], @"numTabs",
|
||||
[NSNumber numberWithInt:fuoptions_flags], @"fullScreenOptions",
|
||||
nil];
|
||||
|
||||
// Put the state before all other messages.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
@class MMVimView;
|
||||
|
||||
@interface MMFullscreenWindow : NSWindow {
|
||||
@interface MMFullScreenWindow : NSWindow {
|
||||
NSWindow *target;
|
||||
MMVimView *view;
|
||||
NSPoint oldPosition;
|
||||
@@ -22,7 +22,7 @@
|
||||
int options;
|
||||
int state;
|
||||
|
||||
// These are only valid in fullscreen mode and store pre-fu vim size
|
||||
// These are only valid in full-screen mode and store pre-fu vim size
|
||||
int nonFuRows, nonFuColumns;
|
||||
|
||||
// These store the size vim had right after entering fu mode
|
||||
@@ -32,14 +32,15 @@
|
||||
int startFuFlags;
|
||||
}
|
||||
|
||||
- (MMFullscreenWindow *)initWithWindow:(NSWindow *)t view:(MMVimView *)v
|
||||
- (MMFullScreenWindow *)initWithWindow:(NSWindow *)t view:(MMVimView *)v
|
||||
backgroundColor:(NSColor *)back;
|
||||
- (void)setOptions:(int)opt;
|
||||
- (void)enterFullscreen;
|
||||
- (void)leaveFullscreen;
|
||||
- (void)enterFullScreen;
|
||||
- (void)leaveFullScreen;
|
||||
- (void)centerView;
|
||||
|
||||
- (BOOL)canBecomeKeyWindow;
|
||||
- (BOOL)canBecomeMainWindow;
|
||||
|
||||
- (void)applicationDidChangeScreenParameters:(NSNotification *)notification;
|
||||
@end
|
||||
@@ -8,7 +8,7 @@
|
||||
* See README.txt for an overview of the Vim source code.
|
||||
*/
|
||||
/*
|
||||
* MMFullscreenWindow
|
||||
* MMFullScreenWindow
|
||||
*
|
||||
* A window without any decorations which covers an entire screen.
|
||||
*
|
||||
@@ -23,7 +23,7 @@
|
||||
* Author: Nico Weber
|
||||
*/
|
||||
|
||||
#import "MMFullscreenWindow.h"
|
||||
#import "MMFullScreenWindow.h"
|
||||
#import "MMTextView.h"
|
||||
#import "MMVimController.h"
|
||||
#import "MMVimView.h"
|
||||
@@ -45,18 +45,17 @@ enum {
|
||||
};
|
||||
|
||||
|
||||
@interface MMFullscreenWindow (Private)
|
||||
@interface MMFullScreenWindow (Private)
|
||||
- (BOOL)isOnPrimaryScreen;
|
||||
- (void)windowDidBecomeMain:(NSNotification *)notification;
|
||||
- (void)windowDidResignMain:(NSNotification *)notification;
|
||||
- (void)windowDidMove:(NSNotification *)notification;
|
||||
- (void)applicationDidChangeScreenParameters:(NSNotification *)notification;
|
||||
- (void)resizeVimView;
|
||||
@end
|
||||
|
||||
@implementation MMFullscreenWindow
|
||||
@implementation MMFullScreenWindow
|
||||
|
||||
- (MMFullscreenWindow *)initWithWindow:(NSWindow *)t view:(MMVimView *)v
|
||||
- (MMFullScreenWindow *)initWithWindow:(NSWindow *)t view:(MMVimView *)v
|
||||
backgroundColor:(NSColor *)back
|
||||
{
|
||||
NSScreen* screen = [t screen];
|
||||
@@ -103,11 +102,6 @@ enum {
|
||||
name:NSWindowDidMoveNotification
|
||||
object:self];
|
||||
|
||||
[nc addObserver:self
|
||||
selector:@selector(applicationDidChangeScreenParameters:)
|
||||
name:NSApplicationDidChangeScreenParametersNotification
|
||||
object:NSApp];
|
||||
|
||||
// NOTE: Vim needs to process mouse moved events, so enable them here.
|
||||
[self setAcceptsMouseMovedEvents:YES];
|
||||
|
||||
@@ -131,9 +125,9 @@ enum {
|
||||
options = opt;
|
||||
}
|
||||
|
||||
- (void)enterFullscreen
|
||||
- (void)enterFullScreen
|
||||
{
|
||||
ASLogDebug(@"Enter full screen now");
|
||||
ASLogDebug(@"Enter full-screen now");
|
||||
|
||||
// Hide Dock and menu bar now to avoid the hide animation from playing
|
||||
// after the fade to black (see also windowDidBecomeMain:).
|
||||
@@ -186,18 +180,18 @@ enum {
|
||||
// focus gained message
|
||||
[self setDelegate:delegate];
|
||||
|
||||
// Store view dimension used before entering full screen, then resize the
|
||||
// Store view dimension used before entering full-screen, then resize the
|
||||
// view to match 'fuopt'.
|
||||
[[view textView] getMaxRows:&nonFuRows columns:&nonFuColumns];
|
||||
[self resizeVimView];
|
||||
|
||||
// Store options used when entering full screen so that we can restore
|
||||
// dimensions when exiting full screen.
|
||||
// Store options used when entering full-screen so that we can restore
|
||||
// dimensions when exiting full-screen.
|
||||
startFuFlags = options;
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
|
||||
// HACK! Put window on all Spaces to avoid Spaces (available on OS X 10.5
|
||||
// and later) from moving the full screen window to a separate Space from
|
||||
// and later) from moving the full-screen window to a separate Space from
|
||||
// the one the decorated window is occupying. The collection behavior is
|
||||
// restored further down.
|
||||
NSWindowCollectionBehavior wcb = [self collectionBehavior];
|
||||
@@ -223,7 +217,7 @@ enum {
|
||||
state = InFullScreen;
|
||||
}
|
||||
|
||||
- (void)leaveFullscreen
|
||||
- (void)leaveFullScreen
|
||||
{
|
||||
// fade to black
|
||||
Boolean didBlend = NO;
|
||||
@@ -272,10 +266,10 @@ enum {
|
||||
id delegate = [self delegate];
|
||||
[self setDelegate:nil];
|
||||
|
||||
// move text view back to original window, hide fullscreen window,
|
||||
// move text view back to original window, hide fullScreen window,
|
||||
// show original window
|
||||
// do this _after_ resetting delegate and window controller, so the
|
||||
// window controller doesn't get a focus lost message from the fullscreen
|
||||
// window controller doesn't get a focus lost message from the fullScreen
|
||||
// window.
|
||||
[view removeFromSuperviewWithoutNeedingDisplay];
|
||||
[[target contentView] addSubview:view];
|
||||
@@ -290,15 +284,30 @@ enum {
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
|
||||
// HACK! Put decorated window on all Spaces (available on OS X 10.5 and
|
||||
// later) so that the decorated window stays on the same Space as the full
|
||||
// screen window (they may occupy different Spaces e.g. if the full screen
|
||||
// screen window (they may occupy different Spaces e.g. if the full-screen
|
||||
// window was dragged to another Space). The collection behavior is
|
||||
// restored further down.
|
||||
NSWindowCollectionBehavior wcb = [target collectionBehavior];
|
||||
[target setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces];
|
||||
#endif
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
|
||||
// HACK! On Mac OS X 10.7 windows animate when makeKeyAndOrderFront: is
|
||||
// called. This is distracting here, so disable the animation and restore
|
||||
// animation behavior after calling makeKeyAndOrderFront:.
|
||||
NSWindowAnimationBehavior a = NSWindowAnimationBehaviorNone;
|
||||
if ([target respondsToSelector:@selector(animationBehavior)]) {
|
||||
a = [target animationBehavior];
|
||||
[target setAnimationBehavior:NSWindowAnimationBehaviorNone];
|
||||
}
|
||||
#endif
|
||||
|
||||
[target makeKeyAndOrderFront:self];
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
|
||||
// HACK! Restore animation behavior.
|
||||
if (NSWindowAnimationBehaviorNone != a)
|
||||
[target setAnimationBehavior:a];
|
||||
#endif
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
|
||||
// Restore collection behavior (see hack above).
|
||||
[target setCollectionBehavior:wcb];
|
||||
@@ -318,7 +327,7 @@ enum {
|
||||
[self autorelease]; // Balance the above retain
|
||||
|
||||
state = LeftFullScreen;
|
||||
ASLogDebug(@"Left full screen");
|
||||
ASLogDebug(@"Left full-screen");
|
||||
}
|
||||
|
||||
// Title-less windows normally don't receive key presses, override this
|
||||
@@ -328,12 +337,40 @@ enum {
|
||||
}
|
||||
|
||||
// Title-less windows normally can't become main which means that another
|
||||
// non-fullscreen window will have the "active" titlebar in expose. Bad, fix it.
|
||||
// non-full-screen window will have the "active" titlebar in expose. Bad, fix
|
||||
// it.
|
||||
- (BOOL)canBecomeMainWindow
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)applicationDidChangeScreenParameters:(NSNotification *)notification
|
||||
{
|
||||
if (state != InFullScreen)
|
||||
return;
|
||||
|
||||
// This notification is sent when screen resolution may have changed (e.g.
|
||||
// due to a monitor being unplugged or the resolution being changed
|
||||
// manually) but it also seems to get called when the Dock is
|
||||
// hidden/displayed.
|
||||
ASLogDebug(@"Screen unplugged / resolution changed");
|
||||
|
||||
NSScreen *screen = [target screen];
|
||||
if (!screen) {
|
||||
// Paranoia: if window we originally used for full-screen is gone, try
|
||||
// screen window is on now, and failing that (not sure this can happen)
|
||||
// use main screen.
|
||||
screen = [self screen];
|
||||
if (!screen)
|
||||
screen = [NSScreen mainScreen];
|
||||
}
|
||||
|
||||
// Ensure the full-screen window is still covering the entire screen and
|
||||
// then resize view according to 'fuopt'.
|
||||
[self setFrame:[screen frame] display:NO];
|
||||
[self resizeVimView];
|
||||
}
|
||||
|
||||
- (void)centerView
|
||||
{
|
||||
NSRect outer = [self frame], inner = [view frame];
|
||||
@@ -370,12 +407,12 @@ enum {
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end // MMFullscreenWindow
|
||||
@end // MMFullScreenWindow
|
||||
|
||||
|
||||
|
||||
|
||||
@implementation MMFullscreenWindow (Private)
|
||||
@implementation MMFullScreenWindow (Private)
|
||||
|
||||
- (BOOL)isOnPrimaryScreen
|
||||
{
|
||||
@@ -393,13 +430,13 @@ enum {
|
||||
{
|
||||
// Hide menu and dock, both appear on demand.
|
||||
//
|
||||
// Another way to deal with several fullscreen windows would be to hide/
|
||||
// reveal the dock only when the first fullscreen window is created and
|
||||
// Another way to deal with several full-screen windows would be to hide/
|
||||
// reveal the dock only when the first full-screen window is created and
|
||||
// show it again after the last one has been closed, but toggling on each
|
||||
// focus gain/loss works better with Spaces. The downside is that the
|
||||
// menu bar flashes shortly when switching between two fullscreen windows.
|
||||
// menu bar flashes shortly when switching between two full-screen windows.
|
||||
|
||||
// XXX: If you have a fullscreen window on a secondary monitor and unplug
|
||||
// XXX: If you have a full-screen window on a secondary monitor and unplug
|
||||
// the monitor, this will probably not work right.
|
||||
|
||||
if ([self isOnPrimaryScreen]) {
|
||||
@@ -421,41 +458,14 @@ enum {
|
||||
return;
|
||||
|
||||
// Window may move as a result of being dragged between Spaces.
|
||||
ASLogDebug(@"Full screen window moved, ensuring it covers the screen...");
|
||||
ASLogDebug(@"Full-screen window moved, ensuring it covers the screen...");
|
||||
|
||||
// Ensure the full screen window is still covering the entire screen and
|
||||
// Ensure the full-screen window is still covering the entire screen and
|
||||
// then resize view according to 'fuopt'.
|
||||
[self setFrame:[[self screen] frame] display:NO];
|
||||
[self resizeVimView];
|
||||
}
|
||||
|
||||
- (void)applicationDidChangeScreenParameters:(NSNotification *)notification
|
||||
{
|
||||
if (state != InFullScreen)
|
||||
return;
|
||||
|
||||
// This notification is sent when screen resolution may have changed (e.g.
|
||||
// due to a monitor being unplugged or the resolution being changed
|
||||
// manually) but it also seems to get called when the Dock is
|
||||
// hidden/displayed.
|
||||
ASLogDebug(@"Screen unplugged / resolution changed");
|
||||
|
||||
NSScreen *screen = [target screen];
|
||||
if (!screen) {
|
||||
// Paranoia: if window we originally used for full screen is gone, try
|
||||
// screen window is on now, and failing that (not sure this can happen)
|
||||
// use main screen.
|
||||
screen = [self screen];
|
||||
if (!screen)
|
||||
screen = [NSScreen mainScreen];
|
||||
}
|
||||
|
||||
// Ensure the full screen window is still covering the entire screen and
|
||||
// then resize view according to 'fuopt'.
|
||||
[self setFrame:[screen frame] display:NO];
|
||||
[self resizeVimView];
|
||||
}
|
||||
|
||||
- (void)resizeVimView
|
||||
{
|
||||
// Resize vim view according to options
|
||||
@@ -503,9 +513,9 @@ enum {
|
||||
}
|
||||
|
||||
// The new view dimensions are stored and then consulted when attempting to
|
||||
// restore the windowed view dimensions when leaving full screen.
|
||||
// NOTE: Store them here and not only in enterFullscreen, otherwise the
|
||||
// windowed view dimensions will not be restored if the full screen was on
|
||||
// restore the windowed view dimensions when leaving full-screen.
|
||||
// NOTE: Store them here and not only in enterFullScreen, otherwise the
|
||||
// windowed view dimensions will not be restored if the full-screen was on
|
||||
// a screen that later was unplugged.
|
||||
startFuRows = fuRows;
|
||||
startFuColumns = fuColumns;
|
||||
@@ -513,4 +523,4 @@ enum {
|
||||
[self centerView];
|
||||
}
|
||||
|
||||
@end // MMFullscreenWindow (Private)
|
||||
@end // MMFullScreenWindow (Private)
|
||||
@@ -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;
|
||||
|
||||
@@ -809,12 +809,12 @@ KeyboardInputSourcesEqual(TISInputSourceRef a, TISInputSourceRef b)
|
||||
#endif
|
||||
|
||||
imControl = enable;
|
||||
ASLogInfo(@"IM control %sabled", enable ? "en" : "dis");
|
||||
ASLogDebug(@"IM control %sabled", enable ? "en" : "dis");
|
||||
}
|
||||
|
||||
- (void)activateIm:(BOOL)enable
|
||||
{
|
||||
ASLogInfo(@"Activate IM=%d", enable);
|
||||
ASLogDebug(@"Activate IM=%d", enable);
|
||||
|
||||
// HACK: If there is marked text when switching IM it will be inserted as
|
||||
// normal text. To avoid this we abandon the marked text before switching.
|
||||
|
||||
@@ -27,8 +27,11 @@
|
||||
id backendProxy;
|
||||
NSMenu *mainMenu;
|
||||
NSMutableArray *popupMenuItems;
|
||||
|
||||
// TODO: Move all toolbar code to window controller?
|
||||
NSToolbar *toolbar;
|
||||
NSMutableDictionary *toolbarItemDict;
|
||||
|
||||
int pid;
|
||||
NSString *serverName;
|
||||
NSDictionary *vimState;
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#import "MMWindowController.h"
|
||||
#import "Miscellaneous.h"
|
||||
#import "MMCoreTextView.h"
|
||||
#import "MMWindow.h"
|
||||
|
||||
|
||||
static NSString *MMDefaultToolbarImageName = @"Attention";
|
||||
@@ -765,15 +766,15 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
encoding:NSUTF8StringEncoding];
|
||||
[self setServerName:name];
|
||||
[name release];
|
||||
} else if (EnterFullscreenMsgID == msgid) {
|
||||
} else if (EnterFullScreenMsgID == msgid) {
|
||||
const void *bytes = [data bytes];
|
||||
int fuoptions = *((int*)bytes); bytes += sizeof(int);
|
||||
int bg = *((int*)bytes);
|
||||
NSColor *back = [NSColor colorWithArgbInt:bg];
|
||||
|
||||
[windowController enterFullscreen:fuoptions backgroundColor:back];
|
||||
} else if (LeaveFullscreenMsgID == msgid) {
|
||||
[windowController leaveFullscreen];
|
||||
[windowController enterFullScreen:fuoptions backgroundColor:back];
|
||||
} else if (LeaveFullScreenMsgID == msgid) {
|
||||
[windowController leaveFullScreen];
|
||||
} else if (SetBuffersModifiedMsgID == msgid) {
|
||||
const void *bytes = [data bytes];
|
||||
// state < 0 <-> some buffer modified
|
||||
@@ -805,11 +806,11 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
}
|
||||
} else if (CloseWindowMsgID == msgid) {
|
||||
[self scheduleClose];
|
||||
} else if (SetFullscreenColorMsgID == msgid) {
|
||||
} else if (SetFullScreenColorMsgID == msgid) {
|
||||
const int *bg = (const int*)[data bytes];
|
||||
NSColor *color = [NSColor colorWithRgbInt:*bg];
|
||||
|
||||
[windowController setFullscreenBackgroundColor:color];
|
||||
[windowController setFullScreenBackgroundColor:color];
|
||||
} else if (ShowFindReplaceDialogMsgID == msgid) {
|
||||
NSDictionary *dict = [NSDictionary dictionaryWithData:data];
|
||||
if (dict) {
|
||||
@@ -886,7 +887,12 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
- (void)savePanelDidEnd:(NSSavePanel *)panel code:(int)code
|
||||
context:(void *)context
|
||||
{
|
||||
NSString *path = (code == NSOKButton) ? [panel filename] : nil;
|
||||
NSString *path = nil;
|
||||
if (code == NSOKButton) {
|
||||
NSURL *url = [panel URL];
|
||||
if ([url isFileURL])
|
||||
path = [url path];
|
||||
}
|
||||
ASLogDebug(@"Open/save panel path=%@", path);
|
||||
|
||||
// NOTE! This causes the sheet animation to run its course BEFORE the rest
|
||||
@@ -1378,6 +1384,12 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
dir = [vimState objectForKey:@"pwd"];
|
||||
}
|
||||
|
||||
#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6)
|
||||
// 10.6+ APIs uses URLs instead of paths
|
||||
dir = [dir stringByExpandingTildeInPath];
|
||||
NSURL *dirURL = dir ? [NSURL fileURLWithPath:dir isDirectory:YES] : nil;
|
||||
#endif
|
||||
|
||||
if (saving) {
|
||||
NSSavePanel *panel = [NSSavePanel savePanel];
|
||||
|
||||
@@ -1387,22 +1399,47 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
[panel setDelegate:self];
|
||||
if ([panel isExpanded])
|
||||
[panel setAccessoryView:showHiddenFilesView()];
|
||||
#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6)
|
||||
// NOTE: -[NSSavePanel beginSheetForDirectory::::::] is deprecated on
|
||||
// 10.6 but -[NSSavePanel setDirectoryURL:] requires 10.6 so jump
|
||||
// through the following hoops on 10.6+.
|
||||
if (dirURL)
|
||||
[panel setDirectoryURL:dirURL];
|
||||
|
||||
[panel beginSheetModalForWindow:[windowController window]
|
||||
completionHandler:^(NSInteger result) {
|
||||
[self savePanelDidEnd:panel code:result context:nil];
|
||||
}];
|
||||
#else
|
||||
[panel beginSheetForDirectory:dir file:nil
|
||||
modalForWindow:[windowController window]
|
||||
modalDelegate:self
|
||||
didEndSelector:@selector(savePanelDidEnd:code:context:)
|
||||
contextInfo:NULL];
|
||||
#endif
|
||||
} else {
|
||||
NSOpenPanel *panel = [NSOpenPanel openPanel];
|
||||
[panel setAllowsMultipleSelection:NO];
|
||||
[panel setAccessoryView:showHiddenFilesView()];
|
||||
|
||||
#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6)
|
||||
// NOTE: -[NSOpenPanel beginSheetForDirectory:::::::] is deprecated on
|
||||
// 10.6 but -[NSOpenPanel setDirectoryURL:] requires 10.6 so jump
|
||||
// through the following hoops on 10.6+.
|
||||
if (dirURL)
|
||||
[panel setDirectoryURL:dirURL];
|
||||
|
||||
[panel beginSheetModalForWindow:[windowController window]
|
||||
completionHandler:^(NSInteger result) {
|
||||
[self savePanelDidEnd:panel code:result context:nil];
|
||||
}];
|
||||
#else
|
||||
[panel beginSheetForDirectory:dir file:nil types:nil
|
||||
modalForWindow:[windowController window]
|
||||
modalDelegate:self
|
||||
didEndSelector:@selector(savePanelDidEnd:code:context:)
|
||||
contextInfo:NULL];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1593,8 +1630,8 @@ isUnsafeMessage(int msgid)
|
||||
ExecuteActionMsgID, // Impossible to predict
|
||||
ShowPopupMenuMsgID, // Enters modal loop
|
||||
ActivateMsgID, // ?
|
||||
EnterFullscreenMsgID, // Modifies delegate of window controller
|
||||
LeaveFullscreenMsgID, // Modifies delegate of window controller
|
||||
EnterFullScreenMsgID, // Modifies delegate of window controller
|
||||
LeaveFullScreenMsgID, // Modifies delegate of window controller
|
||||
CloseWindowMsgID, // See note below
|
||||
BrowseForFileMsgID, // Enters modal loop
|
||||
ShowDialogMsgID, // Enters modal loop
|
||||
|
||||
@@ -29,4 +29,7 @@
|
||||
- (void)setContentMaxSize:(NSSize)size;
|
||||
- (void)setContentSize:(NSSize)size;
|
||||
|
||||
- (IBAction)toggleFullScreen:(id)sender;
|
||||
- (IBAction)realToggleFullScreen:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -152,4 +152,27 @@
|
||||
[[self delegate] performSelector:@selector(zoom:) withObject:sender];
|
||||
}
|
||||
|
||||
- (IBAction)toggleFullScreen:(id)sender
|
||||
{
|
||||
// HACK! This is an NSWindow method used to enter full-screen on OS X 10.7.
|
||||
// We override it so that we can interrupt and pass this on to Vim first.
|
||||
// An alternative hack would be to reroute the action message sent by the
|
||||
// full-screen button in the top right corner of a window, but there could
|
||||
// be other places where this action message is sent from.
|
||||
// To get to the original method (and enter Lion full-screen) we need to
|
||||
// call realToggleFullScreen: defined below.
|
||||
|
||||
// (Use performSelector:: to avoid compilation warning.)
|
||||
[[self delegate] performSelector:@selector(invFullScreen:) withObject:nil];
|
||||
}
|
||||
|
||||
- (IBAction)realToggleFullScreen:(id)sender
|
||||
{
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
|
||||
// HACK! See toggleFullScreen: comment above.
|
||||
if ([NSWindow instancesRespondToSelector:@selector(toggleFullScreen:)])
|
||||
[super toggleFullScreen:sender];
|
||||
#endif
|
||||
}
|
||||
|
||||
@end // MMWindow
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
|
||||
@class MMWindow;
|
||||
@class MMFullscreenWindow;
|
||||
@class MMFullScreenWindow;
|
||||
@class MMVimController;
|
||||
@class MMVimView;
|
||||
|
||||
@@ -29,17 +29,22 @@
|
||||
BOOL windowPresented;
|
||||
BOOL shouldResizeVimView;
|
||||
BOOL shouldRestoreUserTopLeft;
|
||||
BOOL shouldMaximizeWindow;
|
||||
int updateToolbarFlag;
|
||||
BOOL keepOnScreen;
|
||||
BOOL fullscreenEnabled;
|
||||
NSString *windowAutosaveKey;
|
||||
MMFullscreenWindow *fullscreenWindow;
|
||||
BOOL fullScreenEnabled;
|
||||
MMFullScreenWindow *fullScreenWindow;
|
||||
int fullScreenOptions;
|
||||
BOOL delayEnterFullScreen;
|
||||
NSRect preFullScreenFrame;
|
||||
MMWindow *decoratedWindow;
|
||||
NSString *lastSetTitle;
|
||||
int userRows;
|
||||
int userCols;
|
||||
NSPoint userTopLeft;
|
||||
NSPoint defaultTopLeft;
|
||||
NSToolbar *toolbar;
|
||||
}
|
||||
|
||||
- (id)initWithVimController:(MMVimController *)controller;
|
||||
@@ -75,9 +80,10 @@
|
||||
- (void)liveResizeWillStart;
|
||||
- (void)liveResizeDidEnd;
|
||||
|
||||
- (void)enterFullscreen:(int)fuoptions backgroundColor:(NSColor *)back;
|
||||
- (void)leaveFullscreen;
|
||||
- (void)setFullscreenBackgroundColor:(NSColor *)back;
|
||||
- (void)enterFullScreen:(int)fuoptions backgroundColor:(NSColor *)back;
|
||||
- (void)leaveFullScreen;
|
||||
- (void)setFullScreenBackgroundColor:(NSColor *)back;
|
||||
- (void)invFullScreen:(id)sender;
|
||||
|
||||
- (void)setBufferModified:(BOOL)mod;
|
||||
- (void)setTopLeft:(NSPoint)pt;
|
||||
|
||||
+474
-128
@@ -44,7 +44,7 @@
|
||||
* YES & YES => NO
|
||||
*
|
||||
*
|
||||
* Resizing in full-screen mode:
|
||||
* Resizing in custom full-screen mode:
|
||||
*
|
||||
* The window never resizes since it fills the screen, however the vim view may
|
||||
* change size, e.g. when the user types ":set lines=60", or when a scrollbar
|
||||
@@ -52,13 +52,19 @@
|
||||
*
|
||||
* It is ensured that the vim view never becomes larger than the screen size
|
||||
* and that it always stays in the center of the screen.
|
||||
*
|
||||
*
|
||||
* Resizing in native full-screen mode (Mac OS X 10.7+):
|
||||
*
|
||||
* The window is always kept centered and resizing works more or less the same
|
||||
* way as in windowed mode.
|
||||
*
|
||||
*/
|
||||
|
||||
#import "MMAppController.h"
|
||||
#import "MMAtsuiTextView.h"
|
||||
#import "MMFindReplaceController.h"
|
||||
#import "MMFullscreenWindow.h"
|
||||
#import "MMFullScreenWindow.h"
|
||||
#import "MMTextView.h"
|
||||
#import "MMTypesetter.h"
|
||||
#import "MMVimController.h"
|
||||
@@ -69,6 +75,12 @@
|
||||
#import <PSMTabBarControl/PSMTabBarControl.h>
|
||||
|
||||
|
||||
// These have to be the same as in option.h
|
||||
#define FUOPT_MAXVERT 0x001
|
||||
#define FUOPT_MAXHORZ 0x002
|
||||
#define FUOPT_BGCOLOR_HLGROUP 0x004
|
||||
|
||||
|
||||
|
||||
@interface MMWindowController (Private)
|
||||
- (NSSize)contentSize;
|
||||
@@ -79,9 +91,13 @@
|
||||
- (void)updateResizeConstraints;
|
||||
- (NSTabViewItem *)addNewTabViewItem;
|
||||
- (BOOL)askBackendForStarRegister:(NSPasteboard *)pb;
|
||||
- (void)updateTablineSeparator;
|
||||
- (void)hideTablineSeparator:(BOOL)hide;
|
||||
- (void)doFindNext:(BOOL)next;
|
||||
- (void)updateToolbar;
|
||||
- (BOOL)maximizeWindow:(int)options;
|
||||
- (void)applicationDidChangeScreenParameters:(NSNotification *)notification;
|
||||
- (void)enterNativeFullScreen;
|
||||
@end
|
||||
|
||||
|
||||
@@ -181,6 +197,24 @@
|
||||
if ([win respondsToSelector:@selector(_setContentHasShadow:)])
|
||||
[win _setContentHasShadow:NO];
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
|
||||
// Building on Mac OS X 10.7 or greater.
|
||||
|
||||
// This puts the full-screen button in the top right of each window
|
||||
if ([win respondsToSelector:@selector(setCollectionBehavior:)])
|
||||
[win setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
|
||||
|
||||
// This makes windows animate when opened
|
||||
if ([win respondsToSelector:@selector(setAnimationBehavior:)])
|
||||
[win setAnimationBehavior:NSWindowAnimationBehaviorDocumentWindow];
|
||||
#endif
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(applicationDidChangeScreenParameters:)
|
||||
name:NSApplicationDidChangeScreenParametersNotification
|
||||
object:NSApp];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -191,6 +225,7 @@
|
||||
[decoratedWindow release]; decoratedWindow = nil;
|
||||
[windowAutosaveKey release]; windowAutosaveKey = nil;
|
||||
[vimView release]; vimView = nil;
|
||||
[toolbar release]; toolbar = nil;
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
@@ -226,16 +261,20 @@
|
||||
|
||||
- (void)cleanup
|
||||
{
|
||||
ASLogDebug(@"%@ %s", [self className], _cmd);
|
||||
ASLogDebug(@"");
|
||||
|
||||
if (fullscreenEnabled) {
|
||||
// If we are closed while still in fullscreen, end fullscreen mode,
|
||||
// NOTE: Must set this before possibly leaving full-screen.
|
||||
setupDone = NO;
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
|
||||
if (fullScreenEnabled) {
|
||||
// If we are closed while still in full-screen, end full-screen mode,
|
||||
// release ourselves (because this won't happen in MMWindowController)
|
||||
// and perform close operation on the original window.
|
||||
[self leaveFullscreen];
|
||||
[self leaveFullScreen];
|
||||
}
|
||||
|
||||
setupDone = NO;
|
||||
vimController = nil;
|
||||
|
||||
[vimView removeFromSuperviewWithoutNeedingDisplay];
|
||||
@@ -277,17 +316,32 @@
|
||||
[self updateResizeConstraints];
|
||||
[self resizeWindowToFitContentSize:[vimView desiredSize]
|
||||
keepOnScreen:YES];
|
||||
[[self window] makeKeyAndOrderFront:self];
|
||||
|
||||
|
||||
[decoratedWindow makeKeyAndOrderFront:self];
|
||||
|
||||
// HACK! Calling makeKeyAndOrderFront: may cause Cocoa to force the window
|
||||
// into native full-screen mode (this happens e.g. if a new window is
|
||||
// opened when MacVim is already in full-screen). In this case we don't
|
||||
// want the decorated window to pop up before the animation into
|
||||
// full-screen, so set its alpha to 0.
|
||||
if (fullScreenEnabled && !fullScreenWindow)
|
||||
[decoratedWindow setAlphaValue:0];
|
||||
|
||||
// Flag that the window is now placed on screen. From now on it is OK for
|
||||
// code to depend on the screen state. (Such as constraining views etc.)
|
||||
windowPresented = YES;
|
||||
|
||||
if (fullscreenWindow) {
|
||||
// Delayed entering of full screen happens here (a ":set fu" in a
|
||||
if (fullScreenWindow) {
|
||||
// Delayed entering of full-screen happens here (a ":set fu" in a
|
||||
// GUIEnter auto command could cause this).
|
||||
[fullscreenWindow enterFullscreen];
|
||||
fullscreenEnabled = YES;
|
||||
[fullScreenWindow enterFullScreen];
|
||||
fullScreenEnabled = YES;
|
||||
} else if (delayEnterFullScreen) {
|
||||
// Set alpha to zero so that the decorated window doesn't pop up
|
||||
// before we enter full-screen.
|
||||
[decoratedWindow setAlphaValue:0];
|
||||
[self enterNativeFullScreen];
|
||||
}
|
||||
|
||||
return YES;
|
||||
@@ -326,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
|
||||
@@ -352,12 +429,12 @@
|
||||
return;
|
||||
|
||||
[decoratedWindow setTitle:title];
|
||||
if (fullscreenEnabled) {
|
||||
[fullscreenWindow setTitle:title];
|
||||
if (fullScreenWindow) {
|
||||
[fullScreenWindow setTitle:title];
|
||||
|
||||
// NOTE: Cocoa does not update the "Window" menu for borderless windows
|
||||
// so we have to do it manually.
|
||||
[NSApp changeWindowsItem:fullscreenWindow title:title filename:NO];
|
||||
[NSApp changeWindowsItem:fullScreenWindow title:title filename:NO];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,12 +449,17 @@
|
||||
filename = @"";
|
||||
|
||||
[decoratedWindow setRepresentedFilename:filename];
|
||||
[fullscreenWindow setRepresentedFilename:filename];
|
||||
[fullScreenWindow setRepresentedFilename:filename];
|
||||
}
|
||||
|
||||
- (void)setToolbar:(NSToolbar *)toolbar
|
||||
- (void)setToolbar:(NSToolbar *)theToolbar
|
||||
{
|
||||
// The full-screen window has no toolbar.
|
||||
if (theToolbar != toolbar) {
|
||||
[toolbar release];
|
||||
toolbar = [theToolbar retain];
|
||||
}
|
||||
|
||||
// NOTE: Toolbar must be set here or it won't work to show it later.
|
||||
[decoratedWindow setToolbar:toolbar];
|
||||
|
||||
// HACK! Redirect the pill button so that we can ask Vim to hide the
|
||||
@@ -399,6 +481,7 @@
|
||||
{
|
||||
BOOL scrollbarHidden = [vimView destroyScrollbarWithIdentifier:ident];
|
||||
shouldResizeVimView = shouldResizeVimView || scrollbarHidden;
|
||||
shouldMaximizeWindow = shouldMaximizeWindow || scrollbarHidden;
|
||||
|
||||
return scrollbarHidden;
|
||||
}
|
||||
@@ -408,6 +491,7 @@
|
||||
BOOL scrollbarToggled = [vimView showScrollbarWithIdentifier:ident
|
||||
state:visible];
|
||||
shouldResizeVimView = shouldResizeVimView || scrollbarToggled;
|
||||
shouldMaximizeWindow = shouldMaximizeWindow || scrollbarToggled;
|
||||
|
||||
return scrollbarToggled;
|
||||
}
|
||||
@@ -429,8 +513,8 @@
|
||||
// flag on the window here (should be faster if the window is opaque).
|
||||
BOOL isOpaque = [back alphaComponent] == 1.0f;
|
||||
[decoratedWindow setOpaque:isOpaque];
|
||||
if (fullscreenEnabled)
|
||||
[fullscreenWindow setOpaque:isOpaque];
|
||||
if (fullScreenWindow)
|
||||
[fullScreenWindow setOpaque:isOpaque];
|
||||
|
||||
[vimView setDefaultColorsBackground:back foreground:fore];
|
||||
}
|
||||
@@ -440,6 +524,7 @@
|
||||
[[NSFontManager sharedFontManager] setSelectedFont:font isMultiple:NO];
|
||||
[[vimView textView] setFont:font];
|
||||
[self updateResizeConstraints];
|
||||
shouldMaximizeWindow = YES;
|
||||
}
|
||||
|
||||
- (void)setWideFont:(NSFont *)font
|
||||
@@ -469,38 +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 (fullscreenEnabled) {
|
||||
// NOTE! Don't mark the fullscreen 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 (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 fullscreen 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];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,30 +601,12 @@
|
||||
- (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) {
|
||||
NSToolbar *toolbar = [decoratedWindow toolbar];
|
||||
if (([decoratedWindow styleMask] & NSTexturedBackgroundWindowMask)
|
||||
== 0) {
|
||||
[self hideTablineSeparator:![toolbar isVisible]];
|
||||
} 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
|
||||
{
|
||||
NSToolbar *toolbar = [decoratedWindow toolbar];
|
||||
if (!toolbar) return;
|
||||
|
||||
[toolbar setSizeMode:size];
|
||||
@@ -561,7 +633,7 @@
|
||||
{
|
||||
if (vimView && [vimView textView]) {
|
||||
[[vimView textView] setLinespace:(float)linespace];
|
||||
shouldResizeVimView = YES;
|
||||
shouldMaximizeWindow = shouldResizeVimView = YES;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -633,58 +705,95 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)enterFullscreen:(int)fuoptions backgroundColor:(NSColor *)back
|
||||
- (void)enterFullScreen:(int)fuoptions backgroundColor:(NSColor *)back
|
||||
{
|
||||
if (fullscreenEnabled) return;
|
||||
if (fullScreenEnabled) return;
|
||||
|
||||
// fullscreenWindow could be nil here if this is called multiple times
|
||||
// during startup.
|
||||
[fullscreenWindow release];
|
||||
BOOL useNativeFullScreen = [[NSUserDefaults standardUserDefaults]
|
||||
boolForKey:MMNativeFullScreenKey];
|
||||
// Make sure user is not trying to use native full-screen on systems that
|
||||
// do not support it.
|
||||
if (![NSWindow instancesRespondToSelector:@selector(toggleFullScreen:)])
|
||||
useNativeFullScreen = NO;
|
||||
|
||||
fullscreenWindow = [[MMFullscreenWindow alloc]
|
||||
initWithWindow:decoratedWindow view:vimView backgroundColor:back];
|
||||
[fullscreenWindow setOptions:fuoptions];
|
||||
[fullscreenWindow setRepresentedFilename:
|
||||
[decoratedWindow representedFilename]];
|
||||
|
||||
// NOTE: Do not enter full screen until the window has been presented since
|
||||
// we don't actually know which screen to use before then.
|
||||
if (windowPresented) {
|
||||
[fullscreenWindow enterFullscreen];
|
||||
fullscreenEnabled = YES;
|
||||
|
||||
// The resize handle disappears so the vim view needs to update the
|
||||
// scrollbars.
|
||||
shouldResizeVimView = YES;
|
||||
fullScreenOptions = fuoptions;
|
||||
if (useNativeFullScreen) {
|
||||
// Enter native full-screen mode. Only supported on Mac OS X 10.7+.
|
||||
if (windowPresented) {
|
||||
[self enterNativeFullScreen];
|
||||
} else {
|
||||
delayEnterFullScreen = YES;
|
||||
}
|
||||
} else {
|
||||
ASLogDebug(@"Delay enter full screen");
|
||||
// Enter custom full-screen mode. Always supported.
|
||||
ASLogInfo(@"Enter custom full-screen");
|
||||
|
||||
// fullScreenWindow could be non-nil here if this is called multiple
|
||||
// times during startup.
|
||||
[fullScreenWindow release];
|
||||
|
||||
fullScreenWindow = [[MMFullScreenWindow alloc]
|
||||
initWithWindow:decoratedWindow view:vimView backgroundColor:back];
|
||||
[fullScreenWindow setOptions:fuoptions];
|
||||
[fullScreenWindow setRepresentedFilename:
|
||||
[decoratedWindow representedFilename]];
|
||||
|
||||
// NOTE: Do not enter full-screen until the window has been presented
|
||||
// since we don't actually know which screen to use before then. (The
|
||||
// custom full-screen can appear on any screen, as opposed to native
|
||||
// full-screen which always uses the main screen.)
|
||||
if (windowPresented) {
|
||||
[fullScreenWindow enterFullScreen];
|
||||
fullScreenEnabled = YES;
|
||||
|
||||
// The resize handle disappears so the vim view needs to update the
|
||||
// scrollbars.
|
||||
shouldResizeVimView = YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)leaveFullscreen
|
||||
- (void)leaveFullScreen
|
||||
{
|
||||
if (!fullscreenEnabled) return;
|
||||
if (!fullScreenEnabled) return;
|
||||
|
||||
fullscreenEnabled = NO;
|
||||
[fullscreenWindow leaveFullscreen];
|
||||
[fullscreenWindow release];
|
||||
fullscreenWindow = nil;
|
||||
ASLogInfo(@"Exit full-screen");
|
||||
|
||||
// The vim view may be too large to fit the screen, so update it.
|
||||
shouldResizeVimView = YES;
|
||||
fullScreenEnabled = NO;
|
||||
if (fullScreenWindow) {
|
||||
// Using custom full-screen
|
||||
[fullScreenWindow leaveFullScreen];
|
||||
[fullScreenWindow release];
|
||||
fullScreenWindow = nil;
|
||||
|
||||
// The vim view may be too large to fit the screen, so update it.
|
||||
shouldResizeVimView = YES;
|
||||
} else {
|
||||
// Using native full-screen
|
||||
// NOTE: fullScreenEnabled is used to detect if we enter full-screen
|
||||
// programatically and so must be set before calling
|
||||
// realToggleFullScreen:.
|
||||
NSParameterAssert(fullScreenEnabled == NO);
|
||||
[decoratedWindow realToggleFullScreen:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setFullscreenBackgroundColor:(NSColor *)back
|
||||
- (void)setFullScreenBackgroundColor:(NSColor *)back
|
||||
{
|
||||
if (fullscreenWindow)
|
||||
[fullscreenWindow setBackgroundColor:back];
|
||||
if (fullScreenWindow)
|
||||
[fullScreenWindow setBackgroundColor:back];
|
||||
}
|
||||
|
||||
- (void)invFullScreen:(id)sender
|
||||
{
|
||||
[vimController addVimInput:@"<C-\\><C-N>:set invfu<CR>"];
|
||||
}
|
||||
|
||||
- (void)setBufferModified:(BOOL)mod
|
||||
{
|
||||
// NOTE: We only set the document edited flag on the decorated window since
|
||||
// the full-screen window has no close button anyway. (It also saves us
|
||||
// from keeping track of the flag in two different places.)
|
||||
// the custom full-screen window has no close button anyway. (It also
|
||||
// saves us from keeping track of the flag in two different places.)
|
||||
[decoratedWindow setDocumentEdited:mod];
|
||||
}
|
||||
|
||||
@@ -855,7 +964,7 @@
|
||||
if (!setupDone)
|
||||
return;
|
||||
|
||||
if (fullscreenEnabled) {
|
||||
if (fullScreenEnabled) {
|
||||
// NOTE: The full-screen is not supposed to be able to be moved. If we
|
||||
// do get here while in full-screen something unexpected happened (e.g.
|
||||
// the full-screen window was on an external display that got
|
||||
@@ -884,7 +993,7 @@
|
||||
|
||||
- (void)windowDidResize:(id)sender
|
||||
{
|
||||
if (!setupDone || fullscreenEnabled) return;
|
||||
if (!setupDone || fullScreenEnabled) return;
|
||||
|
||||
// NOTE: Since we have no control over when the window may resize (Cocoa
|
||||
// may resize automatically) we simply set the view to fill the entire
|
||||
@@ -994,6 +1103,150 @@
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
|
||||
|
||||
// -- Full-screen delegate ---------------------------------------------------
|
||||
|
||||
- (NSApplicationPresentationOptions)window:(NSWindow *)window
|
||||
willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)opt
|
||||
{
|
||||
return opt | NSApplicationPresentationAutoHideToolbar;
|
||||
}
|
||||
|
||||
- (NSArray *)customWindowsToEnterFullScreenForWindow:(NSWindow *)window
|
||||
{
|
||||
return [NSArray arrayWithObject:decoratedWindow];
|
||||
}
|
||||
|
||||
- (void)window:(NSWindow *)window
|
||||
startCustomAnimationToEnterFullScreenWithDuration:(NSTimeInterval)duration
|
||||
{
|
||||
// Fade out window, remove title bar and maximize, then fade back in.
|
||||
// (There is a small delay before window is maximized but usually this is
|
||||
// not noticeable on a relatively modern Mac.)
|
||||
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
|
||||
[context setDuration:0.5*duration];
|
||||
[[window animator] setAlphaValue:0];
|
||||
} completionHandler:^{
|
||||
[window setStyleMask:([window styleMask] | NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Unified"];
|
||||
[self updateTablineSeparator];
|
||||
[self maximizeWindow:fullScreenOptions];
|
||||
|
||||
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
|
||||
[context setDuration:0.5*duration];
|
||||
[[window animator] setAlphaValue:1];
|
||||
} completionHandler:^{
|
||||
// Do nothing
|
||||
}];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)windowWillEnterFullScreen:(NSNotification *)notification
|
||||
{
|
||||
// Store window frame and use it when exiting full-screen.
|
||||
preFullScreenFrame = [decoratedWindow frame];
|
||||
|
||||
// ASSUMPTION: fullScreenEnabled always reflects the state of Vim's 'fu'.
|
||||
if (!fullScreenEnabled) {
|
||||
ASLogDebug(@"Full-screen out of sync, tell Vim to set 'fu'");
|
||||
// NOTE: If we get here it means that Cocoa has somehow entered
|
||||
// full-screen without us getting to set the 'fu' option first, so Vim
|
||||
// and the GUI are out of sync. The following code (eventually) gets
|
||||
// them back into sync. A problem is that the full-screen options have
|
||||
// not been set, so we have to cache that state and grab it here.
|
||||
fullScreenOptions = [[vimController objectForVimStateKey:
|
||||
@"fullScreenOptions"] intValue];
|
||||
fullScreenEnabled = YES;
|
||||
[self invFullScreen:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)windowDidFailToEnterFullScreen:(NSWindow *)window
|
||||
{
|
||||
// NOTE: This message can be called without
|
||||
// window:startCustomAnimationToEnterFullScreenWithDuration: ever having
|
||||
// been called so any state to store before entering full-screen must be
|
||||
// stored in windowWillEnterFullScreen: which always gets called.
|
||||
ASLogNotice(@"Failed to ENTER full-screen, restoring window frame...");
|
||||
|
||||
fullScreenEnabled = NO;
|
||||
[window setAlphaValue:1];
|
||||
[window setStyleMask:([window styleMask] & ~NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Metal"];
|
||||
[self updateTablineSeparator];
|
||||
[window setFrame:preFullScreenFrame display:YES];
|
||||
}
|
||||
|
||||
- (NSArray *)customWindowsToExitFullScreenForWindow:(NSWindow *)window
|
||||
{
|
||||
return [NSArray arrayWithObject:decoratedWindow];
|
||||
}
|
||||
|
||||
- (void)window:(NSWindow *)window
|
||||
startCustomAnimationToExitFullScreenWithDuration:(NSTimeInterval)duration
|
||||
{
|
||||
if (!setupDone) {
|
||||
// HACK! The window has closed but Cocoa still brings it back to life
|
||||
// and shows a grey box the size of the window unless we explicitly
|
||||
// hide it by setting its alpha to 0 here.
|
||||
[window setAlphaValue:0];
|
||||
return;
|
||||
}
|
||||
|
||||
// Fade out window, add back title bar and restore window frame, then fade
|
||||
// back in. (There is a small delay before window contents is drawn after
|
||||
// the window frame is set but usually this is not noticeable on a
|
||||
// relatively modern Mac.)
|
||||
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
|
||||
[context setDuration:0.5*duration];
|
||||
[[window animator] setAlphaValue:0];
|
||||
} completionHandler:^{
|
||||
[window setStyleMask:([window styleMask] & ~NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Metal"];
|
||||
[self updateTablineSeparator];
|
||||
[window setFrame:preFullScreenFrame display:YES];
|
||||
|
||||
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
|
||||
[context setDuration:0.5*duration];
|
||||
[[window animator] setAlphaValue:1];
|
||||
} completionHandler:^{
|
||||
// Do nothing
|
||||
}];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)windowWillExitFullScreen:(NSNotification *)notification
|
||||
{
|
||||
// ASSUMPTION: fullScreenEnabled always reflects the state of Vim's 'fu'.
|
||||
if (fullScreenEnabled) {
|
||||
ASLogDebug(@"Full-screen out of sync, tell Vim to clear 'fu'");
|
||||
// NOTE: If we get here it means that Cocoa has somehow exited
|
||||
// full-screen without us getting to clear the 'fu' option first, so
|
||||
// Vim and the GUI are out of sync. The following code (eventually)
|
||||
// gets them back into sync.
|
||||
fullScreenEnabled = NO;
|
||||
[self invFullScreen:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)windowDidFailToExitFullScreen:(NSWindow *)window
|
||||
{
|
||||
// TODO: Is this the correct way to deal with this message? Are we still
|
||||
// in full-screen at this point?
|
||||
ASLogNotice(@"Failed to EXIT full-screen, maximizing window...");
|
||||
|
||||
fullScreenEnabled = YES;
|
||||
[window setAlphaValue:1];
|
||||
[window setStyleMask:([window styleMask] | NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Unified"];
|
||||
[self updateTablineSeparator];
|
||||
[self maximizeWindow:fullScreenOptions];
|
||||
}
|
||||
|
||||
#endif // (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
|
||||
|
||||
@end // MMWindowController
|
||||
|
||||
|
||||
@@ -1029,13 +1282,13 @@
|
||||
shouldRestoreUserTopLeft = NO;
|
||||
}
|
||||
|
||||
if (onScreen && [decoratedWindow screen]) {
|
||||
NSScreen *screen = [decoratedWindow screen];
|
||||
if (onScreen && screen) {
|
||||
// Ensure that the window fits inside the visible part of the screen.
|
||||
// If there are more than one screen the window will be moved to fit
|
||||
// entirely in the screen that most of it occupies.
|
||||
// NOTE: Not called in full-screen mode so use "visibleFrame' instead
|
||||
// of "frame".
|
||||
NSRect maxFrame = [[decoratedWindow screen] visibleFrame];
|
||||
NSRect maxFrame = fullScreenEnabled ? [screen frame]
|
||||
: [screen visibleFrame];
|
||||
maxFrame = [self constrainFrame:maxFrame];
|
||||
|
||||
if (newFrame.size.width > maxFrame.size.width) {
|
||||
@@ -1057,6 +1310,16 @@
|
||||
newFrame.origin.x = NSMaxX(maxFrame) - newFrame.size.width;
|
||||
}
|
||||
|
||||
if (fullScreenEnabled && screen) {
|
||||
// Keep window centered when in native full-screen.
|
||||
NSRect screenFrame = [screen frame];
|
||||
newFrame.origin.y = screenFrame.origin.y +
|
||||
round(0.5*(screenFrame.size.height - newFrame.size.height));
|
||||
newFrame.origin.x = screenFrame.origin.x +
|
||||
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) };
|
||||
@@ -1083,7 +1346,7 @@
|
||||
// NOTE: This may be called in both windowed and full-screen mode. The
|
||||
// "visibleFrame" method does not overlap menu and dock so should not be
|
||||
// used in full-screen.
|
||||
NSRect screenRect = fullscreenEnabled ? [[win screen] frame]
|
||||
NSRect screenRect = fullScreenEnabled ? [[win screen] frame]
|
||||
: [[win screen] visibleFrame];
|
||||
NSRect rect = [win contentRectForFrameRect:screenRect];
|
||||
|
||||
@@ -1147,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
|
||||
@@ -1203,28 +1482,95 @@
|
||||
|
||||
- (void)updateToolbar
|
||||
{
|
||||
NSToolbar *toolbar = [decoratedWindow toolbar];
|
||||
if (nil == toolbar || 0 == updateToolbarFlag) return;
|
||||
|
||||
// Positive flag shows toolbar, negative hides it.
|
||||
BOOL on = updateToolbarFlag > 0 ? YES : NO;
|
||||
[toolbar setVisible:on];
|
||||
|
||||
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]];
|
||||
}
|
||||
[decoratedWindow setToolbar:(on ? toolbar : nil)];
|
||||
[self updateTablineSeparator];
|
||||
|
||||
updateToolbarFlag = 0;
|
||||
}
|
||||
|
||||
- (BOOL)maximizeWindow:(int)options
|
||||
{
|
||||
int currRows, currColumns;
|
||||
[[vimView textView] getMaxRows:&currRows columns:&currColumns];
|
||||
|
||||
// NOTE: Do not use [NSScreen visibleFrame] when determining the screen
|
||||
// size since it compensates for menu and dock.
|
||||
int maxRows, maxColumns;
|
||||
NSSize size = [[NSScreen mainScreen] frame].size;
|
||||
[vimView constrainRows:&maxRows columns:&maxColumns toSize:size];
|
||||
|
||||
ASLogDebug(@"Window dimensions max: %dx%d current: %dx%d",
|
||||
maxRows, maxColumns, currRows, currColumns);
|
||||
|
||||
// Compute current fu size
|
||||
int fuRows = currRows, fuColumns = currColumns;
|
||||
if (options & FUOPT_MAXVERT)
|
||||
fuRows = maxRows;
|
||||
if (options & FUOPT_MAXHORZ)
|
||||
fuColumns = maxColumns;
|
||||
|
||||
// If necessary, resize vim to target fu size
|
||||
if (currRows != fuRows || currColumns != fuColumns) {
|
||||
// The size sent here is queued and sent to vim when it's in
|
||||
// event processing mode again. Make sure to only send the values we
|
||||
// care about, as they override any changes that were made to 'lines'
|
||||
// and 'columns' after 'fu' was set but before the event loop is run.
|
||||
NSData *data = nil;
|
||||
int msgid = 0;
|
||||
if (currRows != fuRows && currColumns != fuColumns) {
|
||||
int newSize[2] = { fuRows, fuColumns };
|
||||
data = [NSData dataWithBytes:newSize length:2*sizeof(int)];
|
||||
msgid = SetTextDimensionsMsgID;
|
||||
} else if (currRows != fuRows) {
|
||||
data = [NSData dataWithBytes:&fuRows length:sizeof(int)];
|
||||
msgid = SetTextRowsMsgID;
|
||||
} else if (currColumns != fuColumns) {
|
||||
data = [NSData dataWithBytes:&fuColumns length:sizeof(int)];
|
||||
msgid = SetTextColumnsMsgID;
|
||||
}
|
||||
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
|
||||
{
|
||||
if (fullScreenWindow) {
|
||||
[fullScreenWindow applicationDidChangeScreenParameters:notification];
|
||||
} else if (fullScreenEnabled) {
|
||||
ASLogDebug(@"Re-maximizing full-screen window...");
|
||||
[self maximizeWindow:fullScreenOptions];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)enterNativeFullScreen
|
||||
{
|
||||
if (fullScreenEnabled)
|
||||
return;
|
||||
|
||||
ASLogInfo(@"Enter native full-screen");
|
||||
|
||||
fullScreenEnabled = YES;
|
||||
|
||||
// NOTE: fullScreenEnabled is used to detect if we enter full-screen
|
||||
// programatically and so must be set before calling realToggleFullScreen:.
|
||||
NSParameterAssert(fullScreenEnabled == YES);
|
||||
[decoratedWindow realToggleFullScreen:self];
|
||||
}
|
||||
|
||||
@end // MMWindowController (Private)
|
||||
|
||||
|
||||
+6
-3
@@ -22,6 +22,9 @@
|
||||
#ifndef MAC_OS_X_VERSION_10_6
|
||||
# define MAC_OS_X_VERSION_10_6 1060
|
||||
#endif
|
||||
#ifndef MAC_OS_X_VERSION_10_7
|
||||
# define MAC_OS_X_VERSION_10_7 1070
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
@@ -156,8 +159,8 @@ enum {
|
||||
AdjustLinespaceMsgID,
|
||||
ActivateMsgID,
|
||||
SetServerNameMsgID,
|
||||
EnterFullscreenMsgID,
|
||||
LeaveFullscreenMsgID,
|
||||
EnterFullScreenMsgID,
|
||||
LeaveFullScreenMsgID,
|
||||
SetBuffersModifiedMsgID,
|
||||
AddInputMsgID,
|
||||
SetPreEditPositionMsgID,
|
||||
@@ -169,7 +172,7 @@ enum {
|
||||
SetDocumentFilenameMsgID,
|
||||
OpenWithArgumentsMsgID,
|
||||
CloseWindowMsgID,
|
||||
SetFullscreenColorMsgID,
|
||||
SetFullScreenColorMsgID,
|
||||
ShowFindReplaceDialogMsgID,
|
||||
FindReplaceMsgID,
|
||||
ActivateKeyScriptMsgID,
|
||||
|
||||
+3
-3
@@ -66,8 +66,8 @@ char *MessageStrings[] =
|
||||
"AdjustLinespaceMsgID",
|
||||
"ActivateMsgID",
|
||||
"SetServerNameMsgID",
|
||||
"EnterFullscreenMsgID",
|
||||
"LeaveFullscreenMsgID",
|
||||
"EnterFullScreenMsgID",
|
||||
"LeaveFullScreenMsgID",
|
||||
"SetBuffersModifiedMsgID",
|
||||
"AddInputMsgID",
|
||||
"SetPreEditPositionMsgID",
|
||||
@@ -79,7 +79,7 @@ char *MessageStrings[] =
|
||||
"SetDocumentFilenameMsgID",
|
||||
"OpenWithArgumentsMsgID",
|
||||
"CloseWindowMsgID",
|
||||
"SetFullscreenColorMsgID",
|
||||
"SetFullScreenColorMsgID",
|
||||
"ShowFindReplaceDialogMsgID",
|
||||
"FindReplaceMsgID",
|
||||
"ActivateKeyScriptMsgID",
|
||||
|
||||
@@ -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>"; };
|
||||
@@ -254,8 +254,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 */,
|
||||
@@ -538,7 +538,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 +557,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 +622,7 @@
|
||||
buildSettings = {
|
||||
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 59;
|
||||
CURRENT_PROJECT_VERSION = 62;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||
@@ -652,7 +652,7 @@
|
||||
buildSettings = {
|
||||
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
CURRENT_PROJECT_VERSION = 59;
|
||||
CURRENT_PROJECT_VERSION = 62;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||
@@ -679,6 +679,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
||||
GCC_VERSION = 4.2;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
@@ -691,6 +692,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
||||
GCC_VERSION = 4.2;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
|
||||
@@ -53,6 +53,7 @@ extern NSString *MMLastWindowClosedBehaviorKey;
|
||||
extern NSString *MMUseInlineImKey;
|
||||
#endif // INCLUDE_OLD_IM_CODE
|
||||
extern NSString *MMSuppressTerminationAlertKey;
|
||||
extern NSString *MMNativeFullScreenKey;
|
||||
|
||||
|
||||
// Enum for MMUntitledWindowKey
|
||||
@@ -81,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;
|
||||
|
||||
@@ -45,6 +45,7 @@ NSString *MMLastWindowClosedBehaviorKey = @"MMLastWindowClosedBehavior";
|
||||
NSString *MMUseInlineImKey = @"MMUseInlineIm";
|
||||
#endif // INCLUDE_OLD_IM_CODE
|
||||
NSString *MMSuppressTerminationAlertKey = @"MMSuppressTerminationAlert";
|
||||
NSString *MMNativeFullScreenKey = @"MMNativeFullScreen";
|
||||
|
||||
|
||||
|
||||
@@ -219,7 +220,7 @@ NSString *MMSuppressTerminationAlertKey = @"MMSuppressTerminationAlert";
|
||||
- (NSToolbarItem *)itemAtIndex:(NSUInteger)idx
|
||||
{
|
||||
NSArray *items = [self items];
|
||||
if (idx < 0 || idx >= [items count])
|
||||
if (idx >= [items count])
|
||||
return nil;
|
||||
|
||||
return [items objectAtIndex:idx];
|
||||
|
||||
@@ -417,7 +417,11 @@
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = C056398B08A954F8003078D8 /* Build configuration list for PBXProject "PSMTabBarControl" */;
|
||||
compatibilityVersion = "Xcode 2.4";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 0259C574FE90428111CA0C5A /* PSMTabBarControl */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
@@ -547,6 +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;
|
||||
INFOPLIST_FILE = "PSMTabBarControlFramework-Info.plist";
|
||||
INSTALL_PATH = "@executable_path/../Frameworks";
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
@@ -568,6 +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;
|
||||
INFOPLIST_FILE = "PSMTabBarControlFramework-Info.plist";
|
||||
INSTALL_PATH = "@executable_path/../Frameworks";
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
|
||||
@@ -418,6 +418,7 @@
|
||||
labelPosition += closeButtonSize.width + kPSMTabBarCellPadding;
|
||||
}
|
||||
|
||||
#if 0 // MacVim: disable this code. It is unused and calling 'content' on the represented object's identifier seems dangerous at best.
|
||||
// icon
|
||||
if([cell hasIcon]){
|
||||
NSRect iconRect = [self iconRectForTabCell:cell];
|
||||
@@ -430,7 +431,8 @@
|
||||
// scoot label over
|
||||
labelPosition += iconRect.size.width + kPSMTabBarCellPadding;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// object counter
|
||||
if([cell count] > 0){
|
||||
[[NSColor colorWithCalibratedWhite:0.3 alpha:0.45] set];
|
||||
@@ -451,8 +453,7 @@
|
||||
counterStringRect.origin.y = myRect.origin.y + ((myRect.size.height - counterStringRect.size.height) / 2.0) + 0.5;
|
||||
[counterString drawInRect:counterStringRect];
|
||||
}
|
||||
|
||||
|
||||
|
||||
// label rect
|
||||
NSRect labelRect;
|
||||
labelRect.origin.x = labelPosition;
|
||||
|
||||
@@ -402,7 +402,8 @@ void MyNSDrawWindowBackground(NSRect rect)
|
||||
// scoot label over
|
||||
labelPosition += closeButtonSize.width + kPSMTabBarCellPadding;
|
||||
}
|
||||
|
||||
|
||||
#if 0 // MacVim: disable this code. It is unused and calling 'content' on the represented object's identifier seems dangerous at best.
|
||||
// icon
|
||||
if([cell hasIcon]){
|
||||
NSRect iconRect = [self iconRectForTabCell:cell];
|
||||
@@ -415,7 +416,8 @@ void MyNSDrawWindowBackground(NSRect rect)
|
||||
// scoot label over
|
||||
labelPosition += iconRect.size.width + kPSMTabBarCellPadding;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// object counter
|
||||
if([cell count] > 0){
|
||||
[[NSColor colorWithCalibratedWhite:0.3 alpha:0.6] set];
|
||||
@@ -438,7 +440,7 @@ void MyNSDrawWindowBackground(NSRect rect)
|
||||
counterStringRect.origin.y = myRect.origin.y + ((myRect.size.height - counterStringRect.size.height) / 2.0) + 0.5;
|
||||
[counterString drawInRect:counterStringRect];
|
||||
}
|
||||
|
||||
|
||||
// label rect
|
||||
NSRect labelRect;
|
||||
labelRect.origin.x = labelPosition;
|
||||
|
||||
@@ -10,6 +10,14 @@
|
||||
|
||||
@implementation PSMRolloverButton
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[_usualImage release];
|
||||
[_rolloverImage release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
// the regular image
|
||||
- (void)setUsualImage:(NSImage *)newImage
|
||||
{
|
||||
|
||||
@@ -407,7 +407,7 @@
|
||||
[[cell indicator] setHidden:YES];
|
||||
if([item identifier] != nil){
|
||||
if([[item identifier] respondsToSelector:@selector(content)]){
|
||||
if([[[[cell representedObject] identifier] content] respondsToSelector:@selector(isProcessing)]){
|
||||
if([[[[cell representedObject] identifier] performSelector:@selector(content)] respondsToSelector:@selector(isProcessing)]){
|
||||
NSMutableDictionary *bindingOptions = [NSMutableDictionary dictionary];
|
||||
[bindingOptions setObject:NSNegateBooleanTransformerName forKey:@"NSValueTransformerName"];
|
||||
[[cell indicator] bind:@"animate" toObject:[item identifier] withKeyPath:@"selection.isProcessing" options:nil];
|
||||
@@ -421,7 +421,7 @@
|
||||
[cell setHasIcon:NO];
|
||||
if([item identifier] != nil){
|
||||
if([[item identifier] respondsToSelector:@selector(content)]){
|
||||
if([[[[cell representedObject] identifier] content] respondsToSelector:@selector(icon)]){
|
||||
if([[[[cell representedObject] identifier] performSelector:@selector(content)] respondsToSelector:@selector(icon)]){
|
||||
NSMutableDictionary *bindingOptions = [NSMutableDictionary dictionary];
|
||||
[bindingOptions setObject:NSIsNotNilTransformerName forKey:@"NSValueTransformerName"];
|
||||
[cell bind:@"hasIcon" toObject:[item identifier] withKeyPath:@"selection.icon" options:bindingOptions];
|
||||
@@ -434,7 +434,7 @@
|
||||
[cell setCount:0];
|
||||
if([item identifier] != nil){
|
||||
if([[item identifier] respondsToSelector:@selector(content)]){
|
||||
if([[[[cell representedObject] identifier] content] respondsToSelector:@selector(objectCount)]){
|
||||
if([[[[cell representedObject] identifier] performSelector:@selector(content)] respondsToSelector:@selector(objectCount)]){
|
||||
[cell bind:@"count" toObject:[item identifier] withKeyPath:@"selection.objectCount" options:nil];
|
||||
[[item identifier] addObserver:self forKeyPath:@"selection.objectCount" options:0 context:nil];
|
||||
}
|
||||
|
||||
@@ -398,7 +398,8 @@
|
||||
// scoot label over
|
||||
labelPosition += closeButtonSize.width + kPSMTabBarCellPadding;
|
||||
}
|
||||
|
||||
|
||||
#if 0 // MacVim: disable this code. It is unused and calling 'content' on the represented object's identifier seems dangerous at best.
|
||||
// icon
|
||||
if([cell hasIcon]){
|
||||
NSRect iconRect = [self iconRectForTabCell:cell];
|
||||
@@ -411,7 +412,8 @@
|
||||
// scoot label over
|
||||
labelPosition += iconRect.size.width + kPSMTabBarCellPadding;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// object counter
|
||||
if([cell count] > 0){
|
||||
[[NSColor colorWithCalibratedWhite:0.3 alpha:0.6] set];
|
||||
@@ -433,7 +435,7 @@
|
||||
counterStringRect.origin.y = myRect.origin.y + ((myRect.size.height - counterStringRect.size.height) / 2.0) + 0.5;
|
||||
[counterString drawInRect:counterStringRect];
|
||||
}
|
||||
|
||||
|
||||
// label rect
|
||||
NSRect labelRect;
|
||||
labelRect.origin.x = labelPosition;
|
||||
|
||||
@@ -1675,14 +1675,14 @@ gui_mch_toggle_tearoffs(int enable)
|
||||
void
|
||||
gui_mch_enter_fullscreen(int fuoptions_flags, guicolor_T bg)
|
||||
{
|
||||
[[MMBackend sharedInstance] enterFullscreen:fuoptions_flags background:bg];
|
||||
[[MMBackend sharedInstance] enterFullScreen:fuoptions_flags background:bg];
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gui_mch_leave_fullscreen()
|
||||
{
|
||||
[[MMBackend sharedInstance] leaveFullscreen];
|
||||
[[MMBackend sharedInstance] leaveFullScreen];
|
||||
}
|
||||
|
||||
|
||||
@@ -1699,7 +1699,7 @@ gui_mch_fuopt_update()
|
||||
bg = fuoptions_bgcolor;
|
||||
}
|
||||
|
||||
[[MMBackend sharedInstance] setFullscreenBackgroundColor:bg];
|
||||
[[MMBackend sharedInstance] setFullScreenBackgroundColor:bg];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
+8
-1
@@ -108,6 +108,13 @@ endif
|
||||
# on NT, it's here:
|
||||
PERLLIB=$(PERL)/lib
|
||||
PERLLIBS=$(PERLLIB)/Core
|
||||
XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
|
||||
XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
|
||||
ifeq "$(XSUBPP_EXISTS)" ""
|
||||
XSUBPP=perl $(XSUBPP)
|
||||
else
|
||||
XSUBPP=xsubpp
|
||||
endif
|
||||
endif
|
||||
|
||||
# uncomment 'LUA' if you want a Lua-enabled version
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
Vendored
+4
-4
@@ -5814,7 +5814,7 @@ __:
|
||||
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="-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//`
|
||||
@@ -5992,7 +5992,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 +6083,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
|
||||
@@ -20625,7 +20625,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
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+5
-3
@@ -1100,7 +1100,7 @@ eof
|
||||
dnl -- delete the lines from make about Entering/Leaving directory
|
||||
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="-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}"
|
||||
dnl remove -ltermcap, it can conflict with an earlier -lncurses
|
||||
vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
|
||||
@@ -1193,7 +1193,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 +1238,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>
|
||||
|
||||
+81
-5
@@ -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,9 +155,10 @@ 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));
|
||||
@@ -163,6 +166,7 @@ static int ins_compl_prep __ARGS((int c));
|
||||
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 +3355,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 +3368,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 +3471,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);
|
||||
@@ -3886,12 +3904,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 +3924,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 +3955,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 +3991,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 +5173,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;
|
||||
|
||||
+25
-21
@@ -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;
|
||||
@@ -3430,6 +3430,9 @@ ex_call(eap)
|
||||
{
|
||||
curwin->w_cursor.lnum = lnum;
|
||||
curwin->w_cursor.col = 0;
|
||||
#ifdef FEAT_VIRTUALEDIT
|
||||
curwin->w_cursor.coladd = 0;
|
||||
#endif
|
||||
}
|
||||
arg = startarg;
|
||||
if (get_func_tv(name, (int)STRLEN(name), &rettv, &arg,
|
||||
@@ -6897,7 +6900,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;
|
||||
{
|
||||
@@ -11939,7 +11942,7 @@ f_has(argvars, rettv)
|
||||
#ifdef FEAT_SEARCHPATH
|
||||
"file_in_path",
|
||||
#endif
|
||||
#if defined(UNIX) && !defined(USE_SYSTEM)
|
||||
#if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
|
||||
"filterpipe",
|
||||
#endif
|
||||
#ifdef FEAT_FIND_ID
|
||||
@@ -14338,7 +14341,7 @@ f_readfile(argvars, rettv)
|
||||
tolist = 0;
|
||||
for ( ; filtd < buflen || readlen <= 0; ++filtd)
|
||||
{
|
||||
if (buf[filtd] == '\n' || readlen <= 0)
|
||||
if (readlen <= 0 || buf[filtd] == '\n')
|
||||
{
|
||||
/* In binary mode add an empty list item when the last
|
||||
* non-empty line ends in a '\n'. */
|
||||
@@ -20807,7 +20810,8 @@ ex_function(eap)
|
||||
nesting = 0;
|
||||
for (;;)
|
||||
{
|
||||
msg_scroll = TRUE;
|
||||
if (KeyTyped)
|
||||
msg_scroll = TRUE;
|
||||
need_wait_return = FALSE;
|
||||
sourcing_lnum_off = sourcing_lnum;
|
||||
|
||||
@@ -23226,6 +23230,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
|
||||
|
||||
@@ -23400,24 +23405,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)
|
||||
@@ -23425,18 +23431,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;
|
||||
|
||||
+1
-5
@@ -1107,7 +1107,7 @@ do_filter(line1, line2, eap, cmd, do_in, do_out)
|
||||
if (do_out)
|
||||
shell_flags |= SHELL_DOOUT;
|
||||
|
||||
#if !defined(USE_SYSTEM) && defined(UNIX)
|
||||
#if (!defined(USE_SYSTEM) && defined(UNIX)) || defined(WIN3264)
|
||||
if (!do_in && do_out && !p_stmp)
|
||||
{
|
||||
/* Use a pipe to fetch stdout of the command, do not use a temp 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
|
||||
|
||||
+8
-1
@@ -5315,7 +5315,9 @@ static struct
|
||||
{
|
||||
{EXPAND_AUGROUP, "augroup"},
|
||||
{EXPAND_BUFFERS, "buffer"},
|
||||
{EXPAND_COLORS, "color"},
|
||||
{EXPAND_COMMANDS, "command"},
|
||||
{EXPAND_COMPILER, "compiler"},
|
||||
#if defined(FEAT_CSCOPE)
|
||||
{EXPAND_CSCOPE, "cscope"},
|
||||
#endif
|
||||
@@ -5328,10 +5330,15 @@ static struct
|
||||
{EXPAND_EVENTS, "event"},
|
||||
{EXPAND_EXPRESSION, "expression"},
|
||||
{EXPAND_FILES, "file"},
|
||||
{EXPAND_FILES_IN_PATH, "file_in_path"},
|
||||
{EXPAND_FILETYPE, "filetype"},
|
||||
{EXPAND_FUNCTIONS, "function"},
|
||||
{EXPAND_HELP, "help"},
|
||||
{EXPAND_HIGHLIGHT, "highlight"},
|
||||
#if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
|
||||
&& (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
|
||||
{EXPAND_LOCALES, "locale"},
|
||||
#endif
|
||||
{EXPAND_MAPPINGS, "mapping"},
|
||||
{EXPAND_MENUS, "menu"},
|
||||
{EXPAND_OWNSYNTAX, "syntax"},
|
||||
@@ -7088,7 +7095,7 @@ alist_expand(fnum_list, fnum_len)
|
||||
old_arg_count = GARGCOUNT;
|
||||
if (expand_wildcards(old_arg_count, old_arg_files,
|
||||
&new_arg_file_count, &new_arg_files,
|
||||
EW_FILE|EW_NOTFOUND|EW_ADDSLASH) == OK
|
||||
EW_FILE|EW_NOTFOUND|EW_ADDSLASH|EW_NOERROR) == OK
|
||||
&& new_arg_file_count > 0)
|
||||
{
|
||||
alist_set(&global_alist, new_arg_file_count, new_arg_files,
|
||||
|
||||
+21
-10
@@ -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
|
||||
@@ -1977,8 +1977,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;
|
||||
}
|
||||
@@ -3057,7 +3061,7 @@ cmdline_paste(regname, literally, remcr)
|
||||
int len;
|
||||
|
||||
/* Locate start of last word in the cmd buffer. */
|
||||
for (w = ccline.cmdbuff + ccline.cmdlen; w > ccline.cmdbuff; )
|
||||
for (w = ccline.cmdbuff + ccline.cmdpos; w > ccline.cmdbuff; )
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
if (has_mbyte)
|
||||
@@ -3075,7 +3079,7 @@ cmdline_paste(regname, literally, remcr)
|
||||
--w;
|
||||
}
|
||||
}
|
||||
len = (int)((ccline.cmdbuff + ccline.cmdlen) - w);
|
||||
len = (int)((ccline.cmdbuff + ccline.cmdpos) - w);
|
||||
if (p_ic ? STRNICMP(w, arg, len) == 0 : STRNCMP(w, arg, len) == 0)
|
||||
p += len;
|
||||
}
|
||||
@@ -5039,7 +5043,7 @@ ExpandRTDir(pat, num_file, file, dirnames)
|
||||
|
||||
*num_file = 0;
|
||||
*file = NULL;
|
||||
pat_len = STRLEN(pat);
|
||||
pat_len = (int)STRLEN(pat);
|
||||
ga_init2(&ga, (int)sizeof(char *), 10);
|
||||
|
||||
for (i = 0; dirnames[i] != NULL; ++i)
|
||||
@@ -5303,13 +5307,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 +5324,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 +5423,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 +6002,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);
|
||||
|
||||
+22
-3
@@ -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))
|
||||
@@ -9082,7 +9096,10 @@ trigger_cursorhold()
|
||||
{
|
||||
int state;
|
||||
|
||||
if (!did_cursorhold && has_cursorhold() && !Recording
|
||||
if (!did_cursorhold
|
||||
&& has_cursorhold()
|
||||
&& !Recording
|
||||
&& typebuf.tb_len == 0
|
||||
#ifdef FEAT_INS_EXPAND
|
||||
&& !ins_compl_active()
|
||||
#endif
|
||||
@@ -9973,6 +9990,8 @@ match_file_pat(pattern, prog, fname, sfname, tail, allow_dirs)
|
||||
if ((c == ';' || c == '>') && match == FALSE)
|
||||
{
|
||||
*pattern = NUL; /* Terminate the string */
|
||||
/* TODO: match with 'filetype' of buffer that "fname" comes
|
||||
* from. */
|
||||
match = mch_check_filetype(fname, type_start);
|
||||
*pattern = c; /* Restore the terminator */
|
||||
type_start = pattern + 1;
|
||||
|
||||
+6
-3
@@ -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);
|
||||
|
||||
+32
-5
@@ -3262,9 +3262,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 +3964,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 +4516,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 +4542,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 +4550,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 +5198,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
|
||||
};
|
||||
|
||||
@@ -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,171 @@ 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;
|
||||
FILE *parent_file;
|
||||
|
||||
/* 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
|
||||
|
||||
if (!pipe_error)
|
||||
parent_file = fdopen(pipefd[1], "w");
|
||||
else
|
||||
parent_file = NULL;
|
||||
|
||||
/* Try to start the GUI */
|
||||
gui_attempt_start();
|
||||
|
||||
/* Notify the parent */
|
||||
if (parent_file != NULL)
|
||||
{
|
||||
fputs(gui.in_use ? "ok" : "fail", parent_file);
|
||||
fclose(parent_file);
|
||||
}
|
||||
|
||||
/* 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)
|
||||
{
|
||||
size_t bytes_read;
|
||||
FILE *file;
|
||||
char buffer[10];
|
||||
|
||||
file = fdopen(fd, "r");
|
||||
if (!file)
|
||||
return GUI_CHILD_IO_ERROR;
|
||||
|
||||
bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
|
||||
buffer[bytes_read] = '\0';
|
||||
fclose(file);
|
||||
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 +1552,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())
|
||||
|
||||
+16
-6
@@ -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
File diff suppressed because it is too large
Load Diff
+27
-2
@@ -1270,6 +1270,25 @@ gui_mch_prepare(int *argc, char **argv)
|
||||
pGetMonitorInfo = (TGetMonitorInfo)GetProcAddress(user32_lib,
|
||||
"GetMonitorInfoA");
|
||||
}
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
/* If the OS is Windows NT, use wide functions;
|
||||
* this enables common dialogs input unicode from IME. */
|
||||
if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT)
|
||||
{
|
||||
pDispatchMessage = DispatchMessageW;
|
||||
pGetMessage = GetMessageW;
|
||||
pIsDialogMessage = IsDialogMessageW;
|
||||
pPeekMessage = PeekMessageW;
|
||||
}
|
||||
else
|
||||
{
|
||||
pDispatchMessage = DispatchMessageA;
|
||||
pGetMessage = GetMessageA;
|
||||
pIsDialogMessage = IsDialogMessageA;
|
||||
pPeekMessage = PeekMessageA;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1379,7 +1398,8 @@ gui_mch_init(void)
|
||||
s_hwnd = CreateWindowEx(
|
||||
WS_EX_MDICHILD,
|
||||
szVimWndClass, "Vim MSWindows GUI",
|
||||
WS_OVERLAPPEDWINDOW | WS_CHILD | WS_CLIPSIBLINGS | 0xC000,
|
||||
WS_OVERLAPPEDWINDOW | WS_CHILD
|
||||
| WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 0xC000,
|
||||
gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
|
||||
gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
|
||||
100, /* Any value will do */
|
||||
@@ -1410,7 +1430,8 @@ gui_mch_init(void)
|
||||
* titlebar, it will be reparented below. */
|
||||
s_hwnd = CreateWindow(
|
||||
szVimWndClass, "Vim MSWindows GUI",
|
||||
win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP,
|
||||
(win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP)
|
||||
| WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
|
||||
gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
|
||||
gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
|
||||
100, /* Any value will do */
|
||||
@@ -1574,6 +1595,10 @@ gui_mch_init(void)
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
# if _MSC_VER < 1400
|
||||
/* HandleToLong() only exists in compilers that can do 64 bit builds */
|
||||
# define HandleToLong(h) ((long)(h))
|
||||
# endif
|
||||
/* set the v:windowid variable */
|
||||
set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
|
||||
#endif
|
||||
|
||||
+18
-18
@@ -390,7 +390,7 @@ _OnBlinkTimer(
|
||||
KillTimer(NULL, idEvent);
|
||||
|
||||
/* Eat spurious WM_TIMER messages */
|
||||
while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
;
|
||||
|
||||
if (blink_state == BLINK_ON)
|
||||
@@ -418,7 +418,7 @@ gui_mswin_rm_blink_timer(void)
|
||||
{
|
||||
KillTimer(NULL, blink_timer);
|
||||
/* Eat spurious WM_TIMER messages */
|
||||
while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
;
|
||||
blink_timer = 0;
|
||||
}
|
||||
@@ -476,7 +476,7 @@ _OnTimer(
|
||||
s_timed_out = TRUE;
|
||||
|
||||
/* Eat spurious WM_TIMER messages */
|
||||
while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
;
|
||||
if (idEvent == s_wait_timer)
|
||||
s_wait_timer = 0;
|
||||
@@ -1411,12 +1411,12 @@ gui_mch_get_color(char_u *name)
|
||||
static guicolor_tTable table[] =
|
||||
{
|
||||
{"Black", RGB(0x00, 0x00, 0x00)},
|
||||
{"DarkGray", RGB(0x80, 0x80, 0x80)},
|
||||
{"DarkGrey", RGB(0x80, 0x80, 0x80)},
|
||||
{"DarkGray", RGB(0xA9, 0xA9, 0xA9)},
|
||||
{"DarkGrey", RGB(0xA9, 0xA9, 0xA9)},
|
||||
{"Gray", RGB(0xC0, 0xC0, 0xC0)},
|
||||
{"Grey", RGB(0xC0, 0xC0, 0xC0)},
|
||||
{"LightGray", RGB(0xE0, 0xE0, 0xE0)},
|
||||
{"LightGrey", RGB(0xE0, 0xE0, 0xE0)},
|
||||
{"LightGray", RGB(0xD3, 0xD3, 0xD3)},
|
||||
{"LightGrey", RGB(0xD3, 0xD3, 0xD3)},
|
||||
{"Gray10", RGB(0x1A, 0x1A, 0x1A)},
|
||||
{"Grey10", RGB(0x1A, 0x1A, 0x1A)},
|
||||
{"Gray20", RGB(0x33, 0x33, 0x33)},
|
||||
@@ -1441,19 +1441,19 @@ gui_mch_get_color(char_u *name)
|
||||
{"LightRed", RGB(0xFF, 0xA0, 0xA0)},
|
||||
{"DarkBlue", RGB(0x00, 0x00, 0x80)},
|
||||
{"Blue", RGB(0x00, 0x00, 0xFF)},
|
||||
{"LightBlue", RGB(0xA0, 0xA0, 0xFF)},
|
||||
{"LightBlue", RGB(0xAD, 0xD8, 0xE6)},
|
||||
{"DarkGreen", RGB(0x00, 0x80, 0x00)},
|
||||
{"Green", RGB(0x00, 0xFF, 0x00)},
|
||||
{"LightGreen", RGB(0xA0, 0xFF, 0xA0)},
|
||||
{"LightGreen", RGB(0x90, 0xEE, 0x90)},
|
||||
{"DarkCyan", RGB(0x00, 0x80, 0x80)},
|
||||
{"Cyan", RGB(0x00, 0xFF, 0xFF)},
|
||||
{"LightCyan", RGB(0xA0, 0xFF, 0xFF)},
|
||||
{"LightCyan", RGB(0xE0, 0xFF, 0xFF)},
|
||||
{"DarkMagenta", RGB(0x80, 0x00, 0x80)},
|
||||
{"Magenta", RGB(0xFF, 0x00, 0xFF)},
|
||||
{"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
|
||||
{"Brown", RGB(0x80, 0x40, 0x40)},
|
||||
{"Yellow", RGB(0xFF, 0xFF, 0x00)},
|
||||
{"LightYellow", RGB(0xFF, 0xFF, 0xA0)},
|
||||
{"LightYellow", RGB(0xFF, 0xFF, 0xE0)},
|
||||
{"DarkYellow", RGB(0xBB, 0xBB, 0x00)},
|
||||
{"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
|
||||
{"Orange", RGB(0xFF, 0xA5, 0x00)},
|
||||
@@ -1707,7 +1707,7 @@ process_message(void)
|
||||
static char_u k10[] = {K_SPECIAL, 'k', ';', 0};
|
||||
#endif
|
||||
|
||||
GetMessage(&msg, NULL, 0, 0);
|
||||
pGetMessage(&msg, NULL, 0, 0);
|
||||
|
||||
#ifdef FEAT_OLE
|
||||
/* Look after OLE Automation commands */
|
||||
@@ -1718,7 +1718,7 @@ process_message(void)
|
||||
{
|
||||
/* Message can't be ours, forward it. Fixes problem with Ultramon
|
||||
* 3.0.4 */
|
||||
DispatchMessage(&msg);
|
||||
pDispatchMessage(&msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1749,14 +1749,14 @@ process_message(void)
|
||||
if (msg.message == WM_USER)
|
||||
{
|
||||
MyTranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
pDispatchMessage(&msg);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MSWIN_FIND_REPLACE
|
||||
/* Don't process messages used by the dialog */
|
||||
if (s_findrep_hwnd != NULL && IsDialogMessage(s_findrep_hwnd, &msg))
|
||||
if (s_findrep_hwnd != NULL && pIsDialogMessage(s_findrep_hwnd, &msg))
|
||||
{
|
||||
HandleMouseHide(msg.message, msg.lParam);
|
||||
return;
|
||||
@@ -1928,7 +1928,7 @@ process_message(void)
|
||||
if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
|
||||
NULL, NULL) == NULL)
|
||||
#endif
|
||||
DispatchMessage(&msg);
|
||||
pDispatchMessage(&msg);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1943,7 +1943,7 @@ gui_mch_update(void)
|
||||
MSG msg;
|
||||
|
||||
if (!s_busy_processing)
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
|
||||
while (pPeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
|
||||
&& !vim_is_input_buf_full())
|
||||
process_message();
|
||||
}
|
||||
@@ -2019,7 +2019,7 @@ gui_mch_wait_for_chars(int wtime)
|
||||
KillTimer(NULL, s_wait_timer);
|
||||
|
||||
/* Eat spurious WM_TIMER messages */
|
||||
while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
|
||||
;
|
||||
s_wait_timer = 0;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user