Live Templates: use selection start for retrieving template expanding context
authorAlexander Zolotov <alexander.zolotov@jetbrains.com>
Wed, 16 Nov 2016 12:57:44 +0000 (15:57 +0300)
committerAlexander Zolotov <alexander.zolotov@jetbrains.com>
Wed, 16 Nov 2016 13:08:05 +0000 (16:08 +0300)
platform/lang-impl/src/com/intellij/codeInsight/template/CustomTemplateCallback.java

index 5b30af72122bb3638c795bdff704e39bc69a1392..281a3ee6c558d10b1e6c25addc629d38d43d33e8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2016 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@ import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.editor.Document;
 import com.intellij.openapi.editor.Editor;
 import com.intellij.openapi.editor.ScrollType;
+import com.intellij.openapi.editor.SelectionModel;
 import com.intellij.openapi.fileTypes.FileType;
 import com.intellij.openapi.project.Project;
 import com.intellij.psi.PsiDocumentManager;
@@ -84,7 +85,8 @@ public class CustomTemplateCallback {
   }
 
   public static int getOffset(@NotNull Editor editor) {
-    return Math.max(editor.getSelectionModel().getSelectionStart() - 1, 0);
+    SelectionModel selectionModel = editor.getSelectionModel();
+    return selectionModel.hasSelection() ? selectionModel.getSelectionStart() : Math.max(editor.getCaretModel().getOffset() - 1, 0);
   }
 
   @Nullable