Package com.intellij.codeInsight.template

Examples of com.intellij.codeInsight.template.TemplateBuilder


      addedElement = CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement(addedElement);
      JavaCodeStyleManager.getInstance(project).shortenClassReferences(addedElement);
      editor = FileEditorManager.getInstance(project).getSelectedTextEditor();
      assert editor != null;

      final TemplateBuilder builder = TemplateBuilderFactory.getInstance().createTemplateBuilder(addedElement);

      final PsiAnnotation annotation = addedElement.getModifierList().getAnnotations()[0];
      final PsiNameValuePair regexpElement = annotation.getParameterList().getAttributes()[0];
      final TextRange range = new TextRange(1, regexpElement.getTextLength() - 1);
      builder.replaceElement(regexpElement, range, regexpElement.getText().substring(range.getStartOffset(), range.getEndOffset()));

      final PsiParameterList blockVars = addedElement.getParameterList();
      for (PsiParameter var : blockVars.getParameters()) {
        final PsiElement nameIdentifier = var.getNameIdentifier();
        if (nameIdentifier != null) {
          builder.replaceElement(nameIdentifier, nameIdentifier.getText());
        }
      }

      final PsiCodeBlock body = addedElement.getBody();
      if (body != null && body.getStatements().length > 0) {
        final PsiElement firstStatement = body.getStatements()[0];
        final TextRange pendingRange = new TextRange(0, firstStatement.getTextLength() - 1);
        builder.replaceElement(firstStatement, pendingRange,
                               firstStatement.getText().substring(pendingRange.getStartOffset(), pendingRange.getEndOffset()));
      }

      final PsiDocumentManager documentManager = PsiDocumentManager.getInstance(project);
      documentManager.doPostponedOperationsAndUnblockDocument(editor.getDocument());
      builder.run(editor, false);
    }

    return true;
  }
View Full Code Here


    public void handleInsert(final InsertionContext context, LookupElement item) {
      if (!ranges.isEmpty()) {
        final PsiElement element = context.getFile().findElementAt(context.getStartOffset());
        final GherkinStep step = PsiTreeUtil.getParentOfType(element, GherkinStep.class);
        if (step != null) {
          final TemplateBuilder builder = TemplateBuilderFactory.getInstance().createTemplateBuilder(step);
          int off = context.getStartOffset() - step.getTextRange().getStartOffset();
          final String stepText = step.getText();
          for (TextRange groupRange : ranges) {
            final TextRange shiftedRange = groupRange.shiftRight(off);
            final String matchedText = shiftedRange.substring(stepText);
            builder.replaceRange(shiftedRange, matchedText);
          }
          builder.run(context.getEditor(), false);
        }
      }
    }
View Full Code Here

          @Override
          public void run() {
            ApplicationManager.getApplication().runWriteAction(new Runnable() {
              @Override
              public void run() {
                TemplateBuilder templateBuilder = TemplateBuilderFactory.getInstance().createTemplateBuilder(spec);
                Collection<ErlangTopType> types = PsiTreeUtil.findChildrenOfType(spec, ErlangTopType.class);
                for (ErlangTopType type : types) {
                  templateBuilder.replaceElement(type, type.getText());
                }
                templateBuilder.run(editor, false);
              }
            });
          }
        }, "Generate spec template editor", null);
      }
View Full Code Here

TOP

Related Classes of com.intellij.codeInsight.template.TemplateBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.