本文整理汇总了Java中com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler类的典型用法代码示例。如果您正苦于以下问题:Java EditorWriteActionHandler类的具体用法?Java EditorWriteActionHandler怎么用?Java EditorWriteActionHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EditorWriteActionHandler类属于com.intellij.openapi.editor.actionSystem包,在下文中一共展示了EditorWriteActionHandler类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: createExpandTemplateHandler
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
static EditorWriteActionHandler createExpandTemplateHandler(final char shortcutChar) {
return new EditorWriteActionHandler(true) {
@Override
public void executeWriteAction(Editor editor, @Nullable Caret caret, DataContext dataContext) {
Project project = editor.getProject();
assert project != null;
TemplateManager.getInstance(project).startTemplate(editor, shortcutChar);
}
@Override
protected boolean isEnabledForCaret(@NotNull Editor editor, @NotNull Caret caret, DataContext dataContext) {
Project project = editor.getProject();
return project != null &&
((TemplateManagerImpl)TemplateManager.getInstance(project)).prepareTemplate(editor, shortcutChar, null) != null;
}
};
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:ExpandLiveTemplateCustomAction.java
示例2: doExecute
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
@Override
protected final void doExecute(final Editor editor, @Nullable final Caret caret, final DataContext dataContext) {
final Pair<Boolean, T> additionalParameter = beforeWriteAction(editor, dataContext);
if (!additionalParameter.first) {
return;
}
final Runnable runnable = new Runnable() {
@Override
public void run() {
executeWriteAction(editor, caret, dataContext, additionalParameter.second);
}
};
new EditorWriteActionHandler(false) {
@Override
public void executeWriteAction(Editor editor1, @Nullable Caret caret1, DataContext dataContext1) {
runnable.run();
}
}.doExecute(editor, caret, dataContext);
}
开发者ID:krasa,项目名称:StringManipulation,代码行数:21,代码来源:MyEditorWriteActionHandler.java
示例3: createExpandTemplateHandler
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
public static EditorWriteActionHandler createExpandTemplateHandler(final char shortcutChar) {
return new EditorWriteActionHandler(true) {
@Override
public void executeWriteAction(Editor editor, @Nullable Caret caret, DataContext dataContext) {
Project project = editor.getProject();
assert project != null;
TemplateManager.getInstance(project).startTemplate(editor, shortcutChar);
}
@Override
protected boolean isEnabledForCaret(@Nonnull Editor editor, @Nonnull Caret caret, DataContext dataContext) {
Project project = editor.getProject();
return project != null &&
((TemplateManagerImpl)TemplateManager.getInstance(project)).prepareTemplate(editor, shortcutChar, null) != null;
}
};
}
开发者ID:consulo,项目名称:consulo,代码行数:18,代码来源:ExpandLiveTemplateCustomAction.java
示例4: RemoveEmptyLinesAction
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
public RemoveEmptyLinesAction() {
super(new EditorWriteActionHandler(true) {
@Override
public void executeWriteAction(Editor editor, DataContext dataContext) {
// Column mode not supported
if (editor.isColumnMode()) {
return;
}
final SelectionModel selectionModel = editor.getSelectionModel();
if (selectionModel.hasSelection()) {
final String selectedText = selectionModel.getSelectedText();
String[] textParts = selectedText.split("\n");
Collection<String> result = new ArrayList<String>();
for (String textPart : textParts) {
if (StringUtils.isNotBlank(textPart)) {
result.add(textPart);
}
}
String[] res = result.toArray(new String[result.size()]);
final String s = StringUtils.join(res, '\n');
editor.getDocument().replaceString(selectionModel.getSelectionStart(),
selectionModel.getSelectionEnd(), s);
}
}
});
}
开发者ID:krasa,项目名称:StringManipulation,代码行数:36,代码来源:RemoveEmptyLinesAction.java
示例5: DecrementAction
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
public DecrementAction() {
super(null);
this.setupHandler(new EditorWriteActionHandler(true) {
@Override
public void executeWriteAction(Editor editor, DataContext dataContext) {
// Column mode not supported
if (editor.isColumnMode()) {
return;
}
final CaretModel caretModel = editor.getCaretModel();
final int line = caretModel.getLogicalPosition().line;
final int column = caretModel.getLogicalPosition().column;
int caretOffset = caretModel.getOffset();
final SelectionModel selectionModel = editor.getSelectionModel();
boolean hasSelection = selectionModel.hasSelection();
if (hasSelection == false) {
selectionModel.selectLineAtCaret();
}
final String selectedText = selectionModel.getSelectedText();
if (selectedText != null) {
String[] textParts = StringUtil.splitPreserveAllTokens(selectedText,
DuplicatUtils.SIMPLE_NUMBER_REGEX);
for (int i = 0; i < textParts.length; i++) {
textParts[i] = DuplicatUtils.simpleDec(textParts[i]);
}
final String newText = StringUtils.join(textParts);
applyChanges(editor, caretModel, line, column, selectionModel, hasSelection, newText, caretOffset);
}
}
});
}
开发者ID:krasa,项目名称:StringManipulation,代码行数:37,代码来源:DecrementAction.java
示例6: IncrementAction
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
public IncrementAction() {
super(null);
this.setupHandler(new EditorWriteActionHandler(true) {
@Override
public void executeWriteAction(Editor editor, DataContext dataContext) {
// Column mode not supported
if (editor.isColumnMode()) {
return;
}
final CaretModel caretModel = editor.getCaretModel();
final int line = caretModel.getLogicalPosition().line;
final int column = caretModel.getLogicalPosition().column;
int caretOffset = caretModel.getOffset();
final SelectionModel selectionModel = editor.getSelectionModel();
boolean hasSelection = selectionModel.hasSelection();
if (hasSelection == false) {
selectionModel.selectLineAtCaret();
}
final String selectedText = selectionModel.getSelectedText();
if (selectedText != null) {
String[] textParts = StringUtil.splitPreserveAllTokens(selectedText,
DuplicatUtils.SIMPLE_NUMBER_REGEX);
for (int i = 0; i < textParts.length; i++) {
textParts[i] = DuplicatUtils.simpleInc(textParts[i]);
}
final String newText = StringUtils.join(textParts);
applyChanges(editor, caretModel, line, column, selectionModel, hasSelection, selectedText, newText,
caretOffset);
}
}
});
}
开发者ID:krasa,项目名称:StringManipulation,代码行数:40,代码来源:IncrementAction.java
示例7: handleInsert
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
@Override
@RequiredWriteAction
public void handleInsert(final InsertionContext context, final T item)
{
final Editor editor = context.getEditor();
final Document document = editor.getDocument();
context.commitDocument();
PsiElement elementAt = context.getFile().findElementAt(context.getStartOffset());
handleInsertImpl(context, item, editor, document);
if(myOpenChar == '{')
{
document.insertString(editor.getCaretModel().getOffset(), "\n");
}
context.commitDocument();
if(elementAt != null)
{
PsiElement parent = elementAt.getParent();
CodeStyleManager.getInstance(elementAt.getProject()).reformat(parent);
if(myOpenChar == '{')
{
EditorWriteActionHandler actionHandler = (EditorWriteActionHandler) EditorActionManager.getInstance().getActionHandler(IdeActions.ACTION_EDITOR_ENTER);
actionHandler.executeWriteAction(editor, DataManager.getInstance().getDataContext(editor.getContentComponent()));
}
}
}
开发者ID:consulo,项目名称:consulo-csharp,代码行数:29,代码来源:ExpressionOrStatementInsertHandler.java
示例8: extend
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; //导入依赖的package包/类
static void extend(CompletionContributor contributor)
{
contributor.extend(CompletionType.BASIC, psiElement().andNot(psiElement().inside(DotNetXXXAccessor.class)), new CompletionProvider()
{
@RequiredReadAction
@Override
public void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet resultSet)
{
PsiElement position = completionParameters.getPosition();
final CSharpXXXAccessorOwner accessorOwner = PsiTreeUtil.getParentOfType(position, CSharpXXXAccessorOwner.class);
if(accessorOwner == null)
{
return;
}
PsiElement leftBrace = accessorOwner.getLeftBrace();
if(leftBrace == null)
{
return;
}
int textOffset = position.getTextOffset();
PsiElement rightBrace = accessorOwner.getRightBrace();
int rightTextRange = rightBrace == null ? -1 : rightBrace.getTextOffset();
if((rightTextRange == -1 || textOffset < rightTextRange) && textOffset > leftBrace.getTextOffset())
{
if(accessorOwner.hasModifier(DotNetModifier.ABSTRACT))
{
buildAccessorKeywordsCompletion(resultSet, accessorOwner, null);
}
else
{
buildAccessorKeywordsCompletion(resultSet, accessorOwner, new InsertHandler<LookupElement>()
{
@Override
@RequiredWriteAction
public void handleInsert(InsertionContext context, LookupElement item)
{
if(context.getCompletionChar() == '{')
{
context.setAddCompletionChar(false);
Editor editor = context.getEditor();
CaretModel caretModel = editor.getCaretModel();
int offset = caretModel.getOffset();
context.getDocument().insertString(offset, "{\n}");
caretModel.moveToOffset(offset + 1);
PsiElement elementAt = context.getFile().findElementAt(offset - 1);
context.commitDocument();
DotNetXXXAccessor accessor = PsiTreeUtil.getParentOfType(elementAt, DotNetXXXAccessor.class);
if(accessor != null)
{
CodeStyleManager.getInstance(context.getProject()).reformat(accessor);
}
EditorWriteActionHandler actionHandler = (EditorWriteActionHandler) EditorActionManager.getInstance().getActionHandler(IdeActions.ACTION_EDITOR_ENTER);
actionHandler.executeWriteAction(editor, DataManager.getInstance().getDataContext(editor.getContentComponent()));
}
}
});
}
}
}
});
}
开发者ID:consulo,项目名称:consulo-csharp,代码行数:71,代码来源:CSharpAccessorCompletionContributor.java
注:本文中的com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论