mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2025-08-17 16:31:45 +02:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f3b4726b34 | ||
![]() |
30d7c6edf1 | ||
![]() |
f33f73d2f5 | ||
![]() |
b595dfd443 | ||
![]() |
a3e15b5c76 | ||
![]() |
31d85c0221 | ||
![]() |
124bd55e18 | ||
![]() |
bb9b5b5bde |
13
CHANGES.md
13
CHANGES.md
@@ -16,6 +16,19 @@ It is important to distinguish EAP from traditional pre-release software.
|
|||||||
Please note that the quality of EAP versions may at times be way below even
|
Please note that the quality of EAP versions may at times be way below even
|
||||||
usual beta standards.
|
usual beta standards.
|
||||||
|
|
||||||
|
To Be Released
|
||||||
|
--------------
|
||||||
|
|
||||||
|
0.47, 2016-10-19
|
||||||
|
----------------
|
||||||
|
|
||||||
|
A bugfix release.
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
|
||||||
|
* VIM-1098 Don't start visual selection when mouse click was actually drag over single character
|
||||||
|
* VIM-1190 Fixed exception "Write access is allowed from write-safe contexts only"
|
||||||
|
|
||||||
|
|
||||||
0.46, 2016-07-07
|
0.46, 2016-07-07
|
||||||
----------------
|
----------------
|
||||||
|
19
build.gradle
19
build.gradle
@@ -1,7 +1,19 @@
|
|||||||
plugins {
|
buildscript {
|
||||||
id "org.jetbrains.intellij" version "0.0.39"
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
maven {
|
||||||
|
url "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||||
|
}
|
||||||
|
maven {
|
||||||
|
url 'http://dl.bintray.com/jetbrains/intellij-plugin-service'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.2.0-SNAPSHOT"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apply plugin: 'org.jetbrains.intellij'
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
|
|
||||||
sourceCompatibility = javaVersion
|
sourceCompatibility = javaVersion
|
||||||
@@ -26,8 +38,7 @@ intellij {
|
|||||||
downloadSources Boolean.valueOf(downloadIdeaSources)
|
downloadSources Boolean.valueOf(downloadIdeaSources)
|
||||||
|
|
||||||
publish {
|
publish {
|
||||||
pluginId '164'
|
channels publishChannels
|
||||||
channel publishChannel
|
|
||||||
username publishUsername
|
username publishUsername
|
||||||
password publishPassword
|
password publishPassword
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
ideaVersion IC-15.0.2
|
ideaVersion IC-15.0.5
|
||||||
downloadIdeaSources true
|
downloadIdeaSources true
|
||||||
version SNAPSHOT
|
version SNAPSHOT
|
||||||
javaVersion 1.6
|
javaVersion 1.6
|
||||||
publishUsername username
|
publishUsername username
|
||||||
publishPassword password
|
publishPassword password
|
||||||
publishChannel eap
|
publishChannels eap
|
||||||
|
@@ -2,6 +2,10 @@
|
|||||||
<name>IdeaVim</name>
|
<name>IdeaVim</name>
|
||||||
<id>IdeaVIM</id>
|
<id>IdeaVIM</id>
|
||||||
<change-notes><![CDATA[
|
<change-notes><![CDATA[
|
||||||
|
<p>0.47:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Various bug fixes</li>
|
||||||
|
</ul>
|
||||||
<p>0.46:</p>
|
<p>0.46:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Support for <code>incsearch</code> option for showing search results while typing</li>
|
<li>Support for <code>incsearch</code> option for showing search results while typing</li>
|
||||||
@@ -32,28 +36,6 @@
|
|||||||
<li>Support comments in <code>%</code> brace matching</li>
|
<li>Support comments in <code>%</code> brace matching</li>
|
||||||
<li>Various bug fixes</li>
|
<li>Various bug fixes</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>0.39:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Various bug fixes</li>
|
|
||||||
</ul>
|
|
||||||
<p>0.38:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Support for <code>:action</code> and <code>:actionlist</code> for executing arbitrary IDE actions</li>
|
|
||||||
<li>Support for <code>number</code> and <code>relativenumber</code> options</li>
|
|
||||||
<li>Support for <code>clipboard=unnamed</code> option</li>
|
|
||||||
<li>Various bug fixes</li>
|
|
||||||
</ul>
|
|
||||||
<p>0.37:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Various bug fixes</li>
|
|
||||||
</ul>
|
|
||||||
<p>0.36:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Window commands from the <code><C-W></code> family</li>
|
|
||||||
<li>Support for <code>:split</code>/<code>:vsplit</code> commands</li>
|
|
||||||
<li>Fixed visual block selection mode</li>
|
|
||||||
<li>Various bug fixes</li>
|
|
||||||
</ul>
|
|
||||||
<p>See also the complete <a href="https://github.com/JetBrains/ideavim/blob/master/CHANGES.md">changelog</a>.</p>
|
<p>See also the complete <a href="https://github.com/JetBrains/ideavim/blob/master/CHANGES.md">changelog</a>.</p>
|
||||||
]]></change-notes>
|
]]></change-notes>
|
||||||
<description><![CDATA[
|
<description><![CDATA[
|
||||||
|
@@ -21,6 +21,7 @@ package com.maddyhome.idea.vim;
|
|||||||
import com.intellij.codeInsight.lookup.Lookup;
|
import com.intellij.codeInsight.lookup.Lookup;
|
||||||
import com.intellij.codeInsight.lookup.LookupManager;
|
import com.intellij.codeInsight.lookup.LookupManager;
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.intellij.openapi.editor.actionSystem.TypedActionHandler;
|
import com.intellij.openapi.editor.actionSystem.TypedActionHandler;
|
||||||
@@ -50,7 +51,7 @@ public class VimTypedActionHandler implements TypedActionHandler {
|
|||||||
public void execute(@NotNull final Editor editor, final char charTyped, @NotNull final DataContext context) {
|
public void execute(@NotNull final Editor editor, final char charTyped, @NotNull final DataContext context) {
|
||||||
if (isEnabled(editor)) {
|
if (isEnabled(editor)) {
|
||||||
// Run key handler outside of the key typed command for creating our own undoable commands
|
// Run key handler outside of the key typed command for creating our own undoable commands
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
|
@@ -24,6 +24,7 @@ import com.intellij.notification.Notification;
|
|||||||
import com.intellij.notification.NotificationListener;
|
import com.intellij.notification.NotificationListener;
|
||||||
import com.intellij.notification.NotificationType;
|
import com.intellij.notification.NotificationType;
|
||||||
import com.intellij.openapi.actionSystem.*;
|
import com.intellij.openapi.actionSystem.*;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.intellij.openapi.keymap.KeymapUtil;
|
import com.intellij.openapi.keymap.KeymapUtil;
|
||||||
@@ -99,7 +100,7 @@ public class VimShortcutKeyAction extends AnAction implements DumbAware {
|
|||||||
}
|
}
|
||||||
// Should we use InjectedLanguageUtil.getTopLevelEditor(editor) here, as we did in former EditorKeyHandler?
|
// Should we use InjectedLanguageUtil.getTopLevelEditor(editor) here, as we did in former EditorKeyHandler?
|
||||||
// Run key handler later to restore input events sequence due to VimTypedActionHandler
|
// Run key handler later to restore input events sequence due to VimTypedActionHandler
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
package com.maddyhome.idea.vim.ex.handler;
|
package com.maddyhome.idea.vim.ex.handler;
|
||||||
|
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.maddyhome.idea.vim.KeyHandler;
|
import com.maddyhome.idea.vim.KeyHandler;
|
||||||
import com.maddyhome.idea.vim.VimPlugin;
|
import com.maddyhome.idea.vim.VimPlugin;
|
||||||
@@ -29,8 +30,6 @@ import com.maddyhome.idea.vim.ex.ExException;
|
|||||||
import com.maddyhome.idea.vim.helper.EditorDataContext;
|
import com.maddyhome.idea.vim.helper.EditorDataContext;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import javax.swing.*;
|
|
||||||
|
|
||||||
public class EditFileHandler extends CommandHandler {
|
public class EditFileHandler extends CommandHandler {
|
||||||
public EditFileHandler() {
|
public EditFileHandler() {
|
||||||
super(new CommandName[]{
|
super(new CommandName[]{
|
||||||
@@ -56,7 +55,7 @@ public class EditFileHandler extends CommandHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Don't open a choose file dialog under a write action
|
// Don't open a choose file dialog under a write action
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
KeyHandler.executeAction("OpenFile", new EditorDataContext(editor));
|
KeyHandler.executeAction("OpenFile", new EditorDataContext(editor));
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
package com.maddyhome.idea.vim.ex.handler;
|
package com.maddyhome.idea.vim.ex.handler;
|
||||||
|
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.maddyhome.idea.vim.KeyHandler;
|
import com.maddyhome.idea.vim.KeyHandler;
|
||||||
import com.maddyhome.idea.vim.VimPlugin;
|
import com.maddyhome.idea.vim.VimPlugin;
|
||||||
@@ -27,8 +28,6 @@ import com.maddyhome.idea.vim.ex.ExCommand;
|
|||||||
import com.maddyhome.idea.vim.ex.ExException;
|
import com.maddyhome.idea.vim.ex.ExException;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import javax.swing.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@@ -48,7 +47,7 @@ public class FindClassHandler extends CommandHandler {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
KeyHandler.executeAction("GotoClass", context);
|
KeyHandler.executeAction("GotoClass", context);
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
package com.maddyhome.idea.vim.ex.handler;
|
package com.maddyhome.idea.vim.ex.handler;
|
||||||
|
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.maddyhome.idea.vim.KeyHandler;
|
import com.maddyhome.idea.vim.KeyHandler;
|
||||||
import com.maddyhome.idea.vim.VimPlugin;
|
import com.maddyhome.idea.vim.VimPlugin;
|
||||||
@@ -27,8 +28,6 @@ import com.maddyhome.idea.vim.ex.ExCommand;
|
|||||||
import com.maddyhome.idea.vim.ex.ExException;
|
import com.maddyhome.idea.vim.ex.ExException;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import javax.swing.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@@ -48,7 +47,7 @@ public class FindFileHandler extends CommandHandler {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
KeyHandler.executeAction("GotoFile", context);
|
KeyHandler.executeAction("GotoFile", context);
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
package com.maddyhome.idea.vim.ex.handler;
|
package com.maddyhome.idea.vim.ex.handler;
|
||||||
|
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.maddyhome.idea.vim.KeyHandler;
|
import com.maddyhome.idea.vim.KeyHandler;
|
||||||
import com.maddyhome.idea.vim.ex.CommandHandler;
|
import com.maddyhome.idea.vim.ex.CommandHandler;
|
||||||
@@ -26,8 +27,6 @@ import com.maddyhome.idea.vim.ex.ExCommand;
|
|||||||
import com.maddyhome.idea.vim.ex.ExException;
|
import com.maddyhome.idea.vim.ex.ExException;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import javax.swing.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@@ -38,7 +37,7 @@ public class FindSymbolHandler extends CommandHandler {
|
|||||||
|
|
||||||
public boolean execute(@NotNull Editor editor, @NotNull final DataContext context, @NotNull ExCommand cmd) throws ExException {
|
public boolean execute(@NotNull Editor editor, @NotNull final DataContext context, @NotNull ExCommand cmd) throws ExException {
|
||||||
// TODO: Check the command argument and jump to a specific symbol
|
// TODO: Check the command argument and jump to a specific symbol
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
KeyHandler.executeAction("GotoSymbol", context);
|
KeyHandler.executeAction("GotoSymbol", context);
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
package com.maddyhome.idea.vim.group;
|
package com.maddyhome.idea.vim.group;
|
||||||
|
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.command.CommandProcessor;
|
import com.intellij.openapi.command.CommandProcessor;
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
@@ -127,7 +128,7 @@ public class MacroGroup {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
CommandProcessor.getInstance().executeCommand(project, run, "Vim Macro Playback", keys.get(pos));
|
CommandProcessor.getInstance().executeCommand(project, run, "Vim Macro Playback", keys.get(pos));
|
||||||
}
|
}
|
||||||
@@ -137,7 +138,7 @@ public class MacroGroup {
|
|||||||
public void postKey(@NotNull KeyStroke stroke, @NotNull Editor editor) {
|
public void postKey(@NotNull KeyStroke stroke, @NotNull Editor editor) {
|
||||||
final Component component = SwingUtilities.getAncestorOfClass(Window.class, editor.getComponent());
|
final Component component = SwingUtilities.getAncestorOfClass(Window.class, editor.getComponent());
|
||||||
final KeyEvent event = createKeyEvent(stroke, component);
|
final KeyEvent event = createKeyEvent(stroke, component);
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
if (logger.isDebugEnabled()) {
|
if (logger.isDebugEnabled()) {
|
||||||
logger.debug("posting " + event);
|
logger.debug("posting " + event);
|
||||||
|
@@ -149,14 +149,11 @@ public class MotionGroup {
|
|||||||
ExOutputModel.getInstance(editor).clear();
|
ExOutputModel.getInstance(editor).clear();
|
||||||
|
|
||||||
CommandState.SubMode visualMode = CommandState.SubMode.NONE;
|
CommandState.SubMode visualMode = CommandState.SubMode.NONE;
|
||||||
switch (event.getClickCount() % 3) {
|
switch (event.getClickCount()) {
|
||||||
case 1: // Single click or quad click
|
case 2:
|
||||||
visualMode = CommandState.SubMode.NONE;
|
|
||||||
break;
|
|
||||||
case 2: // Double click
|
|
||||||
visualMode = CommandState.SubMode.VISUAL_CHARACTER;
|
visualMode = CommandState.SubMode.VISUAL_CHARACTER;
|
||||||
break;
|
break;
|
||||||
case 0: // Triple click
|
case 3:
|
||||||
visualMode = CommandState.SubMode.VISUAL_LINE;
|
visualMode = CommandState.SubMode.VISUAL_LINE;
|
||||||
// Pop state of being in Visual Char mode
|
// Pop state of being in Visual Char mode
|
||||||
if (CommandState.getInstance(editor).getMode() == CommandState.Mode.VISUAL) {
|
if (CommandState.getInstance(editor).getMode() == CommandState.Mode.VISUAL) {
|
||||||
@@ -247,6 +244,7 @@ public class MotionGroup {
|
|||||||
|
|
||||||
int start = editor.getSelectionModel().getSelectionStart();
|
int start = editor.getSelectionModel().getSelectionStart();
|
||||||
int end = editor.getSelectionModel().getSelectionEnd();
|
int end = editor.getSelectionModel().getSelectionEnd();
|
||||||
|
if (start == end) return;
|
||||||
|
|
||||||
if (mode == CommandState.SubMode.VISUAL_LINE) {
|
if (mode == CommandState.SubMode.VISUAL_LINE) {
|
||||||
end--;
|
end--;
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package com.maddyhome.idea.vim.ui;
|
package com.maddyhome.idea.vim.ui;
|
||||||
|
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.ui.components.JBScrollPane;
|
import com.intellij.ui.components.JBScrollPane;
|
||||||
@@ -262,7 +263,7 @@ public class ExOutputPanel extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void close(@Nullable final KeyEvent e) {
|
private void close(@Nullable final KeyEvent e) {
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
deactivate(true);
|
deactivate(true);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user