まえがき
Sublime Text3をメインエディタに開発してるんですが、
2018/03/05週(のどっか)でSublimeLinterがエラーになって動かず・・・・(´・ω・`)
その対応した内容を書きます。
原因
SublimeLinterのメジャーバージョンアップがされたためです。
この際、どうも設定ファイル(SublimeLinter.sublime-settings)の記載法も大幅に変わったようで、以前の設定ファイルがエラーとなり読み込めないことに。。。
まぁ、アップデートログとか出るけど読む人少なそうだし、バージョンアップを通知するにはいいかもしれんけどさ・・・・せめて設定例とかREADMEとかどっかに載せてほしかったなぁ・・・・(;´Д`)
対応
また使えるように対応していくわけですが、
問題は設定ファイルの記述法なので、たぶん再インストールは不要です。
・・・・や、色々やってる最中で再インストールも試したんで、全然確証がないですが・・・・(´・ω・`)
色々みて動かなかったらとりあえず再インストールするじゃないですか・・・・するよね・・・・?
もし↓の方法で出来ないようであれば、再インストールもしてみてください。。
設定ファイルを開く
まず、設定ファイルを開きましょう。
Preferences > Package Settings > SublimeLinter > Settings
すると、新しい設定ファイルが表示されます。
当然、右側に表示されるユーザー設定は空JSONです。。('A`)
旧設定ファイルを開く
次に、設定ファイルがあるディレクトリを確認しましょう。
以前の設定ファイルがSublimeLinter (old).sublime-settings
という名前で残っているハズです。
旧設定からトライ・アンド・エラー
この古い設定ファイルの中身をコピーして、空になってるユーザー設定へ貼り付けて保存します。
すると、たぶん↓のエラーがでます。
SublimeLinter: ERROR:
Invalid settings in 'Packages/User/SublimeLinter.sublime-settings':
Additional properties are not allowed ('user' was unexpected)
以前は必ずついていた一番大きなくくりであるuser
キー、これがまずエラーになります。。
・・・・大幅改修過ぎませんかね・・・・(;゚Д゚)
まぁ、エラーになったものは仕方ない。。
user
キーをのぞいて1段下げて、再度保存。
SublimeLinter: ERROR:
Invalid settings in 'Packages/User/SublimeLinter.sublime-settings':
Additional properties are not allowed ('wrap_find', 'tooltip_theme_excludes', 'rc_search_limit', 'show_errors_on_save', 'tooltip_theme', 'error_color', 'tooltips', 'warning_color', 'gutter_theme_excludes', 'mark_style', 'shell_timeout', 'python_paths', 'use_current_shell_path', 'tooltip_fontsize', 'passive_warnings' were unexpected)
(((( ;゚Д゚))))
・・・・とまぁ、こんな感じでひたすらエラーを潰します。
色々設定を書いてる人は大変かもしれんです。。(;・∀・)ガンバレ
自分の場合、設定ファイルをそんなにいじってなかったし、
linters
、paths
は新設定にも残ったままだったので、エラー箇所を消しただけ\(^o^)/
すべてのエラーを対応しきれば、以前のようにlintされるかと思います。
対応後
一応、自分が対応しおわた際の設定を・・・・サンプルは多い方がいい・・・・。
{
"debug": false,
"delay": 0.3,
"gutter_theme": "Danish Royalty",
"linters": {
"php": {
"cmd": "C:\\php\\php.exe"
}
},
"paths": {
"linux": [],
"osx": [],
"windows": [
"C:\\php\\",
]
},
"styles": [
{
"mark_style": "fill",
"priority": 1,
"scope": "region.yellowish markup.changed.sublime_linter markup.warning.sublime_linter",
"icon": "warning",
"types": [
"warning"
]
},
{
"mark_style": "fill",
"priority": 1,
"scope": "region.redish markup.deleted.sublime_linter markup.error.sublime_linter",
"icon": "error",
"types": [
"error"
]
}
],
"syntax_map": {
"html (django)": "html",
"html (rails)": "html",
"html 5": "html",
"javascript (babel)": "javascript",
"magicpython": "python",
"php": "html",
"python django": "python",
"pythonimproved": "python"
}
}
ほとんどそのままなんだけど、変えたところは以下です。
-
gutter_theme
にDanish Royalty
を設定。色々みたけど、これが見た目良さげだったので。-
gutter_theme
を使う場合はstyles.icon
にはテーマのスタイルを入れる必要があるので注意。 - この対応やってる間に再インストールした覚えがあるので、
gutter_theme
変える場合は気をつけて。
-
-
SublimeLinter-php
を使ってるので、linters
とpaths
にその設定を記載。-
linters
には実行ファイルのパスを、paths
には実行ファイルがあるディレクトリのパスを。
-
-
styles.mark_style
は、エラーになった箇所が目立つようにfill
にしました。
あとがき
いままで動いていたものが急に動かなくなるってのは開発あるあるですが、
まさか設定ファイルの書き方が変わってると思わず、ちと時間がかかりました。。
一応ポップアップ(だったかな?)で設定ファイルが置き換えられたメッセージが出ていたので、
まだ気づくことが出来ただけよかったかな・・・・。