Class TextEditUtils

java.lang.Object
org.sonar.python.quickfix.TextEditUtils

public class TextEditUtils extends Object
  • Method Details

    • insertLineBefore

      public static PythonTextEdit insertLineBefore(Tree tree, String textToInsert)
      Insert a line with the same offset as the given tree, before the given tree. Offset is applied to multiline insertions.
    • insertLineAfter

      public static PythonTextEdit insertLineAfter(Tree tree, Tree indentReference, String textToInsert)
      Insert a line with the same offset as the given tree, after the given tree. Offset is applied to multiline insertions and calculated by the reference tree.
    • insertBefore

      public static PythonTextEdit insertBefore(Tree tree, String textToInsert)
    • insertAfter

      public static PythonTextEdit insertAfter(Tree tree, String textToInsert)
    • insertAtPosition

      public static PythonTextEdit insertAtPosition(int line, int column, String textToInsert)
    • replace

      public static PythonTextEdit replace(Tree toReplace, String replacementText)
    • replaceRange

      public static PythonTextEdit replaceRange(Tree start, Tree end, String replacementText)
    • shiftLeft

      public static List<PythonTextEdit> shiftLeft(StatementList statementList)
      Shift body statements to be on same level as the parent statement Filter out text edits which apply on the same line which could show up with multiple statements on the same line
    • shiftLeft

      public static List<PythonTextEdit> shiftLeft(Tree tree, int offset)
      Shift single statement of a statement list by the given offset. Take care about child statements by collecting all child tokens and shift each line once.
    • removeRange

      public static PythonTextEdit removeRange(int startLine, int startColumn, int endLine, int endColumn)
    • removeUntil

      public static PythonTextEdit removeUntil(Tree start, Tree until)
      Remove range including the start token until the beginning of the end tree's first token. This is useful to remove and shift multiple statement over multiple lines.
    • removeStatement

      public static PythonTextEdit removeStatement(Statement statement)
    • remove

      public static PythonTextEdit remove(Tree toRemove)
    • renameAllUsages

      public static List<PythonTextEdit> renameAllUsages(HasSymbol node, String newName)
      Returns a list of all replacements for the symbol to new name. If there is no usages empty list is returned.