summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2011-10-20 21:58:34 +0200
committerBram Moolenaar <Bram@vim.org>2011-10-20 21:58:34 +0200
commite3cc6d422367e5d7a0a15c69480313644caefd01 (patch)
tree57d417b4eaa46fd4eddf962e724cdf8829f3ad0b
parent6cc00c75c1349821e95c6128da55110463bab208 (diff)
downloadvim-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.txt21
-rw-r--r--src/ex_docmd.c6
-rw-r--r--src/netbeans.c7
-rw-r--r--src/version.c2
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,