From ef0deb12ab7ab82c4eaff02c06971c5188bf78c0 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 29 Jan 2013 14:16:42 +0400 Subject: [PATCH] save as template: strip namespace prefixes (IDEA-70633) --- .../template/actions/SaveAsTemplateAction.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/actions/SaveAsTemplateAction.java b/platform/lang-impl/src/com/intellij/codeInsight/template/actions/SaveAsTemplateAction.java index 6311ac2f4674..ac7f2e491478 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/actions/SaveAsTemplateAction.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/actions/SaveAsTemplateAction.java @@ -26,6 +26,7 @@ package com.intellij.codeInsight.template.actions; import com.intellij.codeInsight.template.TemplateContextType; import com.intellij.codeInsight.template.impl.*; +import com.intellij.lang.StdLanguages; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.AccessToken; import com.intellij.openapi.application.WriteAction; @@ -81,6 +82,7 @@ public class SaveAsTemplateAction extends AnAction { final Document document = EditorFactory.getInstance().createDocument(editor.getDocument().getText(). substring(startOffset, selection.getEndOffset())); + final boolean isXml = file.getLanguage().is(StdLanguages.XML); final int offsetDelta = startOffset; new WriteCommandAction.Simple(project, (String)null) { @Override @@ -103,6 +105,12 @@ public class SaveAsTemplateAction extends AnAction { if (pos > 0 && !oldText.contains("<")) { canonicalText = canonicalText.substring(0, pos); } + if (isXml) { //strip namespace prefixes + pos = canonicalText.lastIndexOf(':'); + if (pos >= 0 && pos < canonicalText.length() - 1 && !oldText.contains(":")) { + canonicalText = canonicalText.substring(pos + 1); + } + } if (!canonicalText.equals(oldText)) { rangeToText.put(document.createRangeMarker(range), canonicalText); }