in .tmTheme-bestanden definieert de bereiksleutel hoe een element wordt gemarkeerd:
<dict>
<key>name</key>
<string>HTML: Attribute Values</string>
<key>scope</key>
<string>meta.tag string.quoted, meta.tag string.quoted constant.character.entity</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FFFFFF</string>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2aa198</string>
</dict>
</dict>
Waar kan ik een lijst vinden van alle scopes die door deze apps worden ondersteund, zodat ik mijn eigen stijl kan creëren?
Antwoord 1, autoriteit 100%
Kopieer/plak (maar converteer HTML naar Markdown) uit de huidige versie van de sectie ‘Naamconventies’ van de TextMate Taalgids voor grammatica:
comment
— voor opmerkingen.line
— regelcommentaar, we specialiseren ons verder zodat het type beginteken(s) van het commentaar uit het bereik kan worden geëxtraheerd.double-slash
—// comment
double-dash
—-- comment
number-sign
—# comment
percentage
—% comment
- karakter— andere soorten regelopmerkingen.
block
— opmerkingen met meerdere regels zoals/* … */
en<!-- … -->
.documentation
— ingebedde documentatie.
constant
— verschillende vormen van constanten.numeric
— die getallen vertegenwoordigen, b.v.42
,1.3f
,0x4AB1U
.character
— die tekens vertegenwoordigen, b.v.<
,\e
,\031
.escape
— escape-reeksen zoals\e
zoudenconstant.character.escape
zijn.
language
— constanten (in het algemeen) geleverd door de taal die “speciaal” zijn, zoalstrue
,false
,nil
,YES
,NO
, enz.other
— andere constanten, bijv. kleuren in CSS.
entity
— een entiteit verwijst naar een groter deel van het document, bijvoorbeeld een hoofdstuk, klasse, functie of tag. We beschouwen de hele entiteit niet alsentity.*
(daarvoor gebruiken wemeta.*
). Maar we gebruiken welentity.*
voor de “placeholders” in de grotere entiteit, b.v. als de entiteit een hoofdstuk is, zouden weentity.name.section
gebruiken voor de titel van het hoofdstuk.name
— we noemen de grotere entiteit.function
— de naam van een functie.type
— de naam van een typedeclaratie of klasse.tag
— een tagnaam.section
— de naam is de naam van een sectie/kop.
other
— andere entiteiten.inherited-class
— de naam van de superklasse/basisklasse.attribute-name
— de naam van een attribuut (voornamelijk in tags).
invalid
— dingen die “ongeldig” zijn.illegal
— illegaal, b.v. een ampersand of lager-dan-teken in HTML (die geen deel uitmaakt van een entiteit/tag).deprecated
— voor verouderde dingen, b.v. een API-functie gebruiken die is verouderd of styling gebruiken met strikte HTML.
keyword
— trefwoorden (wanneer deze niet in de andere groepen vallen).control
— voornamelijk gerelateerd aan flow control zoalscontinue
,while
,return
, etc.operator
— operators kunnen tekstueel zijn (bijv.or
) of tekens zijn.other
— andere zoekwoorden.
markup
— dit is voor opmaaktalen en is over het algemeen van toepassing op grotere subsets van de tekst.underline
— onderstreepte tekst.link
— dit is voor links, voor het gemak is dit afgeleid vanmarkup.underline
zodat als er geen themaregel is die specifiek gericht is opmarkup.underline.link
dan zal het de onderstrepingsstijl erven.
bold
— vetgedrukte tekst (tekst die sterk en vergelijkbaar is, moet bij voorkeur van deze naam worden afgeleid).heading
— een sectiekop. Geef optioneel het kopniveau op als het volgende element, bijvoorbeeldmarkup.heading.2.html
voor<h2>…</h2>
in HTML.italic
— cursieve tekst (tekst die wordt benadrukt en vergelijkbaar moet bij voorkeur van deze naam worden afgeleid).list
— lijst met items.numbered
— genummerde lijstitems.unnumbered
— ongenummerde lijstitems.
quote
— geciteerde (soms blokgeciteerde) tekst.raw
— tekst die letterlijk is, b.v. code vermeldingen. Normaal gesproken is spellingcontrole uitgeschakeld voormarkup.raw
.other
— andere opmaakconstructies.
meta
— de metascope wordt over het algemeen gebruikt om grotere delen van het document te markeren. De hele regel die een functie declareert zou bijvoorbeeldmeta.function
zijn en de subsets zijnstorage.type
,entity.name.function
,variable.parameter
enz. en alleen de laatste zou worden gestileerd. Soms wordt het metagedeelte van de scope alleen gebruikt om het meer algemene element dat wordt gestyled te beperken, meestal worden metascopes echter gebruikt in scopeselectors voor het activeren van bundelitems. In Objective-C is er bijvoorbeeld een metascope voor de interfacedeclaratie van een klasse en de implementatie, waardoor dezelfde tab-triggers verschillend kunnen uitbreiden, afhankelijk van de context.storage
— dingen met betrekking tot “opslag”.type
— het type van iets,class
,function
,int
,var
, enz.modifier
— een opslagmodifier zoalsstatic
,final
,abstract
, enz.
string
— tekenreeksen.quoted
— tekenreeksen tussen aanhalingstekens.single
— enkelvoudige tekenreeksen tussen aanhalingstekens:'foo'
.double
— dubbele aanhalingstekens:"foo"
.triple
— driedubbele tekenreeksen tussen aanhalingstekens:"""Python"""
.other
— andere soorten citaten:$'shell'
,%s{...}
.
unquoted
— voor zaken als here-docs en here-strings.interpolated
— tekenreeksen die zijn “geëvalueerd”:date
,$(pwd)
.regexp
— reguliere expressies:/(\w+)/
.other
— andere soorten tekenreeksen (zouden zelden moeten worden gebruikt).
support
— dingen die door een framework of bibliotheek worden geleverd, moeten lager zijn dansupport
.function
— functies geleverd door het framework/bibliotheek.NSLog
in Objective-C is bijvoorbeeldsupport.function
.class
— wanneer het framework/de bibliotheek klassen biedt.type
— typen geleverd door het framework/bibliotheek, dit wordt waarschijnlijk alleen gebruikt voor talen die zijn afgeleid van C, dietypedef
(enstruct
). De meeste andere talen zouden nieuwe typen als klassen introduceren.constant
— constanten (magische waarden) geleverd door het raamwerk/bibliotheek.variable
— variabelen geleverd door het framework/de bibliotheek. BijvoorbeeldNSApp
in AppKit.other
— het bovenstaande zou uitputtend moeten zijn, maar gebruik voor al het anderesupport.other
.
variable
— variabelen. Niet alle talen laten een gemakkelijke identificatie (en dus opmaak) hiervan toe.parameter
— wanneer de variabele als parameter wordt gedeclareerd.language
— gereserveerde taalvariabelen zoalsthis
,super
,self
, enz.other
— andere variabelen, zoals$some_variables
.
Antwoord 2, autoriteit 39%
Bewerken: Phrogz’s antwoordis beter dan mijn antwoord hier, omdat het de gestelde vraag nauwkeuriger beantwoordt. Ik raad je aan het eens te bekijken!
Helaas lijkt er niet zo’n uitgebreide lijst te zijn.
Als u echter op Shift+Ctrl+P
drukt in SublimeText 2, zal de statusbalk onder aan het scherm een uitgebreide lijst weergeven van alle bereiktoetsen die van toepassing zijn op het teken dat onmiddellijk volgt uw cursorpositie.
Je kunt deze methode gebruiken om de bereiksleutels te vinden voor alles wat je nodig hebt vanuit SublimeText.
Update:commentatoren Zullenen fregantehieronder geven aan dat dit is gewijzigd voor SublimeText 3.
Voor Windows/Linux is Shift+Ctrl+Alt+P
het juiste commando, en op een Mac is het commando ⌘⌥P
.
Antwoord 3, autoriteit 16%
Er zijn een aantal sublieme tekstpakketten die je hiervoor kunt gebruiken.
Pakketbeheer installeren
Ga naar https://sublime.wbond.net/en klik op “Installatie” en volg de instructies om sublieme tekstpakketbeheerder te installeren.
Pakketten die het huidige bereik weergeven
Ik ken een paar sublieme tekstpakketten die het huidige bereik in de statusbalk weergeven.
- ScopeStatus(alleen Sublime Text 2)
- ScopeHunter
- ScopeAlways(gemaakt door mij)
- CurrentScope(Alleen Sublime Text 2)
Een van de bovenstaande pakketten installeren
Om een pakket met sublime text package manager te installeren, opent u het commandopalet van sublime text (ctrl+shift+p
) en kiest u het commando Package Control: Install Package
en selecteert u vervolgens een van de bovenstaande pakketten.
Antwoord 4, autoriteit 13%
Scopes zijn afkomstig uit tmLanguage-bestanden die voor elke syntaxis anders zijn. U kunt een lijst met conventies voor het benoemen van scopes vinden op http://manual.macromates.com/en/language_grammars
Antwoord 5, autoriteit 7%
Naast de uitstekende antwoorden die al zijn gepost, is het tabblad Scopes Statsvan TMTheme Editorgeeft een handige lijst weer van alle scopes in zijn 236 kleurenthema’s, met de meest ondersteunde scopes bovenaan.
Antwoord 6, autoriteit 5%
Bekijk een referentiegids op de sublieme site hieronder:
Antwoord 7, autoriteit 2%
Elke syntaxis kan zijn eigen scopes een naam geven, maar ze zijn gebaseerd op deze lijst. Uw syntaxis kan bijvoorbeeld specificeren dat function
het bereik van storage.type.function.js
is. Als je thema dat rechtstreeks ondersteunt, zal het die kleur gebruiken, anders valt het terug naar storage.type.function
dan storage.type
en tenslotte storage
proberen een kleur in je thema te vinden.
Omdat je je eigen stijl creëert, raad ik aan om ScopeStatus(CTRL< /kbd>+SHIFT+P, dan Pakket installeren, dan ScopeStatus). Als u naar een bestand kijkt met de syntaxis waarop u zich wilt concentreren, voert u CTRL+SHIFT+Puit en vervolgens "Scope: Show in Status Bar" . Nu kun je de cursor naar verschillende elementen verplaatsen om te zien welk bereik ze geven en je kunt die gebruiken om kleuren te definiëren.
U kunt uw thema's controleren om te zien wat ze doen, ga naar "Voorkeuren->Pakketten bladeren" om de map te openen waarin uw pakketten zijn opgeslagen. Ik heb "Theme - Phoenix" geïnstalleerd met een map en een map "Color Scheme" eronder. In een van de themabestanden vond ik 16 kleuren die voor verschillende scopes werden gebruikt:
keyword.operator.class, constant.other, source.php.embedded.line
variable, support.other.variable, string.other.link, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag
constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit
entity.name.class, entity.name.type.class, support.type, support.class
string, constant.other.symbol, entity.other.inherited-class, markup.heading
keyword.operator, constant.other.color
entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level
keyword, storage, storage.type, entity.name.tag.css
invalid
meta.separator
invalid.deprecated
markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file
markup.inserted.diff, meta.diff.header.to-file
markup.deleted.diff, meta.diff.header.from-file
meta.diff.header.from-file, meta.diff.header.to-file
meta.diff.range
Verschillende thema's kunnen verschillende instellingen hebben, want keyword.operator.class in de eerste groep kan een eigen kleur hebben of hetzelfde zijn als meta.diff.range.