Cambiar idioma: English

Complementos

See also

Referencia: API
Más información acerca de la API de Python.

Los complementos son archivos de Python donde se implementan clases *Command de sublime_plugin.

Ubicación de los complementos

Sublime Text buscará complementos en los siguientes directorios:

  • Package
  • Packages/<nombre_módulo>

En consecuencia, todo módulo en carpetas más profundas de Packages será omitido.

Convenciones para los nombres de las instrucciones

Los nombres de las instrucciones de Sublime Text llevan convencionalmente el sufijo Command y se escriben como FrasesJorobadas.

Sin embargo, Sublime Text transforma los nombres de FrasesJorobadas a frases_jorobadas. Por ejemplo, ExampleCommand pasaría a ser example, y AnotherExampleCommand se convertiría en another_example.

En la definición de clases de instrucciones, emplea CamelCasedPhrasesCommand; para ejecutar una instrucción desde la API, usa el nombre transformado: camel_cased_phrases.

Tipos de instrucciones

  • sublime_plugin.ApplicationCommand
  • sublime_plugin.WindowCommand
  • sublime_plugin.TextCommand
  • sublime_plugin.EventListener

Características comunes a todas las instrucciones

Todas las instrucciones deben implementar el método .run(). Todas las instrucciones pueden recibir un número arbitrario de argumentos nombrados.

Cómo ejecutar instrucciones desde la API

  1. Obtén una referencia a un objeto View, Window o sublime.
  2. Utiliza la función .run_command().

Optativamente, se puede pasar un diccionario como argumento donde las claves sean nombres de parámetros de la instrucción ejecutada.:

window.run_command("echo", {'Lokee': 'Here!', 'foo': 'bar'})

El objeto edit y las instrucciones para el búfer

Las dos funciones de la API de interés son view.begin_edit(), que admite un nombre de instrucción optativo y un diccionario de argumentos optativo, y view.end_edit(), que cierra el objeto edit.

Todas las acciones realizadas en un objeto edit se agrupan como una sola. Los callbacks como .on_modified() y .on_selection_modified() se ejecutan tras la modificación atómica.

Es importante ejecutar view.end_edit() después de cada view.begin_edit(). De lo contrario, el búfer se quedará en un estado incoherente. Se intentará arreglar el objeto edit automáticamente cuando sea recogido por el recolector de basura, pero esto generalmente sucede impredeciblemente, por lo que se emitirá un mensaje de advertencia en la consola. En otras palabras, siempre se debe enmarcar los objetos edit en un bloque try..finally.

La instrucción pasada a begin_edit() se utiliza para las repeticiones, la grabación de macros y para describir la acción al deshacerla o rehacerla. Si la modificación se realiza fuera de un TextCommand, casi nunca se debería suministrar un nombre de instrucción.

Se pueden crear varios objetos edit antes de cerrar el primero: este solo se considerará cerrado cuando se ejectute el .end_edit() más exterior.

Además de agrupar modificaciones, los obetos edit también agrupan cambios de la selección para deshacerlos de una vez.

Eventos

Las subclases de EventListener podrás reaccionar a eventos.