問題タブ [errorformat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - Visual Studio の Vim エラー形式
Visual Studio の devenv ビルド プロセスまたは msbuild からの出力で Vim のクイックフィックス機能を使用したいと考えています。
次のように devenv ビルドを実行する build.bat というバッチ ファイルを作成しました。
vim では、:make コマンドをそのバッチ ファイルに指定しました。
:make を実行すると、ビルドは正常に実行されますが、エラーが解析されません。したがって、:cl または :cn を実行すると、devenv /Build からのすべての出力が表示されます。エラーだけが表示されるはずです。
ネット上のさまざまなサイトで見つけたさまざまな errorformat 設定を試してみましたが、どれもエラーを正しく解析できませんでした。ここに私が試したいくつかがあります:
もちろん、Vim のデフォルトも試しました。
build.bat からの出力例を次に示します。
更新: devenv の代わりに msbuild を使用するのがおそらく正しい方法のようです (Jay のコメントによると)。
msbuild を使用すると、makeprg は次のようになります。
サンプル出力は次のとおりです。
ここで注意が必要な部分は、Vim の現在のディレクトリであり、.csproj ファイルの 1 つ上のディレクトリにある .sln ファイルではなく、パスが .csproj ファイルに相対的であるという事実にあるようです。
答え: 分かりました...
これにより、devenv /Build と msbuild の両方の出力がキャプチャされます。ただし、msbuild には 1 つの問題があります。デフォルトでは、出力に絶対パスは含まれません。これを修正するには、csproj ファイルのメインの PropertyGroup に次の行を追加する必要があります。
vim - PL/SQL用のVimエラーフォーマット/efm
標準のvim:clist、:cope機能をvimで動作させようとしています。
具体的には、コンパイラの出力からファイル名をキャプチャしようとしています(失敗しています)。
PL / SQLコードのコンパイルは問題なく(エラーがない場合=)、エラーメッセージ、行番号、列番号を取得するerrorformatがありますが、ファイル名を取得できません(ファイルにジャンプできるようにするためにvimが必要とします)。
これは私が思いついた中で最高のエラーフォーマットです:
これはコンパイラからの出力です。最初の行にファイル名しかありません(これは+ P [%f]で取得しようとしています。
出力:
その後、:clistはエラーがキャッチされたことを示しますが、ファイル名は示しません:: clist
これでファイル名を取得する方法を知っている人はいますか?
ありがとうデイブスマイリー
vim - Vimエラーフォーマット
ドキュメントを読みましたが、さらに混乱しました。
コンパイラによって生成された次のエラーがあります。
エラー行が指定されている行を検出する方法は知っていますが、エラーリストに余分な役に立たない情報が大量に表示され、エラーメッセージが2行に分割されているため、マージすることをお勧めします.
私の開始エラーフォーマットは次のとおりです。
私たちはそれに取り組んでいるので、常にmakeを実行することに頼らずにefmをテストする簡単な方法はありますか?
vim - Vim errorformat と jslint
makeprg と errorformat を VIM と jslint で動作させようとしていますが、私の人生に適したエラー形式を取得できないようです...次のような結果を生成する jslint の nodejs バージョンを使用しています。
私は基本的に、行番号、列、およびエラーを一致させ、ファイル名に現在のファイルを使用したいと考えています。誰でもこれを行う方法を知っていますか?
明確にするために、このコマンドを機能させるためのエラーフォーマットを探しています。現在、私の .vimrc ファイルには
これは機能していません(jslintは正常に機能しますが、エラーフォーマットが間違っています)...
vim - Vim: エラー形式はすべて一致します
次のエラーを と一致させようとしていますefm
:
エラー メッセージは何でもかまいません (つまり、AssertionError: .*
またはの.*Error: .*
形式に常に一致するとは限りません)。一般的な形式は次のとおりです。
私の問題は、エラーメッセージがどの行にも一致することです。エラー メッセージを 1 行だけに制限し、一致する "at" 行が後に続く場合にのみ一致させる必要があります。
私は次のことを試しましたefm
:
これはほとんど機能しますが、エラーに加えてステータス行 (たとえば、エラーの前後の非エラー) に一致します。%E%m ... %Z
合計 2 行 (エラー メッセージ用に 1 行、行用に 1行) になるように強制するにはどうすればよいat
ですか? 必要に応じて、標準の UNIX ツールにアクセスできmakeprg
ます。
vim - Vimのクイックフィックスリストのerrorformatのエラータイプは何ですか?
%t
Vim のクイックフィックス リストにある書式指定子についてはよくわかりません。クイックフィックス バッファの動作/表示にどのような影響がありますか?
次のテストファイルでそれを見つけようとしました:
そして、errorformat
最初に次のことを行います。
これを使用すると、 の行番号をerrorformat
使用:cgetfile test.out
してジャンプできますfoo.h
が、次のようになりますerrorformat
。
変更されたのは、クイックフィックスバッファーの行番号の後にいくつかのスペースが表示されるようになったことだけです。たとえば、(1 の後に 2 つのスペース)
それ以外の
だから私は2つの質問があります:
- 私の何が問題なの
errorformat
ですか? - エラーの種類を抽出できる場合はどうすればよいですか?
vim - jslintvimエラーフォーマット
jslintをnpmとともにシステムにインストールしています。
次の形式でエラーメッセージが生成されます。
エラーメッセージを解析するためにVim用のコンパイラプラグインを作成しましたが、の問題を理解できませんでしたerrorformat
。コンパイラファイルに次のものがあります。
どのAFAIKが次のことを行う必要がありますか。
%*[\ ]
-行頭の空白をスキップします%n
-エラー番号と一致します\
-スペースをスキップします%l
-行番号に一致\,
-カンマをスキップします%c
-列番号と一致します:
-コロンをスキップします\
-もう一度スペースをスキップします%m
-エラーメッセージに一致します,
-改行%-G%.%#
-他のすべてをスキップします
jslint
メッセージを表示するを実行しますが、:clist
コマンドはエラーを表示しません。
私は何が欠けていますか?
vim - Vim errorformat: %D を使用してディレクトリを変更する
errorformat
現在のディレクトリがエラーのあるファイルを含むディレクトリの兄弟である場合、使用する適切な Vim を見つけるのに苦労しています。例えば:
Vimのmakeprg
オプションは、でファイルを実行するように設定されていますerrorformat/spec
。からmakeを実行しerrorformat/model
ます。Vim は、現在のファイルのディレクトリを作業ディレクトリとして使用するように設定されています。
テストするために、私は以下を実行していますerrorformat/model/errorformat.vim
ご覧のとおり、兄弟ディレクトリでRubyファイルを実行します。
望ましい効果は、別のディレクトリからスペックを実行すると、Vim が を使用し%D
てerrorformat
スペック ファイルを開くことができるようになることです。しかし、それは機能していません。%D%f
特に、私は自分が期待していることをすることができないようです。このテストを実行すると、QuickFix ウィンドウに
二重のバーは、 の%D%f
一部がerrorformat
出力を認識していないことを示しています。これにより、次の行がパーツによって解釈されないようにも見え%f:%l
ます。
私が見逃している非常に単純なものがあるに違いありません!
vim - Vimクイックフィックスウィンドウにcscope出力を配置する方法は?
出力を cscope から Vim クイックフィックス ウィンドウにリダイレクトしたい。接着部分は簡単ですが、現在エラーフォーマットで立ち往生しています。cscope 出力の例を次に示します (cscope -L -1 bar):
これは、foo() の内部で、abc.cpp の 25 行目に bar() への呼び出しがあることを意味します。
efm = %f\ %*[^\ ]\ %l\ %m
動作しますが、スコープ情報は失われます。例えば:
私が望むのは、次のように、クイックフィックス ウィンドウにスコープを含めることです。
errorformat のみでこれを行うことは可能ですか、それとも Vim に出力する前に出力を操作するスクリプトを作成する必要がありますか?
syntax-error - 複数行のエラーフォーマット文字列を書くには?
vim-opencl plugin のOpenCL 構文チェッカーを作成したいと考えています。OpenCL コンパイラは、出力エラーの奇妙な書式設定を行います。エラーには 2 種類あります。
正常 (小さなエラーの説明あり):
エラーの説明に改行があり、正常ではありません。
したがって、問題は、2 番目のケースの壊れたエラーの説明と、最初のケースの通常のエラー処理の 2 つの部分の連結にあります。
一般的な構文チェッカーとして syntasticを使用しています。今、私はそれのためのそのようなコードを持っています:
したがって、最初と 2 番目のエラーは次のようになります。
ほとんど問題ありませんが(特に2番目のケースでは)、次のようにする方法がわかりません:
または、少なくとも次のようにします。
アイデアはありますか?
アップデート。更新されたエラー形式と期待