EditorConfig¶
Modular Text Editor respekterer .editorconfig-filer,
så editoren automatisk retter sig efter hvert projekts konventioner — indrykning,
linjeskift, tegnsæt, efterfølgende blanktegn og afsluttende linjeskift — uden nogen
manuel opsætning. Dette er en indbygget funktion i editoren, ikke et
udvidelsesmodul.
Den er stille og automatisk: der er ingen menukommandoer. Editoren læser de
.editorconfig-filer, der gælder for en fil, når du åbner og gemmer den.
Sådan virker det¶
Når du åbner en fil, vandrer editoren opad fra filens mappe og samler
.editorconfig-filer, indtil den når en, der er mærket root = true (eller
drevroden). Regler fra den nærmeste fil vinder, og senere afsnit tilsidesætter
tidligere. De resulterende indstillinger anvendes sådan:
- Ved åbning —
indent_style,indent_sizeogtab_widthskubbes ind i dokumentet, så Tab-tasten, udrykning med backspace og automatisk indrykning alle følger projektets konvention. Et projekts.editorconfighar forrang frem for din globale indrykningsindstilling (se Automatiske par og indrykning ▸ forrang). - Ved gemning — efterfølgende blanktegn trimmes, det afsluttende linjeskift tilføjes eller fjernes, linjeskift normaliseres, og filen skrives i det ønskede tegnsæt.
Projektindstillinger gælder stille, men forbliver mulige at tilsidesætte: du kan altid ændre indrykningen manuelt, og hele funktionen kan slås fra (se Indstillinger).
Indstillinger¶
Indstillinger ▸ Generelt:
- Anvend .editorconfig-indstillinger fra projektet — slå hele funktionen til
eller fra (slået til som standard). Når den er slået fra, ignorerer editoren
.editorconfigfuldstændigt: den anvender hverken standardnøglerne eller stiller nøglerne pr. udvidelsesmodul til rådighed, som beskrives nedenfor.
Understøttede egenskaber¶
EditorConfig definerer et lille, fast sæt egenskaber. Tabellen viser dem alle, og hvad editoren gør med dem. Egenskabsnavne og de kendte værdier er uafhængige af store og små bogstaver.
| Egenskab | Accepterede værdier | Hvad editoren gør |
|---|---|---|
root |
true / false (skal stå før det første [afsnit]) |
true standser søgningen ved denne fil — den er den øverste konfiguration. |
indent_style |
tab / space |
Vælger tabulatorer eller mellemrum til indrykning. |
indent_size |
et helt tal, eller tab |
Angiver hvor mange kolonner ét indrykningsniveau er (tab følger tab_width). |
tab_width |
et helt tal | Angiver en tabulators synlige bredde; er som standard indent_size. |
end_of_line |
lf / cr / crlf |
Normaliserer linjeskift ved gemning. |
charset |
latin1 / utf-8 / utf-8-bom / utf-16be / utf-16le |
Skriver filen i denne tegnkodning ved gemning. |
trim_trailing_whitespace |
true / false |
true fjerner mellemrum og tabulatorer i slutningen af hver linje ved gemning. |
insert_final_newline |
true / false |
true sikrer, at filen slutter med præcis ét linjeskift; false fjerner afsluttende linjeskift. |
max_line_length |
et helt tal, eller off |
Genkendes, men anvendes endnu ikke. |
spelling_language |
en sprogkode, f.eks. en-US |
Genkendes, men anvendes endnu ikke. |
enhver egenskab = unset |
unset |
Rydder en værdi sat af en bredere regel og genskaber editorens egen standard. |
To egenskaber læses, men følges endnu ikke
max_line_length og spelling_language er en del af EditorConfig-standarden,
men understøttes ikke af alle editorer. Editoren fortolker dem (så de ikke
forårsager fejl), men handler endnu ikke på dem.
end_of_line afgør også, hvad Enter indsætter
Et dokument beholder normalt de linjeskift, dets fil allerede havde, og Enter
indsætter dem. Når en end_of_line gælder, normaliserer gemningen bufferen
og flytter dokumentet til den konvention, så det allernæste Enter passer
til det, der lige er skrevet til disken. Statuslinjens linjeskiftssegment følger
med.
Et byteordensmærke i selve .editorconfig ignoreres
En .editorconfig gemt af en Windows-editor begynder ofte med et
UTF-8-byteordensmærke. Editoren skræller det af før fortolkningen, så filens
første egenskab — som regel root = true — læses normalt.
Filmatchning (globmønstre)¶
Hver [afsnits]-overskrift er et globmønster, der matches mod filstien, i forhold
til den mappe, der indeholder .editorconfig:
| Mønster | Matcher |
|---|---|
* |
vilkårlige tegn undtagen et stiskilletegn (/) |
** |
vilkårlige tegn, inklusive / (spænder over mapper) |
? |
præcis ét tegn undtagen / |
{a,b,c} |
en af de kommaadskilte strenge |
{1..9} |
ethvert helt tal i intervallet |
[abc] |
ethvert enkelt tegn i mængden |
[!abc] |
ethvert enkelt tegn, der ikke er i mængden |
name |
et mønster uden / matcher i enhver undermappe |
/name |
et indledende / forankrer matchet til konfigurationsfilens mappe |
Indstillinger pr. udvidelsesmodul¶
Ud over standardnøglerne kan .editorconfig også bære konfiguration pr.
udvidelsesmodul. Et udvidelsesmodul læser sine egne indstillinger under navnerummet
mte.<plugin-id>.<key>, og en projektværdi tilsidesætter brugerens globale
indstilling (sat i Indstillinger) for filer i det projekt. Dette styres af samme
kontakt Anvend .editorconfig-indstillinger ovenfor — slå den fra, så ignoreres
også disse nøgler.
Tilgængelige nøgler til udvidelsesmoduler¶
Dette er den fulde liste over udvidelsesmodulindstillinger, som editoren i dag
respekterer fra .editorconfig. Den vokser kun, i takt med at et udvidelsesmodul
udtrykkeligt tilslutter sig; enhver nøgle, der ikke står her (herunder dem til
udvidelsesmoduler, der ikke læser .editorconfig), fortolkes, men har ingen
virkning.
| Nøgle | Type | Standard | Virkning |
|---|---|---|---|
mte.org.mte.url.enabled |
true / false |
den globale kontakt for URL-fremhævning (Indstillinger) | Slå genkendelse og fremhævning af URL'er til eller fra for filer i dette projekt. |
Eksempel — slå URL-fremhævningen fra for ét projekt, uanset den globale kontakt:
Hvorfor så få?
Nøgler pr. udvidelsesmodul er bevidst begrænset til ægte
projektkonventioner (indstillinger, et team ville tjekke ind og dele). De
fleste udvidelsesmodulindstillinger — søgehistorik, intervaller for automatisk
gemning, den senest åbnede mappe, styresystemets filtilknytninger — er personlig
eller maskinbunden tilstand og hører med vilje ikke hjemme i en delt
.editorconfig. Den klassiske projektkonvention, indrykningen, dækkes af
standardnøglerne ovenfor. Flere nøgler til udvidelsesmoduler kan dukke op her, i
takt med at moduler tager funktionen til sig.
Eksempel¶
En .editorconfig placeret i et projekts rod, der bruger hver egenskab og hver
globform:
# Top-most config in the project: stop searching parent directories.
root = true
# Defaults for every file in this tree.
[*]
indent_style = space
indent_size = 4
tab_width = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
# max_line_length and spelling_language are recognised but not yet applied.
max_line_length = 100
spelling_language = en-US
# Makefiles must use real tabs.
[Makefile]
indent_style = tab
# 2-space indent for web/markup/data files (brace alternation).
[*.{js,ts,json,yml,yaml,html,css}]
indent_size = 2
# Markdown keeps trailing whitespace (two spaces = a hard line break).
[*.md]
trim_trailing_whitespace = false
# Windows batch files want CRLF and a legacy code page.
[*.{bat,cmd}]
end_of_line = crlf
charset = latin1
# '**' spans folders; '?' matches one character.
[docs/**.txt]
indent_size = 2
[log/file?.log]
indent_size = 8
# Integer-range and character-class globs.
[page{1..9}.txt]
indent_size = 1
[[Mm]akefile.inc]
indent_style = tab
# A leading '/' anchors to this file's folder only.
[/CHANGELOG.md]
max_line_length = off
# 'unset' clears a value set by a broader rule.
[lib/legacy/*]
indent_style = unset
indent_size = unset
# A plugin's own setting (URL Highlighter), overriding the global toggle here.
mte.org.mte.url.enabled = false
Kommentarer skal stå på deres egen linje
EditorConfig har ingen kommentarer inde i en linje. Et # eller ;
indleder kun en kommentar i begyndelsen af en linje. At skrive
indent_size = 4 # four gør værdien til 4 # four, hvilket er ugyldigt og
ignoreres stille — sæt i stedet kommentaren på linjen ovenover. (Dette svarer
til enhver anden editor, der kender EditorConfig.)