openeditorcode.devFIELD MANUAL / 0.2.41Español
configuration.md DOCUMENTATION

13 — Reference

Complete configuration

Defaults, properties, scopes, application and valid global/project configuration examples.

v0.2.41Source review ·
On this page

Files and precedence

Global configuration is a complete document. Project configuration is a partial schemaVersion 3 override recursively merged over global. Open either from the palette and save with Ctrl+S to validate.

ScopePath
Windows global%APPDATA%\openeditorcode\config.json
Linux global${XDG_CONFIG_HOME:-~/.config}/openeditorcode/config.json
Location overrideOEC_CONFIG_DIR/config.json
Project<root>/.oec/config.json

Settings screen

Open settings shows wrap, line numbers, syntax, format on save and profile. ↑/↓ selects, ← global, → project, Enter toggles/saves, E opens JSON and Esc closes. JSON exposes more options than this screen.

Saving from the screen at project scope may serialize nearly the whole effective configuration, pinning previously inherited values. For a minimal override, edit JSON.

Minimal project example

Complete .oec/config.json contentjson
{
  "schemaVersion": 3,
  "editor": { "wrap": "word", "lineNumbers": true },
  "preview": { "markdownDefault": "source" }
}

Customize keys

Edit keyboard.bindings inside the complete global document. Keys are catalog configurable IDs; each array replaces the fallback. [] disables the shortcut. The parser accepts strings but does not check that an ID exists or detect collisions.

Modifiers match exactly. Use names such as ctrl, shift, alt and left. Enter/return are normalized. F2, F10, both duplication keys and history H/D have configurable IDs; tree Enter/Shift+Enter remain contextual without IDs.

Fragment: replace keyboard in the complete global JSONjson
"keyboard": {
  "profile": "default",
  "bindings": {
    "file.save": ["ctrl+s"],
    "editor.formatDocument": ["alt+shift+f"]
  }
}

Application, migration and recovery

Changes saved within OEC update reactive preferences; other values are captured when capabilities are constructed and require restart. The reference below distinguishes live, restart and startup settings. There is no external configuration watcher.

Global migrates v1 → v2 → v3 in memory. Incompatible JSON may produce config.bkp.json and defaults. The binary supervises the first frame and retries once for certain early failures. It does not recover sessions or buffers.

A global file over 256 KiB fails before that recovery; an invalid project configuration is ignored at startup. The distributed JSON Schema does not replace the parser: this reference is checked against schema.ts and defaults.ts.

Property reference

Every factory global field, syntax token and external formatter field. Dynamic objects are described by their structure.

↓ Download factory JSON

44 properties

schemaVersion

Validation

Required version. Global supports migration from 1/2; project overrides require 3.

Default
3
Accepts
3
Scope
Global and project

appearance.theme

On save in OEC

The only application chrome theme. Syntax tokens are customized separately.

Default
"oec-dark"
Accepts
"oec-dark"
Scope
Global and project

appearance.language

On save in OEC

UI and message language; some Explorer labels remain Spanish. CLI help and launcher messages use automatic detection.

Default
"auto"
Accepts
"auto" | "es" | "en"
Scope
Global and project

layout.explorerWidth

On save in OEC

Explorer width in terminal columns.

Default
40
Accepts
24–80
Scope
Global and project

layout.changesWidth

On save in OEC

Git pane width in columns.

Default
44
Accepts
32–80
Scope
Global and project

layout.minEditorWidth

On save in OEC

Minimum used to decide whether both side panes fit.

Default
60
Accepts
32–160
Scope
Global and project

layout.explorerStartup

At startup

Initial Explorer visibility.

Default
"visible"
Accepts
"visible" | "hidden"
Scope
Global and project

layout.changesStartup

At startup

Initial Git visibility; auto considers availability and width.

Default
"auto"
Accepts
"auto" | "visible" | "hidden"
Scope
Global and project

layout.narrowSidePanels

On save in OEC

Keep a single side pane in a narrow terminal.

Default
"single"
Accepts
"single"
Scope
Global and project

layout.diffOrientation

On save in OEC

Diff sides next to each other or stacked.

Default
"auto"
Accepts
"auto" | "horizontal" | "vertical"
Scope
Global and project

layout.diffStackBelow

On save in OEC

Auto stacks below this total renderer width, not the central pane width.

Default
120
Accepts
60–240
Scope
Global and project

editor.wrap

On save in OEC

Persistent line wrapping. Ctrl+L toggles session state.

Default
"none"
Accepts
"none" | "word"
Scope
Global and project

editor.lineNumbers

On save in OEC

Show logical line numbers; wrapped continuations do not repeat the number.

Default
true
Accepts
boolean
Scope
Global and project

editor.syntax.enabled

On save in OEC

Regex highlighting limited to supported extensions and 200,000 characters.

Default
true
Accepts
boolean
Scope
Global and project

editor.syntax.styles.default

On save in OEC

foreground requires #RRGGBB. bold/italic/dim are optional booleans. Projects only accept keys already present in the factory token.

Default
{"foreground":"#d6e5dc"}
Accepts
{ foreground, bold?, italic?, dim? }
Scope
Restricted project overrides

editor.syntax.styles.keyword

On save in OEC

foreground requires #RRGGBB. bold/italic/dim are optional booleans. Projects only accept keys already present in the factory token.

Default
{"foreground":"#79c0ff","bold":true}
Accepts
{ foreground, bold?, italic?, dim? }
Scope
Restricted project overrides

editor.syntax.styles.string

On save in OEC

foreground requires #RRGGBB. bold/italic/dim are optional booleans. Projects only accept keys already present in the factory token.

Default
{"foreground":"#a5d6a7"}
Accepts
{ foreground, bold?, italic?, dim? }
Scope
Restricted project overrides

editor.syntax.styles.comment

On save in OEC

foreground requires #RRGGBB. bold/italic/dim are optional booleans. Projects only accept keys already present in the factory token.

Default
{"foreground":"#7d8590","italic":true,"dim":true}
Accepts
{ foreground, bold?, italic?, dim? }
Scope
Restricted project overrides

editor.syntax.styles.number

On save in OEC

foreground requires #RRGGBB. bold/italic/dim are optional booleans. Projects only accept keys already present in the factory token.

Default
{"foreground":"#e3b341"}
Accepts
{ foreground, bold?, italic?, dim? }
Scope
Restricted project overrides

editor.syntax.styles.tag

On save in OEC

foreground requires #RRGGBB. bold/italic/dim are optional booleans. Projects only accept keys already present in the factory token.

Default
{"foreground":"#ffab70","bold":true}
Accepts
{ foreground, bold?, italic?, dim? }
Scope
Restricted project overrides

editor.syntax.styles.property

On save in OEC

foreground requires #RRGGBB. bold/italic/dim are optional booleans. Projects only accept keys already present in the factory token.

Default
{"foreground":"#d2a8ff"}
Accepts
{ foreground, bold?, italic?, dim? }
Scope
Restricted project overrides

editor.formatting.formatOnSave

On save in OEC

Format before normal save; close/quit confirmations use another path and skip this step.

Default
false
Accepts
boolean
Scope
Global and project

editor.formatting.byExtension

On save in OEC

Map an extension to prettier, none or a global external formatter name. Projects cannot add extensions outside the factory map.

Default
{".js":"prettier",".jsx":"prettier",".ts":"prettier",".tsx":"prettier",".json":"prettier",".css":"prettier",".html":"prettier",".svg":"prettier",".md":"prettier",".yml":"prettier",".yaml":"prettier"}
Accepts
Record<.extension, formatter>
Scope
Restricted project overrides

keyboard.profile

On save in OEC

Enable the Vim subset. Starts in insert mode.

Default
"default"
Accepts
"default" | "vim"
Scope
Global and project

keyboard.bindings

On save in OEC

Replace bindings for the catalog’s 28 configurable IDs, including editor.selectAll. An empty array disables a shortcut. The project parser rejects adding IDs to the empty factory map: configure bindings globally.

Default
{}
Accepts
Record<commandId, string[]>
Scope
Restricted project overrides

formatters.external

On save in OEC

Global executable registry. Projects can select a global name but cannot declare formatters.

Default
{}
Accepts
Record<name, ExternalFormatter>
Scope
Global only

formatters.external.<name>.command

On save in OEC

Executable without a shell; inherits process environment and directory. Not a sandbox.

Default
—
Accepts
string ≠ empty
Scope
Global only

formatters.external.<name>.args

On save in OEC

Separate arguments. Content arrives on stdin; file names are not automatically interpolated.

Default
—
Accepts
string[]
Scope
Global only

search.respectGitignore

Restart OEC

Apply root .gitignore rules to the index and line count. Does not read nested .gitignore files.

Default
true
Accepts
boolean
Scope
Global and project

git.autoRefresh

Restart OEC

Install a recursive watcher over the open folder with a 400 ms debounce, including while discovering nested repositories. Ignores .git events; not periodic fetch.

Default
true
Accepts
boolean
Scope
Global and project

git.fetchOnRefresh

Restart OEC

F5 and the palette entry fetch before reading status. Local status is read even if fetch fails.

Default
true
Accepts
boolean
Scope
Global and project

updates.checkOnStartup

Restart OEC

With the npm launcher only: after one second query latest and verify launcher/platform metadata and archives, with a 15-second total timeout. Incomplete releases are not offered.

Default
true
Accepts
boolean
Scope
Global and project

preview.markdownDefault

Restart OEC

View used when opening a new Markdown file; F4 toggles during the session.

Default
"preview"
Accepts
"preview" | "source"
Scope
Global and project

preview.images

Restart OEC

Enable raster and SVG previews. SVG allows toggling XML with F4; when disabled, SVG opens as source and binary images may be rejected during text reading.

Default
true
Accepts
boolean
Scope
Global and project

preview.imageProtocol

On save in OEC

Protocol passed to the image renderer. Actual support depends on the terminal.

Default
"auto"
Accepts
"auto" | "kitty" | "sixel" | "blocks"
Scope
Global and project

Chapter sources

Links pinned to the reviewed commit; they do not follow main.

Static documentation · ES / ENView coverage ↗