EditorConfig¶
Modular Text Editor respekterar .editorconfig-filer,
så att redigeraren automatiskt rättar sig efter varje projekts konventioner —
indrag, radslut, teckenuppsättning, efterföljande blanksteg och avslutande nyrad —
utan någon manuell inställning. Detta är en inbyggd funktion i redigeraren,
inte en insticksmodul.
Den är tyst och automatisk: det finns inga menykommandon. Redigeraren läser de
.editorconfig-filer som gäller för en fil när du öppnar och sparar den.
Hur det fungerar¶
När du öppnar en fil vandrar redigeraren uppåt från filens mapp och samlar
.editorconfig-filer tills den når en som är märkt root = true (eller
enhetsroten). Regler från den närmaste filen vinner, och senare avsnitt
åsidosätter tidigare. De resulterande inställningarna tillämpas så här:
- Vid öppnande —
indent_style,indent_sizeochtab_widthskjuts in i dokumentet så att Tab-tangenten, utdrag med backsteg och automatiskt indrag alla följer projektets konvention. Ett projekts.editorconfighar företräde framför din globala indragsinställning (se Automatiska par och indrag ▸ företräde). - Vid sparande — efterföljande blanksteg trimmas, den avslutande nyraden läggs till eller tas bort, radslut normaliseras, och filen skrivs i den begärda teckenuppsättningen.
Projektinställningar gäller tyst men förblir åsidosättbara: du kan alltid ändra indraget för hand, och hela funktionen kan stängas av (se Inställningar).
Inställningar¶
Inställningar ▸ Allmänt:
- Tillämpa .editorconfig-inställningar från projektet — slå på eller av hela
funktionen (på som standard). När den är av ignorerar redigeraren
.editorconfigfullständigt: den tillämpar varken standardnycklarna eller tillgängliggör nycklarna per insticksmodul som beskrivs nedan.
Egenskaper som stöds¶
EditorConfig definierar en liten, fast uppsättning egenskaper. Tabellen visar dem alla och vad redigeraren gör med dem. Egenskapsnamn och de kända värdena är oberoende av skiftläge.
| Egenskap | Godtagna värden | Vad redigeraren gör |
|---|---|---|
root |
true / false (måste stå före det första [avsnittet]) |
true avbryter sökningen vid den här filen — den är den översta konfigurationen. |
indent_style |
tab / space |
Väljer tabbar eller blanksteg för indrag. |
indent_size |
ett heltal, eller tab |
Anger hur många kolumner en indragsnivå är (tab följer tab_width). |
tab_width |
ett heltal | Anger en tabbs visuella bredd; är som standard indent_size. |
end_of_line |
lf / cr / crlf |
Normaliserar radslut vid sparande. |
charset |
latin1 / utf-8 / utf-8-bom / utf-16be / utf-16le |
Skriver filen i den här teckenkodningen vid sparande. |
trim_trailing_whitespace |
true / false |
true tar bort mellanslag och tabbar i slutet av varje rad vid sparande. |
insert_final_newline |
true / false |
true ser till att filen slutar med exakt en nyrad; false tar bort avslutande nyrader. |
max_line_length |
ett heltal, eller off |
Känns igen men tillämpas ännu inte. |
spelling_language |
en språkkod, t.ex. en-US |
Känns igen men tillämpas ännu inte. |
valfri egenskap = unset |
unset |
Tömmer ett värde som satts av en bredare regel och återställer redigerarens egen standard. |
Två egenskaper läses men följs ännu inte
max_line_length och spelling_language ingår i EditorConfig-standarden men
stöds inte av alla redigerare. Redigeraren tolkar dem (så att de inte orsakar
fel) men agerar ännu inte på dem.
end_of_line avgör också vad Enter infogar
Ett dokument behåller normalt de radslut dess fil redan hade, och Enter
infogar dem. När en end_of_line gäller normaliserar sparandet bufferten
och flyttar dokumentet till den konventionen, så att nästa Enter matchar
det som just skrevs till disken. Statusradens radslutssegment följer med.
En byteordningsmarkering i självaste .editorconfig ignoreras
En .editorconfig som sparats av en Windows-redigerare börjar ofta med en
UTF-8-byteordningsmarkering. Redigeraren skalar bort den före tolkningen, så att
filens första egenskap — oftast root = true — läses normalt.
Filmatchning (globmönster)¶
Varje [avsnitts]-rubrik är ett globmönster som matchas mot filsökvägen, relativt
den mapp som innehåller .editorconfig:
| Mönster | Matchar |
|---|---|
* |
vilka tecken som helst utom en sökvägsavskiljare (/) |
** |
vilka tecken som helst, inklusive / (spänner över mappar) |
? |
exakt ett tecken utom / |
{a,b,c} |
vilken som helst av de kommaseparerade strängarna |
{1..9} |
vilket heltal som helst i intervallet |
[abc] |
vilket enskilt tecken som helst i mängden |
[!abc] |
vilket enskilt tecken som helst som inte är i mängden |
name |
ett mönster utan / matchar i vilken undermapp som helst |
/name |
ett inledande / förankrar matchningen till konfigurationsfilens mapp |
Inställningar per insticksmodul¶
Utöver standardnycklarna kan .editorconfig också bära konfiguration per
insticksmodul. En insticksmodul läser sina egna inställningar under namnrymden
mte.<plugin-id>.<key>, och ett projektvärde åsidosätter användarens globala
inställning (satt i Inställningar) för filer i det projektet. Detta styrs av samma
växel Tillämpa .editorconfig-inställningar ovan — stäng av den så ignoreras
även dessa nycklar.
Tillgängliga nycklar för insticksmoduler¶
Detta är den fullständiga listan över inställningar för insticksmoduler som
redigeraren i dag respekterar från .editorconfig. Den växer bara i takt med att
en insticksmodul uttryckligen ansluter sig; varje nyckel som inte står här
(inklusive de för insticksmoduler som inte läser .editorconfig) tolkas men har
ingen effekt.
| Nyckel | Typ | Standard | Effekt |
|---|---|---|---|
mte.org.mte.url.enabled |
true / false |
den globala växeln för URL-markering (Inställningar) | Aktivera eller inaktivera identifiering och färgmarkering av URL:er för filer i det här projektet. |
Exempel — stäng av URL-markeringen för ett projekt, oavsett den globala växeln:
Varför så få?
Nycklar per insticksmodul är medvetet begränsade till genuina
projektkonventioner (inställningar ett team skulle checka in och dela). De
flesta inställningar för insticksmoduler — sökhistorik, intervall för
automatiskt sparande, den senast öppnade mappen, operativsystemets filkopplingar
— är personligt eller maskinbundet tillstånd och hör med avsikt inte hemma i
en delad .editorconfig. Den klassiska projektkonventionen, indraget, täcks av
standardnycklarna ovan. Fler nycklar för insticksmoduler kan dyka upp här i takt
med att insticksmoduler tar upp funktionen.
Exempel¶
En .editorconfig placerad i ett projekts rot, som använder varje egenskap och
varje 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 måste stå på egen rad
EditorConfig har inga kommentarer inuti en rad. Ett # eller ; inleder
en kommentar endast i början av en rad. Att skriva indent_size = 4 # four
gör värdet 4 # four, vilket är ogiltigt och tyst ignoreras — sätt i stället
kommentaren på raden ovanför. (Detta stämmer med varje annan redigerare som
känner EditorConfig.)