2

compileエラーメッセージから関連するソースにリンクできるようにコマンドを実行していますが、リンク先のファイルを取得するには、一致した行のコンテンツのチャンクを変換する必要があります。foo-bar.quux(この行は、に変換する必要があるのような clojure 名前空間を示していますfoo_bar/quux.clj。)

のドキュメントにcompilation-error-regexp-alistは、一部、

各 elt の形式は (REGEXP FILE [LINE COLUMN TYPE HYPERLINK HIGHLIGHT...]) です。... FILE には (FILE FORMAT...) という形式もあり、その名前のファイルが見つかるまで、認識されたファイル名に FORMAT (例: \"%sc\") が適用されます。または、FILE は、(FILENAME) または (RELATIVE-FILENAME . DIRNAME) を返す関数にすることもできます。前者の場合、FILENAME は相対または絶対です。

関数にエントリを追加するcompilation-error-regexp-alist-alistと、関数が引数なしで呼び出されます。その関数内で一致した行を取得するにはどうすればよいですか?compilation-error-regexp-alistFILE

4

1 に答える 1

2

を開いcompile.elてから検索すると、次の場所にC-s (funcallジャンプしました:

           (setq file (if (functionp file) (funcall file)
                        (match-string-no-properties file))))

これは関連する場所のようであり、関数が実際に引数なしで呼び出され、match-dataがまだ非常に有効であることを示しているため、 でファイル名を抽出できます(match-string <the-file-sub-group>)

于 2013-08-05T01:53:20.513 に答える