Neatbo.

EditorConfig path inspector

Resolve declared properties for explicit paths under one EditorConfig file and trace section order, overrides and unset.

Browser-local processingInputEditorConfig + relative pathsOutputJSON / Property tableUp to 0.0625 MiB per file · File limit: 1
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop it here

Files stay on this device. Your originals stay unchanged.

.editorconfig · .ini · .txt

Up to 0.0625 MiB per file · File limit: 1

    0 characters · 0 bytes
    Preparing the tool…

    Before you start

    Check why one file receives different editing rules from another. Enter relative paths and inspect each matched section and the declaration that supplied the final value.

    How to use this tool

    1. Paste or open one .editorconfig file and enter one relative POSIX file path per line.
    2. Inspect final properties, matching sections and declaration line numbers. Check which later rule overrides or unsets a value.
    3. Download the complete JSON trace. Compare editor-specific defaults separately when reproducing behavior in an actual editor.

    Supported inputs and limits

    One UTF-8 EditorConfig file or pasted config up to 64 KiB. Selected file takes precedence. Up to 200 sections, 5,000 declarations, 200 distinct paths of 512 code points, 1,024-character patterns, 5,000,000 matching steps and 50,000 matched declaration applications, with a 20 MiB conservative report budget.

    Paths use case-sensitive relative POSIX spelling under the supplied config directory. No absolute path, backslash, empty component, . or .. component. There is no parent-directory search, child config merge or filesystem access. root is reported from the preamble only.

    Supports EditorConfig 0.17.2 glob *, **, ?, literal/negated sequence classes, nested comma brace choices, increasing signed integer ranges and backslash escapes. Character-class hyphens are literal, not ranges. A slash outside classes anchors at the config directory; patterns without a slash may match basenames at any depth. LF/CRLF config endings are supported; CR-only is rejected.

    Keys and known core property values are lowercased; other values retain case. Later matching declarations win and unset removes a property, with an ordered trace. Only declared properties are shown: editor defaults and derived indent_size/tab_width are not synthesized. Preview shows up to 200 properties; JSON retains every path and trace.

    Worked example

    Example input

    root = true
    [*.js]
    indent_style = space
    indent_size = 2
    [*.min.js]
    indent_size = unset
    
    Example options
    {"params": {}, "secondary": "src/app.js\nsrc/app.min.js"}

    Example output

    {
      "scope": "one root file, declared properties only; no editor defaults or implicit indentation values",
      "specification": "0.17.2",
      "root": "true",
      "records": [
        {
          "path": "src/app.js",
          "properties": {
            "indent_style": "space",
            "indent_size": "2"
          },
          "sources": {
            "indent_style": {
              "value": "space",
              "section": "*.js",
              "line": 3
            },
            "indent_size": {
              "value": "2",
              "section": "*.js",
              "line": 4
            }
          },
          "matches": [
            {
              "pattern": "*.js",
              "line": 2
            }
          ],
          "trace": [
            {
              "key": "indent_style",
              "value": "space",
              "line": 3,
              "section": "*.js",
              "action": "set"
            },
            {
              "key": "indent_size",
              "value": "2",
              "line": 4,
              "section": "*.js",
              "action": "set"
            }
          ]
        },
        {
          "path": "src/app.min.js",
          "properties": {
            "indent_style": "space"
          },
          "sources": {
            "indent_style": {
              "value": "space",
              "section": "*.js",
              "line": 3
            }
          },
          "matches": [
            {
              "pattern": "*.js",
              "line": 2
            },
            {
              "pattern": "*.min.js",
              "line": 5
            }
          ],
          "trace": [
            {
              "key": "indent_style",
              "value": "space",
              "line": 3,
              "section": "*.js",
              "action": "set"
            },
            {
              "key": "indent_size",
              "value": "2",
              "line": 4,
              "section": "*.js",
              "action": "set"
            },
            {
              "key": "indent_size",
              "value": "unset",
              "line": 6,
              "section": "*.min.js",
              "action": "unset"
            }
          ]
        }
      ]
    }

    When something does not work

    Fix incomplete brackets/braces and use increasing integer ranges. Enter unique relative paths without escaping the config directory. Reduce path/rule count or complex patterns if the calculation budget is exceeded.

    Frequently asked questions

    Does it combine every .editorconfig in my project?

    No. It evaluates the one supplied file against paths relative to that file’s directory.

    Why is tab_width absent when indent_size exists?

    This report lists declarations only. EditorConfig core/editor integrations may derive indentation values; those defaults are outside this report.

    Does [0-9] mean digits?

    Under the declared 0.17.2 specification it contains the literal characters 0, - and 9. Use {0..9} for an integer range. Older references may interpret character classes differently.

    Documentation & further reading

    Related tools