mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
WI-31889 Template project: can't save some files
This commit is contained in:
+9
-1
@@ -292,9 +292,17 @@ public class SaveProjectAsTemplateAction extends AnAction {
|
||||
}
|
||||
|
||||
char c = input.charAt(i);
|
||||
if (c == '$' || c == '#') {
|
||||
if (c == '#' || c == '[' || c == ']' || c =='{' || c == '}' || c =='(' || c == ')') {
|
||||
builder.append('\\');
|
||||
}
|
||||
if (c == '$') {
|
||||
builder.append('\\');
|
||||
if(input.startsWith("$true", i) || input.startsWith("$false", i) || input.startsWith("$.", i)){
|
||||
builder.append(c).append('\\');
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
builder.append(c);
|
||||
}
|
||||
return builder.toString();
|
||||
|
||||
@@ -330,8 +330,26 @@ public class TemplateModuleBuilder extends ModuleBuilder {
|
||||
properties.put(ProjectTemplateParameterFactory.IJ_PROJECT_NAME, projectName);
|
||||
}
|
||||
String merged = FileTemplateUtil.mergeTemplate(properties, content, true, exceptionConsumer);
|
||||
return StringUtilRt.convertLineSeparators(merged.replace("\\$", "$").replace("\\#", "#"), SystemInfo.isWindows ? "\r\n" : "\n").
|
||||
getBytes(CharsetToolkit.UTF8_CHARSET);
|
||||
StringBuilder sb = new StringBuilder(merged.length());
|
||||
for (int i = 0; i < merged.length(); i++) {
|
||||
char c = merged.charAt(i);
|
||||
if (c == '\\') {
|
||||
if(i < merged.length() -1){
|
||||
if(merged.startsWith("\\$\\true", i) || merged.startsWith("\\$\\false", i) || merged.startsWith("\\$\\.", i)){
|
||||
sb.append("$");
|
||||
i+=2;
|
||||
continue;
|
||||
}
|
||||
|
||||
char d = merged.charAt(i+1);
|
||||
if(d == '$' || d == '#' || d == '[' || d == ']' || d =='{' || d == '}' || d =='(' || d == ')'){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
sb.append(c);
|
||||
}
|
||||
return StringUtilRt.convertLineSeparators(sb.toString(), SystemInfo.isWindows ? "\r\n" : "\n").getBytes(CharsetToolkit.UTF8_CHARSET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user