Interface FormatterService

All Known Implementing Classes:
AbstractCssFormatterService, AbstractHtmlFormatterService, AbstractJavaFormatterService, AbstractJavascriptFormatterService, AbstractJsonFormatterService, AbstractXmlFormatterService, CssParserFormatterService, DBeaverFormatterService, EclipseJavaFormatterService, EclipseJavascriptFormatterService, GoogleJavaFormatterService, JacksonJsonFormatterService, JsoupHtmlFormatterService, JsoupXmlFormatterService, JSQLFormatterService, PalantirJavaFormatterService, RevelcXmlFormatterService, SpringJavaFormatterService, SQLFormatterService

public interface FormatterService
Service interface for external formatter implementations.
Author:
bahlef
  • Method Details

    • canHandle

      default boolean canHandle(Document document)
      Returns true if and only if this implementation would be able to format the given Document, otherwise false.
      Parameters:
      document - the Document to check
      Returns:
      true if and only if this implementation would be able to format the given Document, otherwise false
    • format

      boolean format(StyledDocument document, SortedSet<Pair<Integer,Integer>> changedElements) throws BadLocationException, FormattingFailedException
      Formats the given StyledDocument in regard to the given changedElements.
      Parameters:
      document - the StyledDocument which should be formatted
      changedElements - a SortedSet containing ranges as Pair objects that should be formatted
      Returns:
      if true formatting was done, otherwise formatting was rejected and needs to be done by NetBeans internal formatter
      Throws:
      BadLocationException - if something goes wrong while applying the formatted code
      FormattingFailedException - if the given StyledDocument cannot be formatted by the given formatter
    • getContinuationIndentSize

      @CheckForNull Integer getContinuationIndentSize(Document document)
      Returns the continuation indent size configured for the given Document, or null if it should not affect the editor behavior.
      Parameters:
      document - the Document for which the continuation indent size is requested
      Returns:
      the continuation indent size configured for the given Document, or null if it should not affect the editor behavior
    • getDisplayName

      @NonNull String getDisplayName()
      Retruns the display name of this formatter implementation.
      Returns:
      the display name of this formatter implementation
    • getId

      @NonNull String getId()
      Retruns the unique identifier of this formatter implementation.
      Returns:
      the unique identifier of this formatter implementation
    • getIndentSize

      @CheckForNull Integer getIndentSize(Document document)
      Returns the indent size configured for the given Document, or null if it should not affect the editor behavior.
      Parameters:
      document - the Document for which the indent size is requested
      Returns:
      the indent size configured for the given Document, or null if it should not affect the editor behavior
    • createOptionsPanel

      FormatterOptionsPanel createOptionsPanel(Project project)
      Creates and returns the FormatterOptionsPanel for this formatter which will be displayed in the overall options dialog underneath this formatters selection.
      Parameters:
      project - the Project if the panel which is created is used to modify project specific settings, otherwise null
      Returns:
      the FormatterOptionsPanel for this formatter, or null if there are no options a user could make for this formatter
    • getRightMargin

      @CheckForNull Integer getRightMargin(Document document)
      Returns the right margin (position of the red line in the editor) configured for the given Document, or null if it should not affect the editor behavior.
      Parameters:
      document - the Document for which the right margin is requested
      Returns:
      the right margin (position of the red line in the editor) configured for the given Document, or null if it should not affect the editor behavior
    • getSpacesPerTab

      @CheckForNull Integer getSpacesPerTab(Document document)
      Returns the spaces per tab configured for the given Document, or null if it should not affect the editor behavior.
      Parameters:
      document - the Document for which the spaces per tab is requested
      Returns:
      the spaces per tab configured for the given Document, or null if it should not affect the editor behavior
    • getSupportedMimeTypes

      @NonNull List<MimeType> getSupportedMimeTypes()
      Returns a List of supported MimeTypes for this FormatterService.
      Returns:
      a List of supported MimeTypes for this FormatterService
    • isExpandTabToSpaces

      @CheckForNull Boolean isExpandTabToSpaces(Document document)
      Returns the expand tab to spaces flag configured for the given Document, or null if it should not affect the editor behavior.
      Parameters:
      document - the Document for which the expand tab to spaces flag is requested
      Returns:
      the expand tab to spaces flag configured for the given Document, or null if it should not affect the editor behavior
    • organizeImports

      @CheckForNull Boolean organizeImports(StyledDocument document, boolean afterFixImports) throws BadLocationException
      Organizes the imports of the given StyledDocument.
      Parameters:
      document - the StyledDocument
      afterFixImports - true if this method was called after fixing imports, otherwise false
      Returns:
      true if the imports have been reorganized, if something went wrong it will return false, if it wasn't executed, e.g. because it is not activated through its configuration, it will return null
      Throws:
      BadLocationException - if something goes wrong while applying the reorganized imports code