EditorConfig¶
Modular Text Editor eerbiedigt .editorconfig-bestanden,
zodat de editor zich automatisch naar de afspraken van elk project voegt —
inspringing, regeleinden, tekenset, volgwitruimte en een afsluitende nieuwe regel
— zonder dat u iets hoeft in te stellen. Dit is een ingebouwde functie van de
editor, geen plug-in.
Ze is stil en automatisch: er zijn geen menuopdrachten. De editor leest de
.editorconfig-bestanden die op een bestand van toepassing zijn wanneer u het
opent en opslaat.
Hoe het werkt¶
Wanneer u een bestand opent, loopt de editor omhoog vanaf de map van het bestand
en verzamelt .editorconfig-bestanden tot hij er een bereikt met root = true
(of de wortel van de schijf). Regels uit het dichtstbijzijnde bestand winnen, en
latere secties overschrijven eerdere. De resulterende instellingen worden zo
toegepast:
- Bij het openen —
indent_style,indent_sizeentab_widthworden in het document gezet, zodat de Tab-toets, het uitspringen met backspace en het automatisch inspringen alle de afspraak van het project volgen. De.editorconfigvan een project heeft voorrang op uw globale inspringinstelling (zie Automatische paren en inspringing ▸ voorrang). - Bij het opslaan — volgwitruimte wordt weggeknipt, de afsluitende nieuwe regel wordt toegevoegd of verwijderd, regeleinden worden genormaliseerd, en het bestand wordt in de gevraagde tekenset weggeschreven.
Projectinstellingen gelden stilzwijgend maar blijven overschrijfbaar: u kunt de inspringing altijd met de hand wijzigen, en de hele functie kan worden uitgezet (zie Instellingen).
Instellingen¶
Voorkeuren ▸ Algemeen:
- .editorconfig-instellingen uit het project toepassen — zet de hele functie
aan of uit (standaard aan). Staat die uit, dan negeert de editor
.editorconfigvolledig: hij past noch de standaardsleutels toe, noch stelt hij de sleutels per plug-in beschikbaar die hieronder beschreven staan.
Ondersteunde eigenschappen¶
EditorConfig definieert een kleine, vaste verzameling eigenschappen. De tabel toont ze allemaal en wat de editor ermee doet. Namen van eigenschappen en de bekende waarden zijn niet hoofdlettergevoelig.
| Eigenschap | Aanvaarde waarden | Wat de editor doet |
|---|---|---|
root |
true / false (moet vóór de eerste [sectie] staan) |
true stopt het zoeken bij dit bestand — het is de bovenste configuratie. |
indent_style |
tab / space |
Kiest tabs of spaties om in te springen. |
indent_size |
een geheel getal, of tab |
Bepaalt hoeveel kolommen één inspringniveau is (tab volgt tab_width). |
tab_width |
een geheel getal | Bepaalt de zichtbare breedte van een tab; standaard gelijk aan indent_size. |
end_of_line |
lf / cr / crlf |
Normaliseert de regeleinden bij het opslaan. |
charset |
latin1 / utf-8 / utf-8-bom / utf-16be / utf-16le |
Schrijft het bestand bij het opslaan in deze tekencodering. |
trim_trailing_whitespace |
true / false |
true verwijdert bij het opslaan spaties/tabs aan het einde van elke regel. |
insert_final_newline |
true / false |
true zorgt dat het bestand op precies één nieuwe regel eindigt; false verwijdert afsluitende nieuwe regels. |
max_line_length |
een geheel getal, of off |
Wordt herkend maar nog niet toegepast. |
spelling_language |
een taalcode, bijvoorbeeld en-US |
Wordt herkend maar nog niet toegepast. |
elke eigenschap = unset |
unset |
Wist een waarde die door een bredere regel is gezet en herstelt de eigen standaard van de editor. |
Twee eigenschappen worden gelezen maar nog niet opgevolgd
max_line_length en spelling_language horen bij de EditorConfig-standaard
maar worden niet door alle editors ondersteund. De editor ontleedt ze (zodat
ze geen fouten veroorzaken) maar handelt er nog niet naar.
end_of_line bepaalt ook wat Enter invoegt
Een document behoudt normaal de regeleinden die zijn bestand al had, en
Enter voegt die in. Wanneer er een end_of_line van toepassing is,
normaliseert het opslaan de buffer en brengt het het document op die
afspraak, zodat de eerstvolgende Enter overeenkomt met wat er zojuist naar
de schijf is geschreven. Het regeleindesegment op de statusbalk gaat mee.
Een byte-ordemarkering in .editorconfig zelf wordt genegeerd
Een .editorconfig die door een Windows-editor is opgeslagen begint vaak met
een UTF-8-byte-ordemarkering. De editor knipt die weg voor het ontleden,
zodat de eerste eigenschap van het bestand — meestal root = true — gewoon
gelezen wordt.
Bestanden koppelen (globs)¶
Elke [sectie]-kop is een glob die wordt vergeleken met het bestandspad, ten
opzichte van de map die de .editorconfig bevat:
| Patroon | Komt overeen met |
|---|---|
* |
willekeurige tekens behalve een padscheidingsteken (/) |
** |
willekeurige tekens, inclusief / (overspant mappen) |
? |
precies één teken behalve / |
{a,b,c} |
een van de door komma's gescheiden tekenreeksen |
{1..9} |
elk geheel getal in het bereik |
[abc] |
elk enkel teken uit de verzameling |
[!abc] |
elk enkel teken dat niet in de verzameling zit |
name |
een patroon zonder / past in elke submap |
/name |
een / aan het begin verankert de overeenkomst aan de map van het configuratiebestand |
Instellingen per plug-in¶
Naast de standaardsleutels kan .editorconfig ook configuratie per plug-in
dragen. Een plug-in leest haar eigen instellingen onder de naamruimte
mte.<plugin-id>.<key>, en een projectwaarde overschrijft de globale voorkeur van
de gebruiker (ingesteld in Voorkeuren) voor bestanden in dat project. Dit wordt
door dezelfde schakelaar .editorconfig-instellingen toepassen hierboven
beheerst — zet die uit en ook deze sleutels worden genegeerd.
Beschikbare plug-insleutels¶
Dit is de volledige lijst van plug-ininstellingen die de editor vandaag uit
.editorconfig eerbiedigt. Hij groeit alleen naarmate een plug-in zich
uitdrukkelijk aanmeldt; elke sleutel die hier niet staat (ook die van plug-ins die
.editorconfig niet lezen) wordt ontleed maar heeft geen effect.
| Sleutel | Type | Standaard | Effect |
|---|---|---|---|
mte.org.mte.url.enabled |
true / false |
de globale schakelaar van de URL-markering (Voorkeuren) | Schakelt het herkennen en markeren van URL's in of uit voor bestanden in dit project. |
Voorbeeld — zet de URL-markering voor één project uit, ongeacht de globale schakelaar:
Waarom zo weinig?
Sleutels per plug-in blijven bewust beperkt tot echte projectafspraken
(instellingen die een team zou vastleggen en delen). De meeste
plug-ininstellingen — zoekgeschiedenis, intervallen voor automatisch opslaan,
de laatst geopende map, bestandskoppelingen van het besturingssysteem — zijn
persoonlijke of machinegebonden staat en horen met opzet niet in een
gedeelde .editorconfig. De klassieke projectafspraak, de inspringing, wordt
door de standaardsleutels hierboven gedekt. Er kunnen hier meer
plug-insleutels bijkomen naarmate plug-ins de functie overnemen.
Voorbeeld¶
Een .editorconfig die in de wortel van een project staat, met elke eigenschap
en elke glob-vorm:
# 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
Opmerkingen moeten op hun eigen regel staan
EditorConfig kent geen opmerkingen binnen een regel. Een # of ; begint
alleen aan het begin van een regel een opmerking. indent_size = 4 # four
schrijven maakt de waarde 4 # four, wat ongeldig is en stilzwijgend
genegeerd wordt — zet de opmerking in plaats daarvan op de regel erboven.
(Dit komt overeen met elke andere editor die EditorConfig kent.)