diff options
author | Tor Norbye <tnorbye@google.com> | 2014-07-25 20:12:40 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-07-24 20:55:36 +0000 |
commit | 6044be7330c93bc8dacb0f63e62da8029f39a16f (patch) | |
tree | 0ba72f5de1949e0527874a799baa224cbe1537e0 /platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java | |
parent | b03a5855292feb8c331815f883fe64372aacd872 (diff) | |
parent | e5266e2343c8d275d79fa0be725180d0fe3a993c (diff) | |
download | idea-6044be7330c93bc8dacb0f63e62da8029f39a16f.tar.gz |
Merge "Merge remote-tracking branch 'aosp/upstream-master' into merge"
Diffstat (limited to 'platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java')
-rw-r--r-- | platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java b/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java index df0e0b959a23..56fe91a0dc28 100644 --- a/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java +++ b/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java @@ -23,9 +23,9 @@ import com.intellij.lang.injection.InjectedLanguageManager; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.editor.Caret; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.editor.SelectionModel; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.TextEditor; @@ -83,20 +83,22 @@ public class PsiUtilBase extends PsiUtilCore implements PsiEditorUtil { @Nullable public static Language getLanguageInEditor(@NotNull final Editor editor, @NotNull final Project project) { + return getLanguageInEditor(editor.getCaretModel().getCurrentCaret(), project); + } + + @Nullable + public static Language getLanguageInEditor(@NotNull Caret caret, @NotNull final Project project) { + Editor editor = caret.getEditor(); PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null) return null; - final SelectionModel selectionModel = editor.getSelectionModel(); - int caretOffset = editor.getCaretModel().getOffset(); - int mostProbablyCorrectLanguageOffset = caretOffset == selectionModel.getSelectionStart() || - caretOffset == selectionModel.getSelectionEnd() - ? selectionModel.getSelectionStart() - : caretOffset; + int caretOffset = caret.getOffset(); + int mostProbablyCorrectLanguageOffset = caretOffset == caret.getSelectionEnd() ? caret.getSelectionStart() : caretOffset; PsiElement elt = getElementAtOffset(file, mostProbablyCorrectLanguageOffset); Language lang = findLanguageFromElement(elt); - if (selectionModel.hasSelection()) { - final Language rangeLanguage = evaluateLanguageInRange(selectionModel.getSelectionStart(), selectionModel.getSelectionEnd(), file); + if (caret.hasSelection()) { + final Language rangeLanguage = evaluateLanguageInRange(caret.getSelectionStart(), caret.getSelectionEnd(), file); if (rangeLanguage == null) return file.getLanguage(); lang = rangeLanguage; @@ -115,22 +117,24 @@ public class PsiUtilBase extends PsiUtilCore implements PsiEditorUtil { @Nullable public static PsiFile getPsiFileInEditor(@NotNull final Editor editor, @NotNull final Project project) { + return getPsiFileInEditor(editor.getCaretModel().getCurrentCaret(), project); + } + + @Nullable + public static PsiFile getPsiFileInEditor(@NotNull Caret caret, @NotNull final Project project) { + Editor editor = caret.getEditor(); final PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null) return null; PsiUtilCore.ensureValid(file); - final Language language = getLanguageInEditor(editor, project); + final Language language = getLanguageInEditor(caret, project); if (language == null) return file; if (language == file.getLanguage()) return file; - final SelectionModel selectionModel = editor.getSelectionModel(); - int caretOffset = editor.getCaretModel().getOffset(); - int mostProbablyCorrectLanguageOffset = caretOffset == selectionModel.getSelectionStart() || - caretOffset == selectionModel.getSelectionEnd() - ? selectionModel.getSelectionStart() - : caretOffset; + int caretOffset = caret.getOffset(); + int mostProbablyCorrectLanguageOffset = caretOffset == caret.getSelectionEnd() ? caret.getSelectionStart() : caretOffset; return getPsiFileAtOffset(file, mostProbablyCorrectLanguageOffset); } |