Haml customizes Live Templates from Ruby language

This commit is contained in:
Andrey Vokin
2014-11-27 17:06:45 +03:00
parent b97c64a0c1
commit e32c73d739
2 changed files with 8 additions and 4 deletions
@@ -26,5 +26,6 @@ import com.intellij.psi.PsiFile;
public interface TemplatePreprocessor {
ExtensionPointName<TemplatePreprocessor> EP_NAME = ExtensionPointName.create("com.intellij.liveTemplatePreprocessor");
void preprocessTemplate(final Editor editor, final PsiFile file, int caretOffset, final String textToInsert, final String templateText);
TemplateImpl preprocessTemplate(final Editor editor, final PsiFile file, int caretOffset, final TemplateImpl tempalte,
final String textToInsert);
}
@@ -331,7 +331,7 @@ public class TemplateState implements Disposable {
}
else {
PsiFile file = getPsiFile();
preprocessTemplate(file, myEditor.getCaretModel().getOffset(), myTemplate.getTemplateText());
template = preprocessTemplate(file, myEditor.getCaretModel().getOffset(), myTemplate.getTemplateText());
int caretOffset = myEditor.getCaretModel().getOffset();
myTemplateRange = myDocument.createRangeMarker(caretOffset, caretOffset);
}
@@ -349,10 +349,13 @@ public class TemplateState implements Disposable {
}
}
private void preprocessTemplate(final PsiFile file, int caretOffset, final String textToInsert) {
private TemplateImpl preprocessTemplate(final PsiFile file, int caretOffset, final String textToInsert) {
TemplateImpl result = myTemplate;
for (TemplatePreprocessor preprocessor : Extensions.getExtensions(TemplatePreprocessor.EP_NAME)) {
preprocessor.preprocessTemplate(myEditor, file, caretOffset, textToInsert, myTemplate.getTemplateText());
result = preprocessor.preprocessTemplate(myEditor, file, caretOffset, myTemplate, textToInsert);
}
return result;
}
private void processAllExpressions(@NotNull final TemplateImpl template) {