2012-08-10 22 views
6

Ok, esto es lo que quiero:Auto compilar archivos SCSS en Sublime Text 2

  1. escribo archivos .scss, no .sass archivos
  2. Al guardar el archivo, consigo el correspondiente archivo .css en la misma carpeta

Ahora hay muchos complementos de SASS en Sublime Text2 pero ninguno parece proporcionar nada más que resaltar la sintaxis para mí.

Cualquier sugerencia sobre cómo obtener autocompilación trabajando en Sublime Text2.

+0

aquí [respuesta] [1], a Buils Sass en el texto sublime 2 usando el sistema Construir [1]: http://stackoverflow.com/questions/12448546/sublime-text-2-doesnt -save-built-sass-file/30068537 # 30068537 –

Respuesta

6

no he encontrado ningún tipo de plugins existentes que hicieron esto, así que aquí está:

Suponiendo que haya instalado el plugin SCSS de control de paquetes, puede guardar esto como paquetes/usuario/SCSS.py.

import sublime_plugin 
import subprocess 
import os 
from threading import Thread 

def compile(input_file): 
    output_file = os.path.splitext(input_file)[0] + ".css" 
    cmd = "sass '{0}':'{1}'".format(input_file, output_file) 
    subprocess.call(cmd, shell=True) 

class SCSS(sublime_plugin.EventListener): 

    def on_post_save(self, view): 
     scope = (view.syntax_name(view.sel()[0].b)).split().pop() 
     if scope == "source.scss": 
      input_file = view.file_name() 
      t = Thread(target=compile, args=(input_file,)) 
      t.start() 

Por supuesto, esto sería mejor como un plugin oficial de control de paquetes con los ajustes configurables por el usuario (en la que guardar los archivos, encendido/apagado, etc.), pero esto se adapte a sus necesidades, y no bloquear el editor.

+0

¿Cómo invocar Sublime Text2 este archivo? – Rajat

+1

En aras de ser explícito: Funciona. Lo probé Sublime Text 2 analiza todos los archivos python bajo su directorio de paquetes. En este caso, Sublime Text analiza SCSS.py y la clase definida en él hereda de la clase EventListener de sublime.Debido a que anula el método on_post_save, Sublime llamará a ese método después de cada guardado. Aquí está la documentación oficial para la clase de complemento EventListener: http://www.sublimetext.com/docs/2/api_reference.html#sublime_plugin.EventListener –

+0

Lo intenté. No funciona para mi La carpeta Mis paquetes tiene lo siguiente: 1) Carpeta SCSS 2) Su archivo SCSS.py 3) Un archivo SCSS.pyc. – Rajat

5

Debería considerar utilizar el sistema de compilación en lugar del complemento dedicado de la misma. Es muy simple de hacer.

http://docs.sublimetext.info/en/latest/file_processing/build_systems.html

Algo como esto:

{ 
    "cmd": ["sass","$file"], 
    "selector": "source.scss", 
    "path": "/usr/local/bin" 
} 

Y acaba de golpear ctrl + b t construir archivo actual. Si tiene varias compilaciones para scss, puede seleccionar una desde el menú de compilación (Tools -> Build Systems).

+0

Me parece recordar que también es posible tener esto activado "al guardar" – airtonix

+0

¿Qué es esta ruta? ¿Qué significa? – vsync

1

Estaba buscando un complemento de compilador sass/scss para Sublime Test, pero tengo mis carpetas de origen separadas de mis carpetas css. Así que, saliendo de los comentarios que quedaron aquí, escribí SassBuilder que se ejecuta en un archivo de configuración almacenado en su carpeta de origen. También se ha enviado al repositorio Sublime Package Control. Una vez que obtienen la solicitud, puede instalarla desde allí.

SassBuilder on github

3

Usted podría utilizar SublimeOnSaveBuild plugin. Y en la configuración del filtro de complementos simplemente deje los archivos .scss! ¡Funciona para simplemente genial!

+0

Esto es exactamente lo que necesitaba. – fredley

1

Sass Builder es el nuevo complemento que está disponible en Package Manager de texto sublime. Esto no requiere ninguna configuración. Simplemente escribe tu scss y presiona cmd + b para compilar. Su archivo css se generará en la misma carpeta que scss.

Cuestiones relacionadas