ruby - rails - sublime text 3 packages
Configuración del complemento SubLime Linter para usar la sintaxis Ruby 1.9 (5)
Me gustaría obtener el complemento SubLime Linter ( https://github.com/Kronuz/SublimeLinter ) para reconocer la sintaxis de Ruby 1.9. ¿Alguien ha podido hacer que esto funcione en SublimeText 2?
Aquí está mi archivo de configuración predeterminado actual:
/*
SublimeLinter default settings
*/
{
/*
Sets the mode in which SublimeLinter runs:
true - Linting occurs in the background as you type (the default).
false - Linting only occurs when you initiate it.
"load-save" - Linting occurs only when a file is loaded and saved.
*/
"sublimelinter": true,
/*
Maps linters to executables for non-built in linters. If the executable
is not in the default system path, or on posix systems in /usr/local/bin
or ~/bin, then you must specify the full path to the executable.
Linter names should be lowercase.
This is the effective default map; your mappings may override these.
"sublimelinter_executable_map":
{
"perl": "perl",
"php": "php",
"ruby": "ruby"
},
*/
"sublimelinter_executable_map":
{
},
/*
Maps syntax names to linters. This allows variations on a syntax
(for example "Python (Django)") to be linted. The key is
the base filename of the .tmLanguage syntax files, and the value
is the linter name (lowercase) the syntax maps to.
*/
"sublimelinter_syntax_map":
{
"Python Django": "python"
},
// An array of linter names to disable. Names should be lowercase.
"sublimelinter_disable":
[
],
/*
The minimum delay in seconds (fractional seconds are okay) before
a linter is run when the "sublimelinter" setting is true. This allows
you to have background linting active, but defer the actual linting
until you are idle. When this value is greater than the built in linting delay,
errors are erased when the file is modified, since the assumption is
you don''t want to see errors while you type.
*/
"sublimelinter_delay": 0,
// If true, lines with errors or warnings will be filled in with the outline color.
"sublimelinter_fill_outlines": false,
// If true, lines with errors or warnings will have a gutter mark.
"sublimelinter_gutter_marks": false,
// If true, the find next/previous error commands will wrap.
"sublimelinter_wrap_find": true,
// If true, when the file is saved any errors will appear in a popup list
"sublimelinter_popup_errors_on_save": false,
// jshint: options for linting JavaScript. See http://jshint.com/#docs for more info.
// By deault, eval is allowed.
"jshint_options":
{
"evil": true,
"regexdash": true,
"browser": true,
"wsh": true,
"trailing": true,
"sub": true,
"strict": false
},
// A list of pep8 error numbers to ignore. By default "line too long" errors are ignored.
// The list of error codes is in this file: https://github.com/jcrocholl/pep8/blob/master/pep8.py.
// Search for "Ennn:", where nnn is a 3-digit number.
"pep8_ignore":
[
"E501"
],
/*
If you use SublimeLinter for pyflakes checks, you can ignore some of the "undefined name xxx"
errors (comes in handy if you work with post-processors, globals/builtins available only at runtime, etc.).
You can control what names will be ignored with the user setting "pyflakes_ignore".
Example:
"pyflakes_ignore":
[
"some_custom_builtin_o_mine",
"A_GLOBAL_CONSTANT"
],
*/
"pyflakes_ignore":
[
],
/*
Ordinarily pyflakes will issue a warning when ''from foo import *'' is used,
but it is ignored since the warning is not that helpful. If you want to see this warning,
set this option to false.
*/
"pyflakes_ignore_import_*": true,
// Objective-J: if true, non-ascii characters are flagged as an error.
"sublimelinter_objj_check_ascii": false
}
En SublimeLinter 3, rbenv (y con suerte rvm) se admite de fábrica sin configuración adicional (aparte de asegurarse de que se hayan inicializado en el lugar correcto en el inicio de su shell).
Pude hacerlo funcionar usando la ruta absoluta a mi ejecutable Ruby 1.9. Estoy usando rbenv, así que para obtener la ruta ejecuté rbenv which ruby
, puede que necesites poner /usr/local/bin/ruby
o /usr/local/bin/ruby19
.
Así es como se ve mi configuración predeterminada de sublimelinter (también puedes poner esto en un archivo específico del proyecto si lo prefieres :)
Preferences -> Package Settings -> SublimeLinter -> Settings - User
"sublimelinter_executable_map":
{
"ruby": "~/.rbenv/versions/1.9.3-p0/bin/ruby"
},
También pude hacer que esto funcionara al agregar el PATH y el ruby de punto en el rbenv shim al sublimelinter_executable_map (creo que esto también se recomienda desde la documentación oficial). Esto también le permite cambiar las versiones ruby sin tener que actualizar el config también
{
"sublimelinter_executable_map": {
"path": "/usr/local/var/rbenv/shims:/Users/luke/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin",
"ruby": "/usr/local/var/rbenv/shims/ruby"
}
}
Todo, solo quería sonar porque también estaba teniendo este problema y lo siguiente funciona en ST2 v 2.0.1 en Ubuntu en el archivo User / SublimeLinter.sublime-settings que se encuentra en
Preferences -> Package Settings -> SublimeLinter -> Settings - User
{
"sublimelinter_executable_map": {
"ruby": "~/.rvm/bin/rvm-auto-ruby"
}
}
Después de agregar, reinicie ST2, vaya a la consola y verifique que se haya actualizado ejecutando lo siguiente:
view.settings().get("sublimelinter_executable_map")
Debería obtener el siguiente resultado:
{''ruby'': u''~/.rvm/bin/rvm-auto-ruby''}
cuando use rvm, debería poder usar rvm-auto-ruby
para ello.
hubo un problema con esto, pero creo que ya está resuelto: https://github.com/SublimeLinter/SublimeLinter/issues/30