Closed Shougo closed 11 years ago
7.3.969で再現しないという事は、neocomplcacheが使用している正規表現パターンがNFAエンジンのバグを付いている可能性もあります。neocomplcacheの単なるバグで無限ループになっている可能性もあります。
ひとまず、私の環境で再現するかの調査から始めます。
すみません。私の環境では再現できませんでした。
使用したスクリプトは以下です。私の環境に合わせ、スクリプトを少し書き直しました。この.vimrcを起動時に読み込むだけで自動に処理を行うようにしています。
なぜかset filetype=scssとやってもsyntax/scss.vimが読み込まれなかったので、無理やりruntime!
で読み込むことにしました。
scriptencoding utf-8
set nocompatible
filetype off
set rtp+={最新版のneobundle.vimへのパス}
set rtp+={最新版のneocomplcache.vimへのパス}
if has('vim_starting')
call neobundle#rc('~/.bundle')
endif
NeoBundle "cakebaker/scss-syntax.vim"
filetype plugin indent on
" 有効にする
call neocomplcache#initialize()
set filetype=scss
runtime! syntax/scss.vim
autocmd VimEnter * NeoComplCacheCachingSyntax
neocomplcacheにデバッグメッセージを埋め込みましたが、syntax補完は正常に候補を出しています。
使用したVim: 7.3.1078 neocomplcache: a20f1c9
それっぽいのが再現しました。osyoさんの手順だと再現が無理で、scssファイルを用意してそれを開いた際にフリーズするようです。<c-c>
で復帰できます。
原因が判明しました。filetypeの判別で無限ループになっているようです。今は時間がないので、修正にはもう少しかかります。
問題の修正が完了しました。syntaxファイルの有無は関係なく、:set filetype=css.scss
とするだけで暴走していました。
:smiley:
https://github.com/vim-jp/issues/issues/403 から移転。