EditorConfig¶
Modular Text Editor rešpektuje súbory .editorconfig, takže sa
editor automaticky prispôsobí zvyklostiam každého projektu — odsadeniu, koncom riadkov, znakovej
sade, medzerám na konci riadka aj koncovému novému riadku — bez akéhokoľvek ručného nastavovania.
Ide o vstavanú funkciu editora, nie o zásuvný modul.
Funguje potichu a automaticky: neexistujú k nej žiadne príkazy v ponuke. Editor prečíta súbory
.editorconfig platné pre daný súbor pri jeho otvorení a uložení.
Ako to funguje¶
Keď otvoríte súbor, editor postupuje smerom nahor od priečinka so súborom a zbiera súbory
.editorconfig, kým nenarazí na taký, ktorý je označený root = true (alebo na koreň disku).
Vyhrávajú pravidlá z najbližšieho súboru a neskoršie sekcie prekrývajú skoršie. Výsledné
nastavenia sa uplatnia takto:
- Pri otvorení —
indent_style,indent_sizeatab_widthsa vložia do dokumentu, takže kláves Tab, zmenšenie odsadenia backspaceom aj automatické odsadenie rešpektujú zvyklosť projektu. Súbor.editorconfigprojektu má prednosť pred vaším globálnym nastavením odsadenia (pozri Automatické páry a odsadenie ▸ poradie). - Pri uložení — orežú sa medzery na konci riadkov, pridá alebo odoberie sa koncový nový riadok, zjednotia sa konce riadkov a súbor sa zapíše v požadovanej znakovej sade.
Nastavenia projektu sa uplatňujú potichu, ale ostávajú prepísateľné: odsadenie môžete kedykoľvek zmeniť ručne a celú funkciu sa dá vypnúť (pozri Nastavenia).
Nastavenia¶
Predvoľby ▸ Všeobecné:
- Uplatňovať nastavenia .editorconfig z projektu — zapne alebo vypne celú funkciu
(predvolene zapnuté). Keď je vypnutá, editor
.editorconfigúplne ignoruje: neuplatní štandardné kľúče ani nesprístupní kľúče jednotlivých zásuvných modulov opísané nižšie.
Podporované vlastnosti¶
EditorConfig definuje malú, pevne danú sadu vlastností. Tabuľka uvádza všetky a to, čo s nimi editor robí. Názvy vlastností aj známe hodnoty nerozlišujú veľkosť písmen.
| Vlastnosť | Prijímané hodnoty | Čo editor urobí |
|---|---|---|
root |
true / false (musí byť uvedené pred prvou sekciou [section]) |
true zastaví hľadanie pri tomto súbore — je to najvyššia konfigurácia. |
indent_style |
tab / space |
Zvolí na odsadzovanie tabulátory alebo medzery. |
indent_size |
celé číslo alebo tab |
Určí, koľko stĺpcov má jedna úroveň odsadenia (tab sa riadi hodnotou tab_width). |
tab_width |
celé číslo | Určí vizuálnu šírku tabulátora; predvolene sa rovná indent_size. |
end_of_line |
lf / cr / crlf |
Pri ukladaní zjednotí konce riadkov. |
charset |
latin1 / utf-8 / utf-8-bom / utf-16be / utf-16le |
Pri ukladaní zapíše súbor v tomto kódovaní. |
trim_trailing_whitespace |
true / false |
true pri ukladaní odstráni medzery a tabulátory na konci každého riadka. |
insert_final_newline |
true / false |
true zaručí, že sa súbor končí presne jedným novým riadkom; false koncové nové riadky odstráni. |
max_line_length |
celé číslo alebo off |
Rozpoznané, ale zatiaľ sa neuplatňuje. |
spelling_language |
kód jazyka, napr. en-US |
Rozpoznané, ale zatiaľ sa neuplatňuje. |
ľubovoľná vlastnosť = unset |
unset |
Zruší hodnotu nastavenú širším pravidlom a obnoví vlastnú predvoľbu editora. |
Dve vlastnosti sa čítajú, ale zatiaľ sa podľa nich nekoná
max_line_length a spelling_language sú súčasťou štandardu EditorConfig, no editory ich
nepodporujú plošne. Editor ich spracuje (takže nespôsobujú chyby), ale zatiaľ sa podľa nich
neriadi.
end_of_line určuje aj to, čo vloží Enter
Dokument si bežne ponecháva konce riadkov, aké jeho súbor už mal, a Enter vkladá práve
ich. Keď sa uplatní end_of_line, uloženie buffer zjednotí a zároveň prepne dokument
na danú zvyklosť, takže hneď nasledujúci Enter zodpovedá tomu, čo sa práve zapísalo na
disk. Segment stavového riadka s koncami riadkov to nasleduje.
Značka poradia bajtov v samotnom .editorconfig sa ignoruje
Súbor .editorconfig uložený editorom vo Windows sa často začína značkou poradia bajtov
UTF-8. Editor ju pred spracovaním odstráni, takže prvá vlastnosť súboru — zvyčajne
root = true — sa prečíta bežným spôsobom.
Zhoda súborov (globy)¶
Každá hlavička [section] je glob porovnávaný s cestou k súboru, relatívnou k priečinku, ktorý
obsahuje .editorconfig:
| Vzor | Zodpovedá |
|---|---|
* |
ľubovoľným znakom okrem oddeľovača cesty (/) |
** |
ľubovoľným znakom vrátane / (prechádza cez priečinky) |
? |
presne jednému znaku okrem / |
{a,b,c} |
ktorémukoľvek z reťazcov oddelených čiarkou |
{1..9} |
ľubovoľnému celému číslu z rozsahu |
[abc] |
ľubovoľnému jednému znaku zo sady |
[!abc] |
ľubovoľnému jednému znaku, ktorý nie je v sade |
názov |
vzor bez / zodpovedá v ktoromkoľvek podpriečinku |
/názov |
úvodné / ukotví zhodu na priečinok s konfiguračným súborom |
Nastavenia jednotlivých zásuvných modulov¶
Okrem štandardných kľúčov môže .editorconfig niesť aj konfiguráciu jednotlivých zásuvných
modulov. Zásuvný modul si číta vlastné nastavenia v mennom priestore mte.<plugin-id>.<key>
a hodnota z projektu prekryje pre súbory v tomto projekte globálnu predvoľbu používateľa
(nastavenú v Predvoľbách). Riadi sa to tým istým prepínačom Uplatňovať nastavenia
.editorconfig uvedeným vyššie — po jeho vypnutí sa ignorujú aj tieto kľúče.
Dostupné kľúče zásuvných modulov¶
Toto je úplný zoznam nastavení zásuvných modulov, ktoré dnes editor zo súboru
.editorconfig rešpektuje. Rastie len tak, ako sa do neho zásuvné moduly výslovne zapoja; každý
kľúč, ktorý tu nie je uvedený (vrátane kľúčov modulov, ktoré .editorconfig nečítajú), sa
spracuje, ale nemá žiadny účinok.
| Kľúč | Typ | Predvolené | Účinok |
|---|---|---|---|
mte.org.mte.url.enabled |
true / false |
globálny prepínač Zvýrazňovača URL (Predvoľby) | Zapne alebo vypne rozpoznávanie a zvýrazňovanie adries URL pre súbory v tomto projekte. |
Príklad — vypnutie zvýrazňovania adries URL pre jeden projekt bez ohľadu na globálny prepínač:
Prečo je ich tak málo?
Kľúče zásuvných modulov sú zámerne obmedzené na skutočné zvyklosti projektu (nastavenia,
ktoré by tím zapísal do repozitára a zdieľal). Väčšina nastavení zásuvných modulov —
história hľadania, intervaly automatického ukladania, naposledy otvorený priečinok,
priradenia súborov v operačnom systéme — je osobným alebo strojovým stavom a do zdieľaného
súboru .editorconfig zámerne nepatrí. Klasickú zvyklosť projektu, odsadenie, pokrývajú
štandardné kľúče uvedené vyššie. Ďalšie kľúče zásuvných modulov tu môžu pribudnúť, ako túto
funkciu prevezmú.
Príklad¶
Súbor .editorconfig umiestnený v koreni projektu, s použitím všetkých vlastností a tvarov
globov:
# 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
Komentáre musia byť na vlastnom riadku
EditorConfig nepozná komentáre na konci riadka. Znak # alebo ; začína komentár iba
na začiatku riadka. Zápisom indent_size = 4 # štyri sa hodnotou stane 4 # štyri, čo je
neplatné a potichu sa ignoruje — komentár preto napíšte na riadok vyššie. (Rovnako to robí
každý iný editor, ktorý pozná EditorConfig.)