Class FormatExtension

    • Field Detail

      • target

        protected FileCollection target
        The files to be formatted = (target - targetExclude).
      • targetExclude

        protected FileCollection targetExclude
        The files to be formatted = (target - targetExclude).
    • Constructor Detail

    • Method Detail

      • provisioner

        protected final Provisioner provisioner()
      • ignoreErrorForStep

        public void ignoreErrorForStep​(String stepName)
        Ignores errors in the given step.
      • ignoreErrorForPath

        public void ignoreErrorForPath​(String relativePath)
        Ignores errors for the given relative path.
      • target

        public void target​(Object... targets)
        Sets which files should be formatted. Files to be formatted = (target - targetExclude). When this method is called multiple times, only the last call has any effect. FileCollections pass through raw. Strings are treated as the 'include' arg to fileTree, with project.rootDir as the dir. List are treated as the 'includes' arg to fileTree, with project.rootDir as the dir. Anything else gets passed to getProject().files(). If you pass any strings that start with "**\/*", this method will automatically filter out "build", ".gradle", and ".git" folders.
      • targetExclude

        public void targetExclude​(Object... targets)
        Sets which files will be excluded from formatting. Files to be formatted = (target - targetExclude). When this method is called multiple times, only the last call has any effect. FileCollections pass through raw. Strings are treated as the 'include' arg to fileTree, with project.rootDir as the dir. List are treated as the 'includes' arg to fileTree, with project.rootDir as the dir. Anything else gets passed to getProject().files().
      • parseTarget

        protected final FileCollection parseTarget​(Object target)
        FileCollections pass through raw. Strings are treated as the 'include' arg to fileTree, with project.rootDir as the dir. List are treated as the 'includes' arg to fileTree, with project.rootDir as the dir. Anything else gets passed to getProject().files().
      • addStep

        public void addStep​(FormatterStep newStep)
        Adds a new step.
      • getExistingStepIdx

        protected int getExistingStepIdx​(String stepName)
        Returns the index of the existing step with the given name, or -1 if no such step exists.
      • replaceStep

        protected void replaceStep​(FormatterStep replacementStep)
        Replaces the given step.
      • clearSteps

        public void clearSteps()
        Clears all of the existing steps.
      • bumpThisNumberIfACustomStepChanges

        public void bumpThisNumberIfACustomStepChanges​(int number)
        An optional performance optimization if you are using any of the custom methods. If you aren't explicitly calling custom, then this method has no effect. Spotless tracks what files have changed from run to run, so that it can run faster by only checking files which have changed, or whose formatting steps have changed. If you use the custom methods, then gradle can never mark your files as up-to-date, because it can't know if perhaps the behavior of your custom function has changed. If you set bumpThisNumberIfACustomStepChanges( <some number> ), then spotless will assume that the custom rules have not changed if the number has not changed. If a custom rule does change, then you must bump the number so that spotless will know that it must recheck the files it has already checked.
      • custom

        public void custom​(String name,
                           groovy.lang.Closure<String> formatter)
        Adds a custom step. Receives a string with unix-newlines, must return a string with unix newlines.
      • custom

        public void custom​(String name,
                           FormatterFunc formatter)
        Adds a custom step. Receives a string with unix-newlines, must return a string with unix newlines.
      • replaceRegex

        public void replaceRegex​(String name,
                                 String regex,
                                 String replacement)
        Highly efficient find-replace regex.
      • trimTrailingWhitespace

        public void trimTrailingWhitespace()
        Removes trailing whitespace.
      • endWithNewline

        public void endWithNewline()
        Ensures that files end with a single newline.
      • indentWithSpaces

        public void indentWithSpaces​(int numSpacesPerTab)
        Ensures that the files are indented using spaces.
      • indentWithSpaces

        public void indentWithSpaces()
        Ensures that the files are indented using spaces.
      • indentWithTabs

        public void indentWithTabs​(int tabToSpaces)
        Ensures that the files are indented using tabs.
      • indentWithTabs

        public void indentWithTabs()
        Ensures that the files are indented using tabs.
      • nativeCmd

        public void nativeCmd​(String name,
                              String pathToExe,
                              List<String> arguments)
        Ensures formatting of files via native binary.
      • licenseHeader

        public FormatExtension.LicenseHeaderConfig licenseHeader​(String licenseHeader,
                                                                 String delimiter)
        Parameters:
        licenseHeader - Content that should be at the top of every file.
        delimiter - Spotless will look for a line that starts with this regular expression pattern to know what the "top" is.
      • licenseHeaderFile

        public FormatExtension.LicenseHeaderConfig licenseHeaderFile​(Object licenseHeaderFile,
                                                                     String delimiter)
        Parameters:
        licenseHeaderFile - Content that should be at the top of every file.
        delimiter - Spotless will look for a line that starts with this regular expression pattern to know what the "top" is.
      • withinBlocks

        public void withinBlocks​(String name,
                                 String open,
                                 String close,
                                 Action<FormatExtension> configure)
         spotless {
           format 'examples', {
             target '*.md'
             withinBlocks 'javascript examples', '\n```javascript\n', '\n```\n', {
               prettier().config(['parser': 'javascript'])
             }
             ...
         
      • toggleOffOnRegex

        public void toggleOffOnRegex​(String regex)
        Given a regex with *exactly one capturing group*, disables formatting inside that captured group.
      • toggleOffOn

        public void toggleOffOn​(String off,
                                String on)
        Disables formatting between the given tags.
      • toggleOffOn

        public void toggleOffOn()
        Disables formatting between spotless:off and spotless:on.
      • setupTask

        protected void setupTask​(SpotlessTask task)
        Sets up a format task according to the values in this extension.
      • getProject

        protected Project getProject()
        Returns the project that this extension is attached to.
      • createIndependentApplyTask

        public SpotlessApply createIndependentApplyTask​(String taskName)
        Creates an independent SpotlessApply for (very) unusual circumstances. Most users will not want this method. In the rare case that you want to create a SpotlessApply which is independent of the normal Spotless machinery, this will let you do that. The returned task will not be hooked up to the global spotlessApply, and there will be no corresponding check task. NOTE: does not respect the rarely-used spotlessFiles property.
      • noDefaultTargetException

        protected GradleException noDefaultTargetException()