EditorConfig path inspector
Resolve declared properties for explicit paths under one EditorConfig file and trace section order, overrides and unset.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
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
- Paste or open one .editorconfig file and enter one relative POSIX file path per line.
- Inspect final properties, matching sections and declaration line numbers. Check which later rule overrides or unsets a value.
- 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
JSON formatting workspace
Format or minify strict JSON, sort object keys, and encode or decode strings while preserving raw number tokens.
Regex tester
Try a pattern and see what it matches in your text.
Compare text
See what changed, side by side.
HTML formatter
Format HTML indentation so its structure is easier to read.