usar sublime instalar guia funcion desde control configurar como comentario cero scope sublimetext2 code-snippets

scope - instalar - sublime text desde cero



DefiniciĆ³n del alcance de los fragmentos de Sublime Text 2 personalizados (5)

Al intentar escribir mis propios fragmentos para Sublime Text 2, encontré los siguientes dos problemas:

  1. Encontrar claves de alcance Descubrí que puedo revisar mis paquetes uno por uno y encontrar referencias a una propiedad de "alcance" declarada. Por ejemplo, en ~/Library/Application Support/Sublime Text 2/Packages/JavaScript/Comments.tmPreferences (un archivo en mi paquete HTML), hay estas dos líneas:

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

    Entonces, si quiero que mi fragmento actual funcione en archivos javascript, defino mi alcance como:

    <scope>source.js</scope>

    Supongo que todas estas claves de alcance se definen sobre la marcha en función de los Paquetes que he instalado. ¿Sublime Text crea una lista en cualquier lugar que pueda hacer referencia más fácilmente? Examinar un montón de archivos de paquete parece demasiado tedioso.

  2. Definición de múltiples propiedades de alcance Esto lo he descubierto, y la siguiente línea permite que mi fragmento funcione en archivos HTML y JavaScript.

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


Ver el alcance actual de la posición del cursor

  1. Coloque el cursor en el archivo donde desea conocer el alcance.
  2. Use este atajo de teclado:

    Windows : ctrl + shift + alt + p
    Mac: ctrl + shift + p

  3. El alcance actual se mostrará en el lado izquierdo de la barra de estado en Windows, o en una ventana emergente en Mac.

Úselos como la tecla <scope> en su archivo foo.sublime-snippet .

Los ámbitos devueltos se enumeran genéricos a específicos. Elija el (los) alcance (s) que mejor "alcancen" el fragmento hasta donde debería estar disponible para que se active la pestaña.


Aquí hay una lista de ámbitos para usar en los fragmentos 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 falta algo, agrégalo en este sentido: https://gist.github.com/4705378 .


En realidad, puede usar Ctrl + Alt + Shift + P (sin usar Scope Hunter) y le mostrará el alcance en la barra inferior en el lado izquierdo justo después de la información de Col / Line. Es una letra pequeña pero está allí.


Hay un paquete llamado Scope Hunter , de Isaac Muse , que es realmente útil para esto.

Puede mostrarle el alcance debajo de cualquier cursor en un documento, que he encontrado realmente útil al depurar mis propios fragmentos. A veces es muy detallado; un alcance de muestra de mi documento más adelantado:

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

(Envuelto para facilitar la lectura)

No hubiera podido encontrar eso si pasé una semana seleccionando SL2, pero este paquete lo obtiene en segundos. Muy recomendable.

Este nivel de detalle también significa que puede definir fragmentos de una manera muy granular, si lo desea. Por ejemplo, meta.function.environment.list.latex corresponde ampliamente a listas en LaTeX, así que tengo un fragmento que inserta un nuevo /item cuando presiono super + enter en un entorno de lista, pero nadie más. Puedo apuntar fragmentos con mucha más eficacia que con conjeturas ciegas.

El código fuente está en Github , o puede instalarlo a través de Package Control .


Para responder, n. ° 1, busque en el archivo .tmLanguage de la sintaxis, busque la clave: scopeName . Esto es lo que utiliza la sintaxis para el valor del alcance del fragmento.

Por ejemplo, un extracto de nathos / sass-textmate-bundle

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

Entonces usaría source.sass en su fragmento.

Aquí hay más información sobre cómo definir una sintaxis