tools sublime manager management instalar control como textmate sublimetext

manager - ¿Dónde encontrar una lista de ámbitos para Sublime2(o textMate?)



sublime text packages manager (7)

Además de las excelentes respuestas ya publicadas, la pestaña Estadísticas de ámbitos del Editor de TMTheme muestra una lista útil de todos los ámbitos en sus 236 temas de color, con los ámbitos más comúnmente admitidos en la parte superior.

en los archivos .tmTheme, la clave de alcance define cómo se resalta un elemento:

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

¿Dónde puedo encontrar una lista de todos los ámbitos admitidos por estas aplicaciones, para poder crear mi propio estilo?


Cada sintaxis puede nombrar sus propios ámbitos, pero se basan fuera de https://www.sublimetext.com/docs/3/scope_naming.html . Por ejemplo, su sintaxis podría especificar que la function es scope de storage.type.function.js . Si su tema lo admite directamente, usará ese color; de lo contrario, recurrirá a storage.type.function luego storage.type y finalmente al storage tratando de encontrar un color en su tema.

Como está creando su propio estilo, le recomiendo que instale ScopeStatus ( CTRL + SHIFT + P , luego Install Package, luego ScopeStatus). Al mirar un archivo usando la sintaxis en la que desea concentrarse, haga CTRL + MAYÚS + P , luego "Alcance: Mostrar en la barra de estado". Ahora puede mover el cursor a varios elementos para ver qué alcance le dan y puede usarlos para definir colores.

Puede consultar sus temas para ver lo que hacen, vaya a "Preferencias-> Buscar paquetes" para abrir la carpeta donde se almacenan sus paquetes. Instalé "Theme - Phoenix" que tiene una carpeta y una carpeta "Color Scheme" debajo. En uno de los archivos de tema encontré 16 colores que se usaron para varios ámbitos:

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

Diferentes temas pueden tener diferentes configuraciones, para keyword.operator.class en el primer grupo puede tener su propio color o ser lo mismo que meta.diff.range.


Copiar / pegar (pero convirtiendo HTML en Marcado) de la versión actual de la sección "Convenciones de nombres" de la Guía de gramática del lenguaje TextMate :

  • comment - para comentarios.
    • line -line comments, nos especializamos aún más para que el tipo de carácter (s) de inicio de comentario se pueda extraer del alcance.
      • double-slash - // comment
      • double-dash - -- comment
      • number-sign - # comment
      • percentage - % comment
      • carácter - otros tipos de comentarios de línea.
    • block - comentarios de varias líneas como /* … */ y <!-- … --> .
      • documentation - documentation incrustada.
  • constant - varias formas de constantes.
    • numeric : los que representan números, por ejemplo, 42 , 1.3f , 0x4AB1U .
    • character : los que representan caracteres, por ejemplo &lt; , /e , /031 .
      • escape - las secuencias de escape como /e serían constant.character.escape .
    • language - constantes (generalmente) proporcionadas por el idioma que son "especiales" como true , false , nil , YES , NO , etc.
    • other - otras constantes, por ejemplo, colores en CSS.
  • entity : una entidad se refiere a una parte más grande del documento, por ejemplo, un capítulo, clase, función o etiqueta. No abarcamos la entidad completa como entity.* (Utilizamos meta.* Para eso). Pero usamos entity.* Para los "placeholders" en la entidad más grande, por ejemplo, si la entidad es un capítulo, entity.name.section para el título del capítulo.
    • name - estamos nombrando la entidad más grande.
      • function - el nombre de una función.
      • type : el nombre de una declaración o clase de tipo.
      • tag - un nombre de etiqueta.
      • section : el nombre es el nombre de una sección / encabezado.
    • other - otras entidades.
      • inherited-class - la superclase / nombre de la clase base.
      • attribute-name : el nombre de un atributo (principalmente en etiquetas).
  • invalid : material que es "inválido".
    • illegal - ilegal, por ejemplo, un ampersand o un carácter inferior al de HTML (que no es parte de una entidad / etiqueta).
    • deprecated - por cosas obsoletas, por ejemplo, usando una función API que está en desuso o usando el estilo con HTML estricto.
  • keyword - palabras clave (cuando estas no caen en los otros grupos).
    • control - relacionado principalmente con control de flujo como continue , while , return , etc.
    • operator : los operadores pueden ser textuales (por ejemplo, or ) o ser caracteres.
    • other - otras palabras clave.
  • markup : esto es para lenguajes de marcado y generalmente se aplica a subconjuntos más grandes del texto.
    • underline - texto subrayado.
      • link : esto es para enlaces, como conveniencia esto se deriva de markup.underline modo que si no hay una regla de tema que se markup.underline.link específicamente a markup.underline.link , heredará el estilo de subrayado.
    • bold - texto en negrita (el texto que es fuerte y similar preferiblemente debe derivarse de este nombre).
    • heading - un encabezado de sección. Opcionalmente, proporcione el nivel del encabezado como el siguiente elemento, por ejemplo markup.heading.2.html para <h2>…</h2> en HTML.
    • italic - texto en cursiva (el texto enfatizado y similar se debe derivar preferiblemente de este nombre).
    • list - list items.
      • numbered numerados de la lista.
      • unnumbered numerar: elementos de lista sin numerar.
    • quote - texto citado (a veces bloqueado).
    • raw formato - texto que es literal, por ejemplo, listados de códigos. Normalmente, la revisión ortográfica está deshabilitada para markup.raw .
    • other - otras construcciones de marcado.
  • meta : el meta-scope se usa generalmente para marcar partes más grandes del documento. Por ejemplo, la línea completa que declara una función sería meta.function y los subconjuntos serían entity.name.function , entity.name.function , variable.parameter etc. y solo el último se diseñaría. Algunas veces, la metapartición del alcance se usará solo para limitar el elemento más general que se diseña, pero la mayoría de las veces se utilizan los metaconceptos en los selectores de alcance para la activación de los elementos del paquete. Por ejemplo, en Objective-C hay un meta-scope para la declaración de interfaz de una clase y la implementación, lo que permite que los mismos disparadores de tabulación se expandan de manera diferente, dependiendo del contexto.
  • storage : cosas relacionadas con el "almacenamiento".
    • type - el tipo de algo, class , function , int , var , etc.
    • modifier - un modificador de almacenamiento como static , final , abstract , etc.
  • string - cuerdas.
    • quoted - cadenas entre comillas.
      • cadenas simples entre comillas simples: ''foo'' .
      • cadenas dobles entre comillas dobles: "foo" .
      • cadenas triple - triples entre comillas: """Python""" .
      • other - otros tipos de cotización: $''shell'' , %s{...} .
    • unquoted - para cosas como here-docs y here-strings.
    • interpolated - cadenas que son "evaluadas": date , $(pwd) .
    • expresiones regulares: expresiones regulares: /(/w+)/ .
    • other - otros tipos de cadenas (raramente deberían usarse).
  • support : las cosas proporcionadas por un marco o biblioteca deben estar por debajo del support .
    • function - funciones proporcionadas por el marco / biblioteca. Por ejemplo, NSLog en Objective-C es support.function .
    • class - cuando el marco / biblioteca proporciona clases.
    • type - tipos proporcionados por el framework / biblioteca, esto probablemente solo se use para lenguajes derivados de C, que tiene typedef (y struct ). La mayoría de los otros idiomas introducirían nuevos tipos como clases.
    • constant - constantes (valores mágicos) proporcionados por el marco / biblioteca.
    • variable - variables proporcionadas por el marco / biblioteca. Por ejemplo NSApp en NSApp .
    • other - lo anterior debe ser exhaustivo, pero para todo lo demás use support.other .
  • variable - variables. No todos los idiomas permiten una fácil identificación (y, por lo tanto, el marcado) de estos.
    • parameter - cuando la variable se declara como el parámetro.
    • language - variables de lenguaje reservadas como this , super , self , etc.
    • other - otras variables, como $some_variables .

Desafortunadamente, no parece haber una lista tan completa.

Sin embargo, si presiona Shift + Ctrl + P en SublimeText 2, la barra de estado en la parte inferior de la pantalla mostrará una lista completa de todas las teclas de alcance que se aplican al personaje inmediatamente después de la posición del cursor.

Puede usar este método para buscar las teclas de alcance para cualquier cosa que necesite desde SublimeText.


Hay un par de paquetes de texto sublimes que puede usar para hacer esto.

Instalación del control de paquetes

Vaya a https://sublime.wbond.net/ y haga clic en "Instalación" y siga las instrucciones para instalar el sublime administrador de paquetes de texto.

Paquetes que muestran el alcance actual

Sé de un par de paquetes de texto sublimes que muestran el alcance actual en la barra de estado.

Instalación de uno de los paquetes anteriores

Para instalar un paquete con el sublime administrador de paquetes de texto, abra la paleta de comandos de texto sublime ( ctrl+shift+p ) y elija el comando Package Control: Install Package y luego seleccione uno de los paquetes anteriores.