Skip to content
Browse files

Merge branch 'master' of git://github.com/vrapper/vrapper

Conflicts:
	net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/Options.java
  • Loading branch information...
2 parents b9f09ca + 5b3436c commit d96a25a609e1216210b9e18711065e213fc356b7 @bdetweiler bdetweiler committed Mar 9, 2013
Showing with 404 additions and 80 deletions.
  1. +1 −0 net.sourceforge.vrapper.core.tests/.classpath
  2. +32 −2 net.sourceforge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/NormalModeTests.java
  3. +3 −0 net.sourceforge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/VisualModeTests.java
  4. +4 −0 net.sourceforge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/utils/TestTextContent.java
  5. +1 −1 net.sourceforge.vrapper.core/META-INF/MANIFEST.MF
  6. +1 −0 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/platform/UnderlyingEditorSettings.java
  7. +28 −13 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/utils/StartEndTextRange.java
  8. +4 −3 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/Options.java
  9. +23 −3 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/JoinLinesCommand.java
  10. +8 −1 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/JoinVisualLinesCommand.java
  11. +14 −1 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/LineRangeOperationCommand.java
  12. +34 −0 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/QuoteDelimitedText.java
  13. +107 −0 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/motions/FindQuoteMotion.java
  14. +14 −5 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/motions/ParagraphMotion.java
  15. +1 −1 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/motions/SentenceMotion.java
  16. +4 −3 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/modes/NormalMode.java
  17. +27 −11 ...sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/modes/commandline/CommandLineParser.java
  18. +3 −3 net.sourceforge.vrapper.eclipse.cdt.feature/feature.xml
  19. +2 −2 net.sourceforge.vrapper.eclipse.cdt/META-INF/MANIFEST.MF
  20. +3 −3 net.sourceforge.vrapper.eclipse.jdt.feature/feature.xml
  21. +2 −2 net.sourceforge.vrapper.eclipse.jdt/META-INF/MANIFEST.MF
  22. +3 −3 net.sourceforge.vrapper.eclipse.pydev.feature/feature.xml
  23. +2 −2 net.sourceforge.vrapper.eclipse.pydev/META-INF/MANIFEST.MF
  24. +16 −0 net.sourceforge.vrapper.eclipse/.classpath
  25. +2 −2 net.sourceforge.vrapper.eclipse/META-INF/MANIFEST.MF
  26. +0 −1 ...orge.vrapper.eclipse/src/net/sourceforge/vrapper/eclipse/keymap/EclipseSpecificStateProvider.java
  27. +4 −0 ...orge.vrapper.eclipse/src/net/sourceforge/vrapper/eclipse/platform/AbstractTextEditorSettings.java
  28. +1 −4 ...forge.vrapper.eclipse/src/net/sourceforge/vrapper/eclipse/platform/EclipseCursorAndSelection.java
  29. +2 −2 net.sourceforge.vrapper.plugin.surround.core/META-INF/MANIFEST.MF
  30. +2 −2 net.sourceforge.vrapper.plugin.surround.eclipse/META-INF/MANIFEST.MF
  31. +3 −3 net.sourceforge.vrapper.plugin.surround.feature/feature.xml
  32. +1 −1 vrapper-unstable-feature/feature.xml
  33. +5 −5 vrapper-unstable-update-site/site.xml
  34. +8 −1 website/documentation/commandline_commands.html
  35. +39 −0 website/home/news.php
View
1 net.sourceforge.vrapper.core.tests/.classpath
@@ -6,5 +6,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="src" path="/net.sourceforge.vrapper.core"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Mockito"/>
+ <classpathentry kind="lib" path="/home/bdetweiler/src/lib/mockito-all-1.9.5.jar"/>
@keforbes
keforbes added a note Mar 9, 2013

This broke my project. Try not to checkin your .classpath file. :)

@bdetweiler
bdetweiler added a note Mar 10, 2013

Sorry, I hadn't pulled the latest code before I started working on this and so I got into a conflicted state, and this file got caught up in the mix when I merged. It always wants to automatically add my .classpath file for some reason. I'll throw an ignore on it so it doesn't get pulled in again.

@bdetweiler
bdetweiler added a note Mar 10, 2013

By the way, is there any better way to handle the Mockito dependency? It just seems a bit wonky that we have to go download it separately then add it to the project. Maybe Maven is a bit heavy for this, but I was just wondering if you had considered any options?

@keforbes
keforbes added a note Mar 10, 2013

Yeah, that's a good point. I agree Maven would be a bit heavy for a single dependency. We could probably just commit the jar file into a libs directory so everyone has it. It's 1.5MB but that isn't too bad.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
<classpathentry kind="output" path="bin"/>
</classpath>
View
34 ...orge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/NormalModeTests.java
@@ -529,6 +529,30 @@ public void test_di_() {
checkCommand(forKeySeq("di'"),
"'abc",'\'',"def'",
"'",'\'',"def'");
+
+ checkCommand(forKeySeq("di'"),
+ "foo'f",'o',"o'foo",
+ "foo'",'\'',"foo");
+
+ checkCommand(forKeySeq("di'"),
+ "'foo'foo",'\'',"foo'",
+ "'foo'foo'",'\'',"");
+
+ checkCommand(forKeySeq("di'"),
+ "'foofoo",'\'',"foo'",
+ "'",'\'',"foo'");
+
+ checkCommand(forKeySeq("di'"),
+ "no quotes",' ',"to be found",
+ "no quotes",' ',"to be found");
+
+ checkCommand(forKeySeq("di'"),
+ "something ",'b',"efore quotes 'foo' after",
+ "something before quotes '",'\''," after");
+
+ checkCommand(forKeySeq("di'"),
+ "some'thing' ",'b',"efore quotes after",
+ "some'thing' ",'b',"efore quotes after");
}
@Test
@@ -815,13 +839,19 @@ public void test_J() {
"sth ",'s',"th");
checkCommand(forKeySeq("2J"),
"s",'t',"h\nsth\nsth",
- "sth sth",' ',"sth");
+ "sth", ' ', "sth\nsth");
checkCommand(forKeySeq("J"),
"s",'t',"h\n sth",
"sth",' ',"sth");
checkCommand(forKeySeq("JJ"),
"s",'t',"h\n\nsth",
"sth ",'s',"th");
+ checkCommand(forKeySeq("J"),
+ "",'\n',"hello",
+ "",'h',"ello");
+ checkCommand(forKeySeq("3J"),
+ "th",'i',"s\njoins\nthree lines",
+ "this joins",' ',"three lines");
}
@Test
@@ -831,7 +861,7 @@ public void test_gJ() {
"sth",'s',"th");
checkCommand(forKeySeq("2gJ"),
"s",'t',"h\nsth\nsth",
- "sthsth",'s',"th");
+ "sth",'s',"th\nsth");
checkCommand(forKeySeq("gJ"),
"s",'t',"h\n sth",
"sth",' '," sth");
View
3 ...orge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/VisualModeTests.java
@@ -274,6 +274,9 @@ public void test_J() {
checkLeavingCommand(forKeySeq("gJ"),
false, "new Hell","o\nW","orld();\n//;-)",
"new Hello",'W',"orld();\n//;-)");
+ checkLeavingCommand(forKeySeq("J"),
+ false, "","\n\nh","ello",
+ "",'h',"ello");
}
@Test
View
4 ...orge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/utils/TestTextContent.java
@@ -22,6 +22,10 @@ public TestTextContent(CursorService cursorService) {
}
public LineInformation getLineInformation(int line) {
+ if (line >= getNumberOfLines()) {
+ throw new RuntimeException("Line is out of range");
+ }
+
int index = 0;
int currLine = 0;
while(currLine < line && index < buffer.length()) {
View
2 net.sourceforge.vrapper.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vrapper Core Library
Bundle-SymbolicName: net.sourceforge.vrapper.core;singleton:=true
-Bundle-Version: 0.29.20130216
+Bundle-Version: 0.29.20130309
Export-Package: net.sourceforge.vrapper.keymap,
net.sourceforge.vrapper.keymap.vim,
net.sourceforge.vrapper.log,
View
1 ...urceforge.vrapper.core/src/net/sourceforge/vrapper/platform/UnderlyingEditorSettings.java
@@ -4,5 +4,6 @@
void setReplaceMode(boolean replace);
void setShowLineNumbers(boolean show);
void setShowWhitespace(boolean show);
+ void setHighlightCursorLine(boolean highlight);
void disableInputMethod();
}
View
41 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/utils/StartEndTextRange.java
@@ -51,22 +51,37 @@ public static TextRange lines(EditorAdaptor editor, Position from, Position to)
TextContent txt = editor.getModelContent();
LineInformation sLine = txt.getLineInformationOfOffset(from.getModelOffset());
LineInformation eLine = txt.getLineInformationOfOffset(to.getModelOffset());
- if (sLine.getNumber() > eLine.getNumber())
- return lines(editor, to, from);
+
CursorService cs = editor.getCursorService();
- int startIndex = sLine.getBeginOffset();
- int nextLineNo = eLine.getNumber() + 1;
- int endIndex;
- if (nextLineNo < txt.getNumberOfLines())
- endIndex = txt.getLineInformation(nextLineNo).getBeginOffset();
+ int firstLine, nextLineTolastLine;
+ if (sLine.getNumber() > eLine.getNumber()) {
+ firstLine = eLine.getNumber();
+ nextLineTolastLine = sLine.getNumber() + 1;
+ }
+ else {
+ firstLine = sLine.getNumber();
+ nextLineTolastLine = eLine.getNumber() + 1;
+ }
+
+ int beginOffset = txt.getLineInformation(firstLine).getBeginOffset(), endOffset;
+ if (nextLineTolastLine < txt.getNumberOfLines())
+ endOffset = txt.getLineInformation(nextLineTolastLine).getBeginOffset();
+ else {
+ endOffset = txt.getTextLength();
+ if (firstLine == 0)
+ beginOffset = 0;
+ }
+
+ if (sLine.getNumber() > eLine.getNumber()) {
+ return new StartEndTextRange(
+ cs.newPositionForModelOffset(endOffset),
+ cs.newPositionForModelOffset(beginOffset));
+ }
else {
- endIndex = txt.getTextLength();
- if (sLine.getNumber() == 0)
- startIndex = 0;
+ return new StartEndTextRange(
+ cs.newPositionForModelOffset(beginOffset),
+ cs.newPositionForModelOffset(endOffset));
}
- return new StartEndTextRange(
- cs.newPositionForModelOffset(startIndex),
- cs.newPositionForModelOffset(endIndex));
}
public static TextRange exclusive(Position from, Position to) {
View
7 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/Options.java
@@ -27,16 +27,17 @@
public static final Option<Boolean> IM_DISABLE = bool("imdisable", false, "imd");
public static final Option<Boolean> VISUAL_MOUSE = bool("visualmouse", true, "vm");
public static final Option<Boolean> AUTO_CHDIR = bool("autochdir", false, "acd");
+ public static final Option<Boolean> HIGHLIGHT_CURSOR_LINE = bool("cursorline", false, "cul");
// TODO: This is an Eclipse setting under Window->Preferences->Editors->Text Editors->"Insert spaces for tabs"
// Changing this value should change the Eclipse configuration too. -- BRD
public static final Option<Boolean> EXPAND_TAB = bool("expandtab", true, "et");
-
+
@SuppressWarnings("unchecked")
public static final Set<Option<Boolean>> BOOLEAN_OPTIONS = set(
EXPAND_TAB, SMART_INDENT, AUTO_INDENT, ATOMIC_INSERT, IGNORE_CASE, SMART_CASE,
SANE_CW, SANE_Y, SEARCH_HIGHLIGHT, SEARCH_REGEX,
INCREMENTAL_SEARCH, LINE_NUMBERS, SHOW_WHITESPACE, IM_DISABLE,
- VISUAL_MOUSE, AUTO_CHDIR);
+ VISUAL_MOUSE, AUTO_CHDIR, HIGHLIGHT_CURSOR_LINE);
// String options:
public static final Option<String> CLIPBOARD = string("clipboard", "autoselect", "unnamed, autoselect", "cb");
@@ -56,4 +57,4 @@
@SuppressWarnings("unchecked")
public static final Set<Option<Integer>> INT_OPTIONS = set(SCROLL_JUMP, SCROLL_OFFSET, TEXT_WIDTH, SOFT_TAB, TAB_STOP);
-}
+}
View
26 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/JoinLinesCommand.java
@@ -33,7 +33,7 @@ private JoinLinesCommand(boolean isSmart) {
public void execute(EditorAdaptor editorAdaptor, int count)
throws CommandExecutionException {
if (count == NO_COUNT_GIVEN)
- count = 1;
+ count = 2;
try {
editorAdaptor.getHistory().beginCompoundChange();
doIt(editorAdaptor, count, isSmart);
@@ -42,10 +42,22 @@ public void execute(EditorAdaptor editorAdaptor, int count)
}
}
+ /**
+ * @param editorAdaptor
+ * @param count
+ * number of lines to be joined from current position. If count <
+ * 2, then two lines will be joined
+ * @param isSmart
+ * @throws CommandExecutionException
+ */
public static void doIt(EditorAdaptor editorAdaptor, int count, boolean isSmart)
throws CommandExecutionException {
+ if (count < 2) {
+ count = 2;
+ }
+
TextContent modelContent = editorAdaptor.getModelContent();
- for (int i = 0; i < count; i++) {
+ for (int i = 1; i < count; i++) {
int modelOffset = editorAdaptor.getPosition().getModelOffset();
LineInformation firstLnInfo = modelContent.getLineInformationOfOffset(modelOffset);
if (firstLnInfo.getNumber() + 1 == modelContent.getNumberOfLines())
@@ -58,7 +70,14 @@ public static void doIt(EditorAdaptor editorAdaptor, int count, boolean isSmart)
String glue;
if (isSmart) {
glue = " ";
- if (firstLnInfo.getLength() > 0 && Character.isWhitespace(modelContent.getText(eolOffset - 1, 1).charAt(0)))
+
+ // If there is only newline on the first line, then don't add
+ // any space between joined lines (this behavior is not
+ // documented in Vim manual, but experiments show that it works
+ // this way)
+ if (firstLnInfo.getLength() == 0)
+ glue = "";
+ else if (Character.isWhitespace(modelContent.getText(eolOffset - 1, 1).charAt(0)))
glue = "";
for (int j = 0; j < secondLineText.length() && Character.isWhitespace(secondLineText.charAt(j)); j++)
bolOffset++;
@@ -69,6 +88,7 @@ else if (modelContent.getText(bolOffset, 1).charAt(0) == ')')
glue = "";
} else
glue = "";
+
modelContent.replace(eolOffset, bolOffset - eolOffset, glue);
editorAdaptor.setPosition(editorAdaptor.getPosition().setModelOffset(eolOffset), true);
}
View
9 ...ceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/JoinVisualLinesCommand.java
@@ -1,6 +1,7 @@
package net.sourceforge.vrapper.vim.commands;
import net.sourceforge.vrapper.platform.TextContent;
+import net.sourceforge.vrapper.utils.ContentType;
import net.sourceforge.vrapper.utils.Position;
import net.sourceforge.vrapper.vim.EditorAdaptor;
import net.sourceforge.vrapper.vim.modes.NormalMode;
@@ -27,7 +28,13 @@ public void execute(EditorAdaptor editorAdaptor)
editorAdaptor.getHistory().beginCompoundChange();
editorAdaptor.changeMode(NormalMode.NAME);
editorAdaptor.setPosition(from, false);
- JoinLinesCommand.doIt(editorAdaptor, lastLineNo - firstLineNo, isSmart);
+
+ int length = 1 + lastLineNo - firstLineNo;
+ if (ContentType.LINES.equals(selection.getContentType(editorAdaptor.getConfiguration()))) {
+ length--;
+ }
+
+ JoinLinesCommand.doIt(editorAdaptor, Math.max(2, length), isSmart);
} finally {
editorAdaptor.getHistory().endCompoundChange();
}
View
15 ...orge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/LineRangeOperationCommand.java
@@ -1,5 +1,8 @@
package net.sourceforge.vrapper.vim.commands;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import net.sourceforge.vrapper.platform.CursorService;
import net.sourceforge.vrapper.platform.TextContent;
import net.sourceforge.vrapper.utils.LineInformation;
@@ -81,7 +84,7 @@ private TextOperationTextObjectCommand parseRangeDefinition(String command, Edit
}
}
else { //building second part of range
- if(!insideSearchDef && isOperationChar(next)) {
+ if(!insideSearchDef && isOperationChar(next) && ! stopStr.endsWith("'")) {
operationChar = next;
//if 's', we're defining a substitution for the range
remainingChars = command.substring(i);
@@ -140,6 +143,9 @@ private Position parseRangePosition(String range, EditorAdaptor editorAdaptor) {
String modifierDef = "";
char modifier = 0;
String[] pieces;
+ Pattern endsWithNumber = Pattern.compile("^.+?(\\d+)$");
+ Matcher match = endsWithNumber.matcher(range);
+
//are there modifiers like 3+2 or .-4 or 'a+6?
if(range.contains("+")) {
modifier = '+';
@@ -153,6 +159,13 @@ else if(range.contains("-")) {
lineDef = pieces[0];
modifierDef = pieces[1];
}
+ else if(match.matches()) {
+ //if no '+' or '-' specified, '+' is implicit
+ // ".5" == ".+5"
+ modifier = '+';
+ lineDef = range.substring(0, match.start(1));
+ modifierDef = match.group(1);
+ }
else { //no modifiers
lineDef = range;
}
View
34 ...sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/QuoteDelimitedText.java
@@ -0,0 +1,34 @@
+package net.sourceforge.vrapper.vim.commands;
+
+import net.sourceforge.vrapper.utils.Position;
+import net.sourceforge.vrapper.utils.StartEndTextRange;
+import net.sourceforge.vrapper.utils.TextRange;
+import net.sourceforge.vrapper.vim.EditorAdaptor;
+import net.sourceforge.vrapper.vim.commands.motions.CountAwareMotion;
+import net.sourceforge.vrapper.vim.commands.motions.FindQuoteMotion;
+
+public class QuoteDelimitedText implements DelimitedText {
+
+ private char delimiter;
+
+ public QuoteDelimitedText(char delimiter) {
+ this.delimiter = delimiter;
+ }
+
+ public TextRange leftDelimiter(EditorAdaptor editorAdaptor, int count) throws CommandExecutionException {
+ CountAwareMotion leftMotion = new FindQuoteMotion(delimiter, true);
+ Position left = leftMotion.destination(editorAdaptor, count);
+ return new StartEndTextRange(left, left.addModelOffset(1));
+ }
+
+ public TextRange rightDelimiter(EditorAdaptor editorAdaptor, int count) throws CommandExecutionException {
+ //we need left to calculate right
+ TextRange left = leftDelimiter(editorAdaptor, count);
+
+ //right has to be after left, but left might be after the cursor
+ CountAwareMotion rightMotion = new FindQuoteMotion(delimiter, left.getLeftBound().getModelOffset() + 1);
+ Position right = rightMotion.destination(editorAdaptor, count);
+ return new StartEndTextRange(right, right.addModelOffset(1));
+ }
+
+}
View
107 ...eforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/motions/FindQuoteMotion.java
@@ -0,0 +1,107 @@
+package net.sourceforge.vrapper.vim.commands.motions;
+
+import net.sourceforge.vrapper.platform.TextContent;
+import net.sourceforge.vrapper.utils.LineInformation;
+import net.sourceforge.vrapper.vim.commands.BorderPolicy;
+import net.sourceforge.vrapper.vim.commands.CommandExecutionException;
+
+/**
+ * Quote text objects must be on the same line, but the
+ * cursor doesn't have to be inside it. Cursor can be
+ * inside quotes or to the left of quotes.
+ *
+ * If the cursor is *on* a quote then the number of quotes
+ * before the cursor determines the behavior. If there
+ * are an even number of quotes before the cursor, the quote
+ * on the cursor represents the left bound. If there
+ * are an odd number of quotes before the cursor, the quote
+ * on the cursor represents the right bound.
+ */
+public class FindQuoteMotion extends AbstractModelSideMotion {
+
+ private char quote;
+ private boolean findLeft;
+ private int startIndex = -1;
+
+ public FindQuoteMotion(char quote, boolean findLeft) {
+ this.quote = quote;
+ this.findLeft = findLeft;
+ }
+
+ public FindQuoteMotion(char quote, int startIndex) {
+ this(quote, false);
+ this.startIndex = startIndex;
+ }
+
+ @Override
+ protected int destination(int offset, TextContent content, int count) throws CommandExecutionException {
+ if(startIndex > -1) {
+ //the left quote is after offset, we need to find
+ //the next quote after *that*
+ offset = startIndex;
+ }
+
+ LineInformation line = content.getLineInformationOfOffset(offset);
+ int bol = line.getBeginOffset();
+ int eol = line.getEndOffset();
+ int limit = findLeft ? bol : eol;
+
+ int index = getQuote(content, offset, limit, findLeft);
+ if(findLeft && index == -1) {
+ //there was no quote before the cursor,
+ //maybe there's one after the cursor
+ index = getQuote(content, offset, eol, false);
+ }
+
+ if(index == -1) {
+ //no match found
+ throw new CommandExecutionException("");
+ }
+ return index;
+ }
+
+ private int getQuote(TextContent content, int offset, int limit, boolean findLeft) {
+ int index = offset;
+ int step = findLeft ? -1 : 1;
+
+ //if the cursor is *on* a quote, the number of quotes before the cursor
+ //determines the behavior
+ if(findLeft && content.getText(offset, 1).charAt(0) == quote) {
+ if(getNumQuotesBeforeOffset(limit, offset, content) % 2 == 0) {
+ //there are an even number of quotes before the cursor
+ //that means this quote starts a new balanced set
+ return index;
+ }
+ else {
+ //find the first quote before the cursor
+ //(this quote will end up being the right bound)
+ index--;
+ }
+ }
+
+ while( findLeft ? index >= limit : index < limit) {
+ if(content.getText(index, 1).charAt(0) == quote) {
+ return index;
+ }
+ index += step;
+ }
+ return -1;
+ }
+
+ private int getNumQuotesBeforeOffset(int bol, int limit, TextContent content) {
+ int index = bol;
+ int numQuotes = 0;
+ while(index < limit) {
+ if(content.getText(index, 1).charAt(0) == quote) {
+ numQuotes++;
+ }
+ index++;
+ }
+ return numQuotes;
+ }
+
+ public BorderPolicy borderPolicy() {
+ return findLeft ? BorderPolicy.EXCLUSIVE : BorderPolicy.INCLUSIVE;
+ }
+
+}
View
19 ...eforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/motions/ParagraphMotion.java
@@ -12,7 +12,7 @@
public static final ParagraphMotion BACKWARD = new ParagraphMotion(false);
public static final ParagraphMotion TO_FORWARD = new ParagraphMotion(true) {
protected int moveMore(TextContent modelContent, int lineNo) {
- while (isLineEmpty(modelContent, lineNo))
+ while (isInRange(modelContent, lineNo) && isLineEmpty(modelContent, lineNo))
lineNo += step;
return lineNo;
};
@@ -40,14 +40,20 @@ public Position destination(EditorAdaptor editorAdaptor, int count)
int lineNo = currentLine.getNumber();
for (int i = 0; i < count; i++) {
- while (isLineEmpty(modelContent, lineNo))
+ while (isInRange(modelContent, lineNo) && isLineEmpty(modelContent, lineNo))
lineNo += step;
- while (isLineNonEmpty(modelContent, lineNo))
+ while (isInRange(modelContent, lineNo) && isLineNonEmpty(modelContent, lineNo))
lineNo += step;
}
lineNo = moveMore(modelContent, lineNo);
int offset = modelContent.getLineInformation(lineNo).getBeginOffset();
+
+ // If we are moving forward and we are on the last line, then put cursor
+ // at the end of the line
+ if (step > 0 && ((lineNo + 1) == modelContent.getNumberOfLines())) {
+ offset = modelContent.getLineInformation(lineNo).getEndOffset();
+ }
return editorAdaptor.getPosition().setModelOffset(offset);
}
@@ -63,10 +69,13 @@ protected boolean isLineNonEmpty(TextContent content, int lineNo) {
return doesLineEmptinessEqual(false, content, lineNo);
}
+ protected boolean isInRange(TextContent content, int lineNo) {
+ return (lineNo + step >= 0) && (lineNo + step < content.getNumberOfLines());
+ }
+
private boolean doesLineEmptinessEqual(boolean equalWhat, TextContent content, int lineNo) {
- boolean isInRange = (lineNo + step >= 0) && (lineNo + step <= content.getNumberOfLines());
boolean isEmpty = content.getLineInformation(lineNo).getLength() == 0;
- return isInRange && (isEmpty == equalWhat);
+ return isEmpty == equalWhat;
}
public BorderPolicy borderPolicy() {
View
2 ...ceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/motions/SentenceMotion.java
@@ -62,7 +62,7 @@ private int doIt(EditorAdaptor editorAdaptor, int position) {
while(offset == -1) {
if(forward) {
- if(modelContent.getNumberOfLines() > line.getNumber()) {
+ if(modelContent.getNumberOfLines() > (line.getNumber() + 1)) {
lineTmp = line;
//get next line, starting at beginning of line
line = modelContent.getLineInformation(line.getNumber() + 1);
View
7 net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/modes/NormalMode.java
@@ -54,6 +54,7 @@
import net.sourceforge.vrapper.vim.commands.PasteAfterCommand;
import net.sourceforge.vrapper.vim.commands.PasteBeforeCommand;
import net.sourceforge.vrapper.vim.commands.PlaybackMacroCommand;
+import net.sourceforge.vrapper.vim.commands.QuoteDelimitedText;
import net.sourceforge.vrapper.vim.commands.RecordMacroCommand;
import net.sourceforge.vrapper.vim.commands.RedoCommand;
import net.sourceforge.vrapper.vim.commands.RepeatLastSubstitutionCommand;
@@ -124,9 +125,9 @@ protected KeyMapResolver buildKeyMapResolver() {
final DelimitedText inSquareBracket = new SimpleDelimitedText('[', ']');
final DelimitedText inBrace = new SimpleDelimitedText('{', '}');
final DelimitedText inAngleBrace = new SimpleDelimitedText('<', '>');
- final DelimitedText inString = new SimpleDelimitedText('"');
- final DelimitedText inGraveString = new SimpleDelimitedText('`');
- final DelimitedText inChar = new SimpleDelimitedText('\'');
+ final DelimitedText inString = new QuoteDelimitedText('"');
+ final DelimitedText inGraveString = new QuoteDelimitedText('`');
+ final DelimitedText inChar = new QuoteDelimitedText('\'');
final DelimitedText inTag = new XmlTagDelimitedText();
delimitedTexts = state(
View
38 ...rge.vrapper.core/src/net/sourceforge/vrapper/vim/modes/commandline/CommandLineParser.java
@@ -320,24 +320,26 @@ private static Evaluator buildConfigEvaluator() {
}
}
// overwrites hlsearch/nohlsearch commands
- Evaluator numberToggle = new OptionDependentEvaluator(Options.LINE_NUMBERS, ConfigAction.NO_LINE_NUMBERS, ConfigAction.LINE_NUMBERS);
- Evaluator listToggle = new OptionDependentEvaluator(Options.SHOW_WHITESPACE, ConfigAction.NO_SHOW_WHITESPACE, ConfigAction.SHOW_WHITESPACE);
config.add("globalregisters", ConfigAction.GLOBAL_REGISTERS);
config.add("noglobalregisters", ConfigAction.NO_GLOBAL_REGISTERS);
config.add("localregisters", ConfigAction.NO_GLOBAL_REGISTERS);
config.add("nolocalregisters", ConfigAction.GLOBAL_REGISTERS);
- config.add("number", ConfigAction.LINE_NUMBERS);
- config.add("nonumber", ConfigAction.NO_LINE_NUMBERS);
- config.add("nu", ConfigAction.LINE_NUMBERS);
- config.add("nonu", ConfigAction.NO_LINE_NUMBERS);
- config.add("number!", numberToggle);
- config.add("nu!", numberToggle);
- config.add("list", ConfigAction.SHOW_WHITESPACE);
- config.add("nolist", ConfigAction.NO_SHOW_WHITESPACE);
- config.add("list!", listToggle);
+ addActionsToBooleanOption(config, Options.LINE_NUMBERS, ConfigAction.LINE_NUMBERS, ConfigAction.NO_LINE_NUMBERS);
+ addActionsToBooleanOption(config, Options.SHOW_WHITESPACE, ConfigAction.SHOW_WHITESPACE, ConfigAction.NO_SHOW_WHITESPACE);
+ addActionsToBooleanOption(config, Options.HIGHLIGHT_CURSOR_LINE, ConfigAction.HIGHLIGHT_CURSOR_LINE, ConfigAction.NO_HIGHLIGHT_CURSOR_LINE);
return config;
}
+
+ private static void addActionsToBooleanOption(EvaluatorMapping config,
+ Option<Boolean> option, ConfigAction enable, ConfigAction disable) {
+ Evaluator toggle = new OptionDependentEvaluator(option, disable, enable);
+ for (String alias : option.getAllNames()) {
+ config.add(alias, enable);
+ config.add("no" + alias, disable);
+ config.add(alias + "!", toggle);
+ }
+ }
public CommandLineParser(EditorAdaptor vim) {
super(vim);
@@ -500,6 +502,20 @@ public Object evaluate(EditorAdaptor vim, Queue<String> command) {
vim.getEditorSettings().setShowWhitespace(false);
return null;
}
+ },
+ HIGHLIGHT_CURSOR_LINE {
+ public Object evaluate(EditorAdaptor vim, Queue<String> command) {
+ vim.getConfiguration().set(Options.HIGHLIGHT_CURSOR_LINE, Boolean.TRUE);
+ vim.getEditorSettings().setHighlightCursorLine(true);
+ return null;
+ }
+ },
+ NO_HIGHLIGHT_CURSOR_LINE {
+ public Object evaluate(EditorAdaptor vim, Queue<String> command) {
+ vim.getConfiguration().set(Options.HIGHLIGHT_CURSOR_LINE, Boolean.FALSE);
+ vim.getEditorSettings().setHighlightCursorLine(false);
+ return null;
+ }
}
;
}
View
6 net.sourceforge.vrapper.eclipse.cdt.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="net.sourceforge.vrapper.eclipse.cdt.feature"
label="Vrapper - C/C++ Extensions (Optional, requires CDT)"
- version="0.29.20130216"
+ version="0.29.20130309"
provider-name="Vrapper Team">
<description url="http://vrapper.sourceforge.net/documentation/">
@@ -691,8 +691,8 @@ Public License instead of this License. But first, please read
</license>
<requires>
- <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130216" match="greaterOrEqual"/>
- <import feature="net.sourceforge.vrapper" version="0.29.20130216"/>
+ <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130309" match="greaterOrEqual"/>
+ <import feature="net.sourceforge.vrapper" version="0.29.20130309"/>
<import plugin="org.eclipse.cdt.ui" version="5.1.1" match="compatible"/>
</requires>
View
4 net.sourceforge.vrapper.eclipse.cdt/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vrapper - CDT-specific plugin
Bundle-SymbolicName: net.sourceforge.vrapper.eclipse.cdt;singleton:=true
-Bundle-Version: 0.29.20130216
-Fragment-Host: net.sourceforge.vrapper.eclipse;bundle-version="0.29.20130216"
+Bundle-Version: 0.29.20130309
+Fragment-Host: net.sourceforge.vrapper.eclipse;bundle-version="0.29.20130309"
Require-Bundle: org.eclipse.cdt.ui;bundle-version="5.1.1"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
View
6 net.sourceforge.vrapper.eclipse.jdt.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="net.sourceforge.vrapper.eclipse.jdt.feature"
label="Vrapper - Java Extensions (Optional, requires JDT)"
- version="0.29.20130216"
+ version="0.29.20130309"
provider-name="Vrapper Team">
<description url="http://vrapper.sourceforge.net/documentation/">
@@ -861,8 +861,8 @@ Public License instead of this License. But first, please read
<requires>
<import plugin="org.eclipse.jdt.ui" version="3.5.1" match="greaterOrEqual"/>
- <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130216" match="greaterOrEqual"/>
- <import feature="net.sourceforge.vrapper" version="0.29.20130216"/>
+ <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130309" match="greaterOrEqual"/>
+ <import feature="net.sourceforge.vrapper" version="0.29.20130309"/>
</requires>
<plugin
View
4 net.sourceforge.vrapper.eclipse.jdt/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vrapper - JDT enchantments
Bundle-SymbolicName: net.sourceforge.vrapper.eclipse.jdt;singleton:=true
-Bundle-Version: 0.29.20130216
-Fragment-Host: net.sourceforge.vrapper.eclipse;bundle-version="0.29.20130216"
+Bundle-Version: 0.29.20130309
+Fragment-Host: net.sourceforge.vrapper.eclipse;bundle-version="0.29.20130309"
Require-Bundle: org.eclipse.jdt.ui;bundle-version="3.5.1"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
View
6 net.sourceforge.vrapper.eclipse.pydev.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="net.sourceforge.vrapper.eclipse.pydev.feature"
label="Vrapper - Python Extensions (Optional, requires PyDev)"
- version="0.29.20130216"
+ version="0.29.20130309"
provider-name="Vrapper Team">
<description url="http://vrapper.sourceforge.net/documentation/">
@@ -861,8 +861,8 @@ Public License instead of this License. But first, please read
<requires>
<import plugin="org.python.pydev" version="2.6.0" match="greaterOrEqual"/>
- <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130216" match="greaterOrEqual"/>
- <import feature="net.sourceforge.vrapper" version="0.29.20130216"/>
+ <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130309" match="greaterOrEqual"/>
+ <import feature="net.sourceforge.vrapper" version="0.29.20130309"/>
</requires>
<plugin
View
4 net.sourceforge.vrapper.eclipse.pydev/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vrapper - PyDev-specific plugin
Bundle-SymbolicName: net.sourceforge.vrapper.eclipse.pydev;singleton:=true
-Bundle-Version: 0.29.20130216
-Fragment-Host: net.sourceforge.vrapper.eclipse;bundle-version="0.29.20130216"
+Bundle-Version: 0.29.20130309
+Fragment-Host: net.sourceforge.vrapper.eclipse;bundle-version="0.29.20130309"
Require-Bundle: org.python.pydev;bundle-version="2.6.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
View
16 net.sourceforge.vrapper.eclipse/.classpath
@@ -3,5 +3,21 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt_3.7.2.v201202080800.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.apt.core_3.3.500.v20110420-1015.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.apt.pluggable.core_1.0.400.v20110305-1450.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.apt.ui_3.3.300.v20110305-1450.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.compiler.apt_1.0.400.v0110816-0800.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.compiler.tool_1.0.100.v_B79_R37x.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.core_3.7.3.v20120119-1537.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.core.manipulation_1.4.0.v20110928-1453.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.debug.ui_3.6.1.v20111006_r372.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.doc.user_3.7.1.r372_v20111103.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.junit_3.7.0.v20110928-1453.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.junit.core_3.7.0.v20110928-1453.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.junit.runtime_3.4.300.v20110928-1453.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.junit4.runtime_1.1.200.v20110928-1453.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.launching_3.6.1.v20111006_r372.jar"/>
+ <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jdt.ui_3.7.2.v20120109-1427.jar"/>
@keforbes
keforbes added a note Mar 9, 2013

Why did you add all of these to the eclipse project? Only our JDT plugin should have dependencies on the JDT jars.

@bdetweiler
bdetweiler added a note Mar 10, 2013

Same story with the file getting pulled in here, but I was experimenting with trying to get Eclipse configuration settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
<classpathentry kind="output" path="bin"/>
</classpath>
View
4 net.sourceforge.vrapper.eclipse/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vrapper
Bundle-SymbolicName: net.sourceforge.vrapper.eclipse;singleton:=true
-Bundle-Version: 0.29.20130216
+Bundle-Version: 0.29.20130309
Bundle-Activator: net.sourceforge.vrapper.eclipse.activator.VrapperPlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.jface.text,
org.eclipse.ui.editors,
org.eclipse.ui.ide,
org.eclipse.core.resources,
- net.sourceforge.vrapper.core;bundle-version="0.29.20130216";visibility:=reexport
+ net.sourceforge.vrapper.core;bundle-version="0.29.20130309";visibility:=reexport
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package: net.sourceforge.vrapper.eclipse.commands;
uses:="net.sourceforge.vrapper.vim.commands.motions,
View
1 ...pper.eclipse/src/net/sourceforge/vrapper/eclipse/keymap/EclipseSpecificStateProvider.java
@@ -100,7 +100,6 @@ public EclipseSpecificStateProvider() {
leafBind('c', dontRepeat(editText("folding.collapse"))),
leafBind('M', dontRepeat(editText("folding.collapse_all")))),
transitionBind('g',
- leafBind('o', dontRepeat(cmd("org.eclipse.ui.window.showContextMenu"))),
leafBind('t', (Command)ChangeTabCommand.NEXT_EDITOR),
leafBind('T', (Command)ChangeTabCommand.PREVIOUS_EDITOR)),
leafCtrlBind('f', dontRepeat(go("pageDown"))),
View
4 ...pper.eclipse/src/net/sourceforge/vrapper/eclipse/platform/AbstractTextEditorSettings.java
@@ -44,6 +44,10 @@ public void setShowWhitespace(boolean show) {
EditorsUI.getPreferenceStore().setValue(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SHOW_WHITESPACE_CHARACTERS , show);
}
+ public void setHighlightCursorLine(boolean highlight) {
+ EditorsUI.getPreferenceStore().setValue(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE , highlight);
+ }
+
public void disableInputMethod() {
//Reset IME (Input Method editor) so Japanese keyboards can use normal-mode's key-bindings
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
View
5 ...apper.eclipse/src/net/sourceforge/vrapper/eclipse/platform/EclipseCursorAndSelection.java
@@ -176,10 +176,7 @@ public void setSelection(Selection newSelection) {
// is placed in the line below the selection by eclipse. this
// corrects that behaviour
if (ContentType.LINES.equals(newSelection.getContentType(configuration))) {
- if (newSelection.isReversed()) {
- from -= 1;
- length += 1;
- } else {
+ if (!newSelection.isReversed()) {
length -=1;
}
}
View
4 net.sourceforge.vrapper.plugin.surround.core/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vrapper Surround Plug-in Core
Bundle-SymbolicName: net.sourceforge.vrapper.plugin.surround.core;singleton:=true
-Bundle-Version: 0.29.20130216
+Bundle-Version: 0.29.20130309
Export-Package: net.sourceforge.vrapper.plugin.surround.commands,
net.sourceforge.vrapper.plugin.surround.state
-Require-Bundle: net.sourceforge.vrapper.core;bundle-version="0.29.20130216";visibility:=reexport
+Require-Bundle: net.sourceforge.vrapper.core;bundle-version="0.29.20130309";visibility:=reexport
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Eclipse-BuddyPolicy: dependent
View
4 net.sourceforge.vrapper.plugin.surround.eclipse/META-INF/MANIFEST.MF
@@ -2,8 +2,8 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Vrapper Surround Plug-in Eclipse integration
Bundle-SymbolicName: net.sourceforge.vrapper.plugin.surround.eclipse;singleton:=true
-Bundle-Version: 0.29.20130216
+Bundle-Version: 0.29.20130309
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: net.sourceforge.vrapper.plugin.surround.core;bundle-version="0.29.20130216";visibility:=reexport,
+Require-Bundle: net.sourceforge.vrapper.plugin.surround.core;bundle-version="0.29.20130309";visibility:=reexport,
net.sourceforge.vrapper.eclipse
Eclipse-BuddyPolicy: dependent
View
6 net.sourceforge.vrapper.plugin.surround.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="net.sourceforge.vrapper.plugin.surround"
label="Vrapper - Surround.vim Plugin (Optional)"
- version="0.29.20130216"
+ version="0.29.20130309"
provider-name="Vrapper Team">
<description url="http://vrapper.sourceforge.net/documentation/">
@@ -861,8 +861,8 @@ Public License instead of this License. But first, please read
</license>
<requires>
- <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130216" match="greaterOrEqual"/>
- <import feature="net.sourceforge.vrapper" version="0.29.20130216"/>
+ <import plugin="net.sourceforge.vrapper.eclipse" version="0.29.20130309" match="greaterOrEqual"/>
+ <import feature="net.sourceforge.vrapper" version="0.29.20130309"/>
</requires>
<plugin
View
2 vrapper-unstable-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="net.sourceforge.vrapper"
label="Vrapper Unstable"
- version="0.29.20130216"
+ version="0.29.20130309"
provider-name="Vrapper Team">
<description url="http://vrapper.sourceforge.net/documentation/">
View
10 vrapper-unstable-update-site/site.xml
@@ -3,19 +3,19 @@
<description name="Vrapper Unstable" url="http://vrapper.sourceforge.net/update-site/unstable">
Unstable releases of Vrapper for testing.
</description>
- <feature url="features/net.sourceforge.vrapper_0.29.20130216.jar" id="net.sourceforge.vrapper" version="0.29.20130216">
+ <feature url="features/net.sourceforge.vrapper_0.29.20130309.jar" id="net.sourceforge.vrapper" version="0.29.20130309">
<category name="Vrapper Unstable"/>
</feature>
- <feature url="features/net.sourceforge.vrapper.eclipse.cdt.feature_0.29.20130216.jar" id="net.sourceforge.vrapper.eclipse.cdt.feature" version="0.29.20130216">
+ <feature url="features/net.sourceforge.vrapper.eclipse.cdt.feature_0.29.20130309.jar" id="net.sourceforge.vrapper.eclipse.cdt.feature" version="0.29.20130309">
<category name="Vrapper Unstable"/>
</feature>
- <feature url="features/net.sourceforge.vrapper.eclipse.jdt.feature_0.29.20130216.jar" id="net.sourceforge.vrapper.eclipse.jdt.feature" version="0.29.20130216">
+ <feature url="features/net.sourceforge.vrapper.eclipse.jdt.feature_0.29.20130309.jar" id="net.sourceforge.vrapper.eclipse.jdt.feature" version="0.29.20130309">
<category name="Vrapper Unstable"/>
</feature>
- <feature url="features/net.sourceforge.vrapper.plugin.surround_0.29.20130216.jar" id="net.sourceforge.vrapper.plugin.surround" version="0.29.20130216">
+ <feature url="features/net.sourceforge.vrapper.plugin.surround_0.29.20130309.jar" id="net.sourceforge.vrapper.plugin.surround" version="0.29.20130309">
<category name="Vrapper Unstable"/>
</feature>
- <feature url="features/net.sourceforge.vrapper.eclipse.pydev.feature_0.29.20130216.jar" id="net.sourceforge.vrapper.eclipse.pydev.feature" version="0.29.20130216">
+ <feature url="features/net.sourceforge.vrapper.eclipse.pydev.feature_0.29.20130309.jar" id="net.sourceforge.vrapper.eclipse.pydev.feature" version="0.29.20130309">
<category name="Vrapper Unstable"/>
</feature>
<category-def name="Vrapper Unstable" label="Vrapper Unstable">
View
9 website/documentation/commandline_commands.html
@@ -191,7 +191,14 @@
There are lists with action ids for
<a href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/texteditor/IWorkbenchActionDefinitionIds.html">workbench</a>,
<a href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/texteditor/ITextEditorActionDefinitionIds.html">text editors</a>,
- and <a href="http://help.eclipse.org/ganymede/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/ui/actions/IJavaEditorActionDefinitionIds.html">java editors</a>.</td>
+ and <a href="http://help.eclipse.org/ganymede/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/ui/actions/IJavaEditorActionDefinitionIds.html">java editors</a>.
+ <br/><br/>
+ For example, if I wanted to define an action for JDT's "Find all References in Workspace" I would put the following in my .vrapperrc file:<br/>
+ <b>eclipseaction findref org.eclipse.jdt.ui.edit.text.java.search.references.in.workspace</b><br/>
+ I could then call that command with <b>:findref</b><br/>
+ If I wanted to map that action to the keys 'gr' I would put this in my .vrapperrc file:<br/>
+ <b>nmap gr :findref&lt;enter&gt;</b>
+ </td>
</tr>
<tr>
<td>:eclipseaction!&nbsp;&lt;name&gt;&nbsp;&lt;id&gt;</td>
View
39 website/home/news.php
@@ -1,4 +1,43 @@
<div class="newsbox">
+ <div class="date">2013-03-09</div>
+ <h4>More updates to unstable update site</h4>
+ <p>It's been over a month since my last update so I decided to look
+ through our commit log and see what we've been working on lately. Here
+ is the list of changes to the unstable update site since my last news post:</p>
+ <ul>
+ <li>Added support for '**' in path variable</li>
+ <ul>
+ <li>e.g., :set path=src/main/java/**</li>
+ <li>Tells :find to search all subdirectories for a filename</li>
+ </ul>
+ <li>Added support for :source</li>
+ <ul>
+ <li>You can now "source .vimrc" in your .vrapperrc</li>
+ </ul>
+ <li>Added support for 'cursorline' option</li>
+ <ul>
+ <li>enable/disable highlighting line with cursor</li>
+ </ul>
+ <li>Create new file when ":e &lt;filename&gt;" doesn't exist</li>
+ <li>Added support for :tabonly (alias of :only)</li>
+ <li>Added support for :tabf (alias of :find)</li>
+ <li>Allow '+' to be omitted in line range operations</li>
+ <ul>
+ <li>".5" == ".+5"</li>
+ </ul>
+ <li>Fixed behavior with quote text objects to match Vim's behavior</li>
+ <ul>
+ <li>ci" will only look for quotes on current line now</li>
+ </ul>
+ <li>Fixed issue with escaping delimiter character in substitution</li>
+ <li>Fixed a couple defects in sentence motions, paragraph motions, and joining multiple lines</li>
+ </ul>
+
+ <p>I've received a lot of help from contributors in this last month, which
+ makes me feel like things are moving quickly. I still think a two-month release
+ cycle works well for us though, so I'll probably wait until the end of March to release this next version.</p>
+</div>
+<div class="newsbox">
<div class="date">2013-02-03</div>
<h4>Updates to unstable update site</h4>
<p>When I released 0.28.0 a couple days ago I mentioned that I wanted to release it mostly because

0 comments on commit d96a25a

Please sign in to comment.
Something went wrong with that request. Please try again.