Hyppää sisältöön

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_size ja tab_width työnnetään asiakirjaan, jotta Tab-näppäin, Backspacen sisennyksen purku ja automaattinen sisennys noudattavat kaikki projektin käytäntöä. Projektin .editorconfig menee 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:

[*]
mte.org.mte.url.enabled = false

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.)