Class BslOutlineElementUtil

java.lang.Object
com._1c.g5.v8.dt.bsl.ui.outline.BslOutlineElementUtil

public final class BslOutlineElementUtil extends Object
Commons methods for working with Bsl outline elements
  • Method Details

    • getBslElements

      public static List<IBslConstruct> getBslElements(List<?> listOfElements)
      Gets all IBslConstruct elements
      Parameters:
      listOfElements - filtered lists, can't be null
      Returns:
      list of IBslConstruct, never null
    • createDeleteChanges

      public static void createDeleteChanges(IBslConstruct element, org.eclipse.handly.snapshot.NonExpiringSnapshot snapshot, int elementOffset, int elementLength, String formatStringElement, org.eclipse.text.edits.MultiTextEdit multiEdit) throws org.eclipse.core.runtime.CoreException
      Creates change corresponding to the element of Bsl outline
      Parameters:
      element - IBslConstruct deleting element of Bsl outline, can't be null
      snapshot - actual NonExpiringSnapshot for outline's editor, can't be null
      elementOffset - offset of deleting elements
      elementLength - length of content of deleting elements
      formatStringElement - actual formatting string for deleting elements, can't be null
      multiEdit - MultiTextEdit for accumulate creating changes, can't be null
      Throws:
      org.eclipse.core.runtime.CoreException - can be throw from method #getOffsetLowerNeighbourElement()
    • getFormatString

      public static String getFormatString(String contents, int offset, IV8Element element) throws org.eclipse.core.runtime.CoreException
      Gets formating string for element of bsl outline
      Parameters:
      contents - string content of element of bsl outline, can't be null
      offset - offset of element of bsl outline, can't be null
      element - actual element of bsl outline, can't be null
      Returns:
      formating string for element of bsl outline, never null
      Throws:
      org.eclipse.core.runtime.CoreException
    • getLowerNeighbor

      public static Object getLowerNeighbor(Object target) throws org.eclipse.core.runtime.CoreException
      Gets the nearest lower neighbor of bsl outline element
      Parameters:
      target - bsl outline element
      Returns:
      the nearest lower neighbor of bsl outline element or null if target is not bsl outline element, or there is no lower neighbor
      Throws:
      org.eclipse.core.runtime.CoreException - can be throw from method IElement#getChildren()
    • getUpperNeighbor

      public static Object getUpperNeighbor(Object target) throws org.eclipse.core.runtime.CoreException
      Gets the nearest upper neighbor of bsl outline element
      Parameters:
      target - bsl outline element
      Returns:
      the nearest upper neighbor of bsl outline element or null if target is not bsl outline element, or there is no upper neighbor
      Throws:
      org.eclipse.core.runtime.CoreException - can be throw from method IElement#getChildren()
    • isContainsType

      public static boolean isContainsType(Object target, Class<?> clazz) throws org.eclipse.core.runtime.CoreException
      Checks that class of target in instance of clazz
      Parameters:
      target - checking elements, can be null
      clazz - expected type, can't be null
      Returns:
      true if class of target in instance of clazz or if target instanceof IElement and there is child instanceof clazz, false otherwise or if target is null
      Throws:
      org.eclipse.core.runtime.CoreException - can be throw from method IElement#getChildren()
    • hasElementByType

      public static boolean hasElementByType(List<?> elements, Class<?> clazz, boolean checkChildren) throws org.eclipse.core.runtime.CoreException
      Checks that elements contains elements of type clazz
      Parameters:
      elements - checking elements, can't be null
      clazz - checking type, , can't be null
      checkChildren - true if need to check and children of each element of elements, false otherwise
      Returns:
      true if elements contains elements of type clazz, false otherwise or if list of elements is empty
      Throws:
      org.eclipse.core.runtime.CoreException - CoreException can be throw from method #isContainsType()
    • getTargetOffset

      public static int getTargetOffset(IBslConstruct target, BslViewerDropAdapter.DropLocation location, org.eclipse.handly.ui.outline.ICommonOutlinePage outlinePage) throws org.eclipse.core.runtime.CoreException
      Gets actual offset for moving by target element
      Parameters:
      target - moving element of bsl outline, cannot be null
      location - actual BslViewerDropAdapter.DropLocation, cannot be null
      outlinePage - actual outline page, cannot be null
      Returns:
      offset for moving by target element
      Throws:
      org.eclipse.core.runtime.CoreException
    • getFormatTargetString

      public static String getFormatTargetString(IBslConstruct target, org.eclipse.handly.snapshot.NonExpiringSnapshot snapshot, BslViewerDropAdapter.DropLocation location, String indent) throws org.eclipse.core.runtime.CoreException
      Gets format string for target element of bsl outline
      Parameters:
      target - bsl outline element, can't be null
      snapshot - actual NonExpiringSnapshot for outline's editor, can't be null
      location - actual BslViewerDropAdapter.DropLocation
      indent - actual indent of text editor, can't be null
      Returns:
      format string for target element, never null
      Throws:
      org.eclipse.core.runtime.CoreException
    • createInsertChanges

      public static void createInsertChanges(String content, int targetOffset, org.eclipse.text.edits.MultiTextEdit multiEdit)
    • formatContent

      public static String formatContent(String content, String formatStringTarget, String formatStringElement)
      Formats content of moving element corresponding for format in target element
      Parameters:
      content - formatting content, can't be null
      formatStringTarget - format of target bsl outline element, can't be null
      formatStringElement - format of element of bsl outline which content is being formatted, can't be null
      Returns:
      formatted content of moving element corresponding for format in target element, never null
    • allElementsHasTheSameParent

      public static boolean allElementsHasTheSameParent(List<?> elements)
      Checks that all elements of elements have the same parent
      Parameters:
      elements - checking elements, can't be null
      Returns:
      true if all elements of elements have the same parent, false otherwise
    • isNestedElementsOfSelected

      public static boolean isNestedElementsOfSelected(Object target, List<?> elements) throws org.eclipse.core.runtime.CoreException
      Checks that target is parent element for one element from elements
      Parameters:
      target - bsl outline element, can't be null
      elements - checking elements, can't be null
      Returns:
      true if target is parent element for one element from elements, false otherwise
      Throws:
      org.eclipse.core.runtime.CoreException
    • computeElementLengthWithComment

      public static int computeElementLengthWithComment(org.eclipse.handly.ui.outline.ICommonOutlinePage outlinePage, int elementOffset, int elementLength)
      Compute full length of the outline element. Full length is sum of original element length and length of the comment node with leader whitespace at the same line that end of the outline element
      Parameters:
      outlinePage - actual outline page, cannot be null
      elementOffset - actual offset of the outline element
      elementLength - actual length of the outline element
      Returns:
      full length of the outline element