diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-10-20 21:58:34 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-10-20 21:58:34 +0200 |
commit | e3cc6d422367e5d7a0a15c69480313644caefd01 (patch) | |
tree | 57d417b4eaa46fd4eddf962e724cdf8829f3ad0b | |
parent | 6cc00c75c1349821e95c6128da55110463bab208 (diff) | |
download | vim-git-e3cc6d422367e5d7a0a15c69480313644caefd01.tar.gz |
updated for version 7.3.346v7.3.346
Problem: It's hard to test netbeans commands.
Solution: Process netbeans commands after :sleep. (Xavier de Gaye)
-rw-r--r-- | runtime/doc/netbeans.txt | 21 | ||||
-rw-r--r-- | src/ex_docmd.c | 6 | ||||
-rw-r--r-- | src/netbeans.c | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 31 insertions, 5 deletions
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt index 6b186b344..8798ee134 100644 --- a/runtime/doc/netbeans.txt +++ b/runtime/doc/netbeans.txt @@ -263,6 +263,12 @@ The messages are currently sent over a socket. Since the messages are in plain UTF-8 text this protocol could also be used with any other communication mechanism. +Netbeans messages are processed when Vim is idle, waiting for user input. +When Vim is run in non-interactive mode, for example when running an automated +test case that sources a Vim script, the idle loop may not be called often +enough. In that case, insert |sleep| commands in the Vim script. The |sleep| +command does invoke Netbeans messages processing. + 6.1 Kinds of messages |nb-messages| 6.2 Terms |nb-terms| 6.3 Commands |nb-commands| @@ -833,11 +839,16 @@ These errors occur when a message violates the protocol: signs. *:nbkey* -:nb[key] {key} Pass the {key} to the Vim Controller for processing - -When a hot-key has been installed with the specialKeys command, this command -can be used to generate a hotkey messages to the Vim Controller. The events -newDotAndMark, keyCommand and keyAtPos are generated (in this order). +:nb[key] {key} Pass the {key} to the Vim Controller for processing. + When a hot-key has been installed with the specialKeys + command, this command can be used to generate a hotkey + message to the Vim Controller. + This command can also be used to pass any text to the + Vim Controller. It is used by Pyclewn, for example, + to build the complete set of gdb commands as Vim user + commands. + The events newDotAndMark, keyCommand and keyAtPos are + generated (in this order). ============================================================================== diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 3008a1d34..68b530a22 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -8205,6 +8205,12 @@ do_sleep(msec) { ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE); ui_breakcheck(); +#ifdef FEAT_NETBEANS_INTG + /* Process the netbeans messages that may have been received in the + * call to ui_breakcheck() when the GUI is in use. This may occur when + * running a test case. */ + netbeans_parse_messages(); +#endif } } diff --git a/src/netbeans.c b/src/netbeans.c index 5b9161d82..59348f028 100644 --- a/src/netbeans.c +++ b/src/netbeans.c @@ -14,6 +14,13 @@ * which are *between* characters, whereas vim uses line number * and column number which are *on* characters. * See ":help netbeans-protocol" for explanation. + * + * The Netbeans messages are received and queued in the gui event loop, or in + * the select loop when Vim runs in a terminal. These messages are processed + * by netbeans_parse_messages() which is invoked in the idle loop when Vim is + * waiting for user input. The function netbeans_parse_messages() is also + * called from the ":sleep" command, to allow the execution of test cases that + * may not invoke the idle loop. */ #include "vim.h" diff --git a/src/version.c b/src/version.c index 01ee54492..80c2460bc 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 346, +/**/ 345, /**/ 344, |