Create from Usage: Locate new declaration using RangeMarker

#KT-9197 Fixed
This commit is contained in:
Alexey Sedunov
2015-12-02 15:50:46 +03:00
parent 99c88cb0c5
commit 80051b8303
@@ -938,6 +938,8 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
val declaration = declarationPointer.getElement()!!
val declarationMarker = containingFileEditor.document.createRangeMarker(declaration.textRange)
val builder = TemplateBuilderImpl(jetFileToEdit)
if (declaration is KtProperty) {
setupValVarTemplate(builder, declaration)
@@ -979,10 +981,10 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
if (brokenOff && !ApplicationManager.getApplication().isUnitTestMode()) return
// file templates
val newDeclaration = if (templateImpl.getSegmentsCount() > 0) {
PsiTreeUtil.findElementOfClassAtOffset(jetFileToEdit, templateImpl.getSegmentOffset(0), declaration.javaClass, false)!!
}
else declarationPointer.getElement()!!
val newDeclaration = PsiTreeUtil.findElementOfClassAtOffset(jetFileToEdit,
declarationMarker.startOffset,
declaration.javaClass,
false) ?: return
runWriteAction {
// file templates
@@ -1004,6 +1006,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
}
}
finally {
declarationMarker.dispose()
finished = true
onFinish()
}