64 votes

Définition de la portée des extraits de code Sublime Text 2 personnalisés

Tout en essayant d'écrire mes propres snippets pour Sublime Text 2, j'ai couru dans les deux problèmes suivants:

  1. Trouver de la portée des touches. J'ai compris que je peux regarder à travers mes paquets un par un et de trouver des références à une déclaration de propriété "portée". Par exemple, en ~/Library/Application Support/Sublime Text 2/Packages/JavaScript/Comments.tmPreferences (un fichier dans mon HTML paquet) il y a ces deux lignes:

    <key>scope</key>
    <string>source.js</string>
    

    Donc, si je veux que mon actuel extrait de travailler sur des fichiers javascript, je définir ma portée comme:

    <scope>source.js</scope>
    

    Je suis en supposant que tous ces portée clés sont définies à la volée basé sur des Paquets que j'ai installé. N'Sublime Text construire une liste de n'importe où que je peux plus facilement de référence? En parcourant à travers un tas de fichiers de package semble trop fastidieux.

  2. Définition des propriétés de l'étendue. Ce que j'ai compris, et la ligne suivante permet d'extrait de mon travail dans les fichiers HTML et JavaScript.

    <scope>text.html, source.js</scope>
    

145voto

Bibhas Points 5418

Voici une liste des domaines à utiliser dans les extraits de Sublime Text 2 -

 ActionScript: source.actionscript.2
AppleScript: source.applescript
ASP: source.asp
Batch FIle: source.dosbatch
C#: source.cs
C++: source.c++
Clojure: source.clojure
CoffeeScript: source.coffee
CSS: source.css
D: source.d
Diff: source.diff
Erlang: source.erlang
Go: source.go
GraphViz: source.dot
Groovy: source.groovy
Haskell: source.haskell
HTML: text.html(.basic)
JSP: text.html.jsp
Java: source.java
Java Properties: source.java-props
Java Doc: text.html.javadoc
JSON: source.json
Javascript: source.js
BibTex: source.bibtex
Latex Log: text.log.latex
Latex Memoir: text.tex.latex.memoir
Latex: text.tex.latex
LESS: source.css.less
TeX: text.tex
Lisp: source.lisp
Lua: source.lua
MakeFile: source.makefile
Markdown: text.html.markdown
Multi Markdown: text.html.markdown.multimarkdown
Matlab: source.matlab
Objective-C: source.objc
Objective-C++: source.objc++
OCaml campl4: source.camlp4.ocaml
OCaml: source.ocaml
OCamllex: source.ocamllex
Perl: source.perl
PHP: source.php
Regular Expression(python): source.regexp.python
Python: source.python
R Console: source.r-console
R: source.r
Ruby on Rails: source.ruby.rails
Ruby HAML: text.haml
SQL(Ruby): source.sql.ruby
Regular Expression: source.regexp
RestructuredText: text.restructuredtext
Ruby: source.ruby
SASS: source.sass
Scala: source.scala
Shell Script: source.shell
SQL: source.sql
Stylus: source.stylus
TCL: source.tcl
HTML(TCL): text.html.tcl
Plain text: text.plain
Textile: text.html.textile
XML: text.xml
XSL: text.xml.xsl
YAML: source.yaml
 

Si quelque chose manque, ajoutez-le dans cet élément essentiel https://gist.github.com/4705378 .

76voto

Joseph Knight Points 398

Il suffit de cliquer sur Ctrl + Maj + Alt + P dans un fichier de l’étendue souhaitée et de regarder la barre d’état pour la clé de l’étendue. Ensuite, utilisez cette clé dans votre extrait.

9voto

alexwlchan Points 413

Il y a un paquet appelé le Champ d'application de Chasseur, par Isaac Muse, ce qui est vraiment utile pour cela.

Il peut vous montrer la portée en vertu de n'importe quel curseur dans un document, que j'ai trouvé très utile lors du débogage de mes propres snippets. Parfois, il est très détaillé; un exemple de la portée de mon au premier plan du document:

Scope: text.tex.latex
       meta.function.environment.list.latex
       meta.function.environment.general.latex
       meta.function.environment.math.latex
       string.other.math.block.environment.latex
       meta.group.braces.tex
       meta.space-after-command.latex

(Enroulé pour faciliter la lecture)

Je n'aurais pas été en mesure de trouver que si j'ai passé une semaine de prélèvement SL2 à part, mais ce paquet est en quelques secondes. Fortement recommandé.

Ce niveau de détail signifie également que vous pouvez définir des extraits dans un très granulaire façon, si vous voulez. Par exemple, l' meta.function.environment.list.latex correspond globalement à des listes en LaTeX, j'ai donc un extrait de code qui insère un nouveau \item lorsque j'appuie sur super+entrée dans une liste l'environnement, mais personne d'autre. Je peux cible des extraits beaucoup plus efficacement que l'aveugle-devinettes.

Le code source est dans Github, ou vous pouvez l'installer à l'aide du Package de Contrôle.

7voto

Chuck Points 41

En fait, vous pouvez utiliser les touches Ctrl + Alt + Maj + P (sans utiliser Scope Hunter) pour afficher la portée sur la barre inférieure du côté gauche, juste après les informations Col / Line. C'est assez petit mais c'est là.

5voto

d_rail Points 2074

Pour répondre, #1, regarder dans la syntaxe de l' .tmLanguage fichier, recherchez la clé: scopeName. C'est ce que la syntaxe utilise pour le fragment de la valeur de la portée.

Par exemple, un extrait de nathos / sass-textmate-bundle

<key>scopeName</key>
<string>source.sass</string>

Donc vous l'utiliser source.sass dans votre extrait de code.

Voici plus d'informations sur la définition d'une syntaxe

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X