use of com.intellij.openapi.editor.Editor in project intellij-community by JetBrains.
the class CCAnswerPlaceholderAction method getState.
@Nullable
protected CCState getState(@NotNull AnActionEvent e) {
final Project project = e.getProject();
if (project == null || !CCUtils.isCourseCreator(project)) {
return null;
}
final PsiFile psiFile = CommonDataKeys.PSI_FILE.getData(e.getDataContext());
if (psiFile == null) {
return null;
}
VirtualFile virtualFile = psiFile.getVirtualFile();
if (virtualFile == null) {
return null;
}
final Editor editor = CommonDataKeys.EDITOR.getData(e.getDataContext());
if (editor == null) {
return null;
}
TaskFile taskFile = StudyUtils.getTaskFile(project, virtualFile);
if (taskFile == null) {
return null;
}
AnswerPlaceholder answerPlaceholder = StudyUtils.getAnswerPlaceholder(editor.getCaretModel().getOffset(), getPlaceholders(taskFile));
return new CCState(taskFile, answerPlaceholder, psiFile, editor, project);
}
use of com.intellij.openapi.editor.Editor in project intellij-community by JetBrains.
the class CCDeleteAllAnswerPlaceholdersAction method actionPerformed.
@Override
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
final VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(context);
final Project project = e.getProject();
if (file == null || project == null) {
return;
}
final TaskFile taskFile = StudyUtils.getTaskFile(project, file);
if (taskFile == null) {
return;
}
Editor editor = CommonDataKeys.EDITOR.getData(context);
if (editor == null) {
FileEditorManager instance = FileEditorManager.getInstance(project);
if (!instance.isFileOpen(file)) {
return;
}
FileEditor fileEditor = instance.getSelectedEditor(file);
if (!(fileEditor instanceof TextEditor)) {
return;
}
editor = ((TextEditor) fileEditor).getEditor();
}
List<AnswerPlaceholder> placeholders = new ArrayList<>(taskFile.getAnswerPlaceholders());
final ClearPlaceholders action = new ClearPlaceholders(taskFile, placeholders, editor);
EduUtils.runUndoableAction(project, ACTION_NAME, action, UndoConfirmationPolicy.REQUEST_CONFIRMATION);
}
use of com.intellij.openapi.editor.Editor in project intellij-community by JetBrains.
the class StudyUtils method selectFirstAnswerPlaceholder.
public static void selectFirstAnswerPlaceholder(@Nullable final StudyEditor studyEditor, @NotNull final Project project) {
if (studyEditor == null)
return;
final Editor editor = studyEditor.getEditor();
IdeFocusManager.getInstance(project).requestFocus(editor.getContentComponent(), true);
final List<AnswerPlaceholder> placeholders = studyEditor.getTaskFile().getActivePlaceholders();
if (placeholders.isEmpty())
return;
final AnswerPlaceholder placeholder = placeholders.get(0);
Pair<Integer, Integer> offsets = getPlaceholderOffsets(placeholder, editor.getDocument());
editor.getSelectionModel().setSelection(offsets.first, offsets.second);
editor.getCaretModel().moveToOffset(offsets.first);
editor.getScrollingModel().scrollToCaret(ScrollType.CENTER);
}
use of com.intellij.openapi.editor.Editor in project intellij-community by JetBrains.
the class PyDocstringGenerator method startTemplate.
public void startTemplate() {
Preconditions.checkNotNull(myDocStringOwner, "For this action docstring owner must be supplied");
final PyStringLiteralExpression docStringExpression = getDocStringExpression();
assert docStringExpression != null;
final TemplateBuilder builder = TemplateBuilderFactory.getInstance().createTemplateBuilder(docStringExpression);
if (myAddedParams.size() > 1) {
throw new IllegalArgumentException("TemplateBuilder can be created only for one parameter");
}
final DocstringParam paramToEdit = getParamToEdit();
final DocStringFormat format = myDocStringFormat;
if (format == DocStringFormat.PLAIN) {
return;
}
final StructuredDocString parsed = DocStringUtil.parseDocString(format, docStringExpression);
final Substring substring;
if (paramToEdit.isReturnValue()) {
substring = parsed.getReturnTypeSubstring();
} else {
final String paramName = paramToEdit.getName();
substring = parsed.getParamTypeSubstring(paramName);
}
if (substring == null) {
return;
}
builder.replaceRange(substring.getTextRange(), getDefaultType(getParamToEdit()));
Template template = ((TemplateBuilderImpl) builder).buildInlineTemplate();
final VirtualFile virtualFile = myDocStringOwner.getContainingFile().getVirtualFile();
if (virtualFile == null)
return;
final Project project = myDocStringOwner.getProject();
OpenFileDescriptor descriptor = new OpenFileDescriptor(project, virtualFile, docStringExpression.getTextOffset());
Editor targetEditor = FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
if (targetEditor != null) {
TemplateManager.getInstance(project).startTemplate(targetEditor, template);
}
}
use of com.intellij.openapi.editor.Editor in project intellij-community by JetBrains.
the class ChangeTo method applyFix.
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
PsiElement element = descriptor.getPsiElement();
if (element == null)
return;
Editor editor = PsiUtilBase.findEditor(element);
if (editor == null) {
return;
}
TextRange textRange = ((ProblemDescriptorBase) descriptor).getTextRange();
editor.getSelectionModel().setSelection(textRange.getStartOffset(), textRange.getEndOffset());
String word = editor.getSelectionModel().getSelectedText();
if (word == null || StringUtil.isEmpty(word)) {
return;
}
List<LookupElement> lookupItems = new ArrayList<>();
for (String variant : getSuggestions(project)) {
lookupItems.add(LookupElementBuilder.create(variant));
}
LookupElement[] items = new LookupElement[lookupItems.size()];
items = lookupItems.toArray(items);
LookupManager lookupManager = LookupManager.getInstance(project);
lookupManager.showLookup(editor, items);
}
Aggregations