EditorConfig¶
Modular Text Editor noudattaa .editorconfig-tiedostoja, joten
editori mukautuu automaattisesti kunkin projektin käytäntöihin — sisennykseen,
rivinvaihtoihin, merkistöön, rivien lopun tyhjemerkkeihin ja päättävään rivinvaihtoon —
ilman mitään käsin tehtäviä asetuksia. Tämä on editorin sisäänrakennettu ominaisuus
eikä liitännäinen.
Se on hiljainen ja automaattinen: valikkokomentoja ei ole. Editori lukee ne
.editorconfig-tiedostot, jotka koskevat tiedostoa, kun avaat ja tallennat sen.
Miten se toimii¶
Kun avaat tiedoston, editori kulkee ylöspäin tiedoston kansiosta keräten
.editorconfig-tiedostoja, kunnes se saavuttaa sellaisen, joka on merkitty
root = true (tai aseman juuren). Lähimmän tiedoston säännöt voittavat, ja myöhemmät osiot
ohittavat aiemmat. Näin saadut asetukset otetaan käyttöön näin:
- Avattaessa —
indent_style,indent_sizejatab_widthtyönnetään asiakirjaan, jotta Tab-näppäin, Backspacen sisennyksen purku ja automaattinen sisennys noudattavat kaikki projektin käytäntöä. Projektin.editorconfigmenee yleisen sisennysasetuksesi edelle (katso Automaattiset parit ja sisennys ▸ etusijajärjestys). - Tallennettaessa — rivien lopun tyhjemerkit karsitaan, päättävä rivinvaihto lisätään tai poistetaan, rivinvaihdot normalisoidaan ja tiedosto kirjoitetaan pyydetyllä merkistöllä.
Projektin asetukset otetaan käyttöön hiljaisesti, mutta ne pysyvät ohitettavina: voit aina muuttaa sisennystä käsin, ja koko ominaisuuden voi kytkeä pois (katso Asetukset).
Asetukset¶
Asetukset ▸ Yleiset:
- Ota projektin .editorconfig-asetukset käyttöön — kytke koko ominaisuus päälle tai
pois (oletuksena päällä). Kun se on pois, editori ohittaa
.editorconfig-tiedoston kokonaan: se ei ota käyttöön vakioavaimia eikä paljasta liitännäiskohtaisia avaimia, jotka on kuvattu alla.
Tuetut ominaisuudet¶
EditorConfig määrittelee pienen, kiinteän joukon ominaisuuksia. Taulukko näyttää jokaisen niistä ja sen, mitä editori tekee sillä. Ominaisuuksien nimet ja tunnetut arvot ovat kirjainkoosta riippumattomia.
| Ominaisuus | Hyväksytyt arvot | Mitä editori tekee |
|---|---|---|
root |
true / false (täytyy esiintyä ennen ensimmäistä [osiota]) |
true lopettaa haun tähän tiedostoon — se on ylin kokoonpano. |
indent_style |
tab / space |
Valitsee sarkaimet tai välilyönnit sisennykseen. |
indent_size |
kokonaisluku tai tab |
Asettaa, montako saraketta yksi sisennystaso on (tab noudattaa arvoa tab_width). |
tab_width |
kokonaisluku | Asettaa sarkaimen näkyvän leveyden; oletuksena indent_size. |
end_of_line |
lf / cr / crlf |
Normalisoi rivinvaihdot tallennettaessa. |
charset |
latin1 / utf-8 / utf-8-bom / utf-16be / utf-16le |
Kirjoittaa tiedoston tällä koodauksella tallennettaessa. |
trim_trailing_whitespace |
true / false |
true poistaa välilyönnit ja sarkaimet kunkin rivin lopusta tallennettaessa. |
insert_final_newline |
true / false |
true varmistaa, että tiedosto päättyy täsmälleen yhteen rivinvaihtoon; false poistaa lopun rivinvaihdot. |
max_line_length |
kokonaisluku tai off |
Tunnistetaan, mutta ei vielä oteta käyttöön. |
spelling_language |
kielikoodi, esimerkiksi en-US |
Tunnistetaan, mutta ei vielä oteta käyttöön. |
mikä tahansa ominaisuus = unset |
unset |
Tyhjentää laajemman säännön asettaman arvon ja palauttaa editorin oman oletuksen. |
Kaksi ominaisuutta luetaan mutta niiden mukaan ei vielä toimita
max_line_length ja spelling_language ovat osa EditorConfig-standardia, mutta kaikki
editorit eivät tue niitä. Editori jäsentää ne (joten ne eivät aiheuta virheitä) muttei
vielä toimi niiden mukaan.
end_of_line päättää myös sen, mitä Enter lisää
Asiakirja säilyttää yleensä ne rivinvaihdot, jotka sen tiedostossa jo oli, ja Enter
lisää niitä. Kun end_of_line on voimassa, tallennus normalisoi puskurin ja
siirtää asiakirjan tuohon käytäntöön, jotta aivan seuraava Enter vastaa sitä, mikä
juuri kirjoitettiin levylle. Tilarivin rivinvaihto-osio seuraa perässä.
Itse .editorconfig-tiedoston tavujärjestysmerkki ohitetaan
Windows-editorin tallentama .editorconfig alkaa usein UTF-8-tavujärjestysmerkillä.
Editori riisuu sen ennen jäsentämistä, joten tiedoston ensimmäinen ominaisuus — yleensä
root = true — luetaan tavalliseen tapaan.
Tiedostojen täsmäys (glob-hahmot)¶
Kukin [osio]-otsikko on glob-hahmo, joka täsmätään tiedostopolkuun suhteessa siihen
kansioon, jossa .editorconfig on:
| Hahmo | Täsmää |
|---|---|
* |
mitkä tahansa merkit paitsi polkuerotin (/) |
** |
mitkä tahansa merkit, myös / (ulottuu kansioiden yli) |
? |
täsmälleen yhden merkin paitsi / |
{a,b,c} |
minkä tahansa pilkuilla erotetuista merkkijonoista |
{1..9} |
minkä tahansa kokonaisluvun välillä |
[abc] |
minkä tahansa yksittäisen merkin joukosta |
[!abc] |
minkä tahansa yksittäisen merkin, joka ei ole joukossa |
nimi |
hahmo ilman /-merkkiä täsmää missä tahansa alikansiossa |
/nimi |
alussa oleva / ankkuroi täsmäyksen kokoonpanotiedoston omaan kansioon |
Liitännäiskohtaiset asetukset¶
Vakioavainten lisäksi .editorconfig voi kantaa myös liitännäiskohtaista kokoonpanoa.
Liitännäinen lukee omat asetuksensa nimiavaruudesta mte.<plugin-id>.<key>, ja
projektin arvo ohittaa käyttäjän yleisen valinnan (asetettu kohdassa Asetukset) kyseisen
projektin tiedostoille. Tätä ohjaa sama yllä mainittu Ota .editorconfig-asetukset
käyttöön -kytkin — kytke se pois, niin myös nämä avaimet ohitetaan.
Käytettävissä olevat liitännäisavaimet¶
Tämä on täydellinen luettelo niistä liitännäisasetuksista, joita editori noudattaa
.editorconfig-tiedostosta tänään. Se kasvaa vain, kun liitännäinen nimenomaisesti
ilmoittautuu mukaan; mikä tahansa avain, jota ei ole täällä lueteltu (mukaan lukien ne,
jotka kuuluvat liitännäisille, jotka eivät lue .editorconfig-tiedostoa), jäsennetään
mutta sillä ei ole vaikutusta.
| Avain | Tyyppi | Oletus | Vaikutus |
|---|---|---|---|
mte.org.mte.url.enabled |
true / false |
yleinen URL-korostuksen kytkin (Asetukset) | Ota URL-osoitteiden tunnistus ja korostus käyttöön tai pois tämän projektin tiedostoille. |
Esimerkki — kytke URL-korostus pois yhdeltä projektilta yleisestä kytkimestä riippumatta:
Miksi niin harvoja?
Liitännäiskohtaiset avaimet on tarkoituksella rajattu aitoihin
projektikäytäntöihin (asetuksiin, jotka tiimi lisäisi versionhallintaan ja jakaisi).
Useimmat liitännäisasetukset — hakuhistoria, automaattisen tallennuksen välit, viimeksi
avattu kansio, käyttöjärjestelmän tiedostoliitokset — ovat henkilökohtaista tai koneen
tilaa, eivätkä ne tarkoituksella kuulu jaettuun .editorconfig-tiedostoon.
Klassisen projektikäytännön, sisennyksen, kattavat yllä olevat vakioavaimet. Lisää
liitännäisavaimia voi ilmestyä tänne, kun liitännäiset ottavat ominaisuuden käyttöön.
Esimerkki¶
Projektin juureen sijoitettu .editorconfig, jossa käytetään jokaista ominaisuutta ja
glob-muotoa:
# 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
Kommenttien täytyy olla omalla rivillään
EditorConfigissa ei ole rivin sisäisiä kommentteja. # tai ; aloittaa kommentin
vain rivin alussa. Jos kirjoitat indent_size = 4 # neljä, arvoksi tulee
4 # neljä, mikä on virheellinen ja ohitetaan hiljaisesti — sijoita kommentti
mieluummin yläpuoliselle riville. (Näin toimii jokainen muukin EditorConfigin tunteva
editori.)