我想添加一些支持D編程語言到我的vim配置。爲了自動完成,我需要檢測包含的軟件包。這不正是難以在簡單的情況下,要做到:Vim設置檢測包括在D源
import std.stdio;
import std.conv;
我的配置:
set include=^\\s*import
set includeexpr=substitute(v:fname,'\\.','/','g')
的偉大工程。
然而,進口可以有更復雜的格式,例如:
package import std.container, std.stdio = io, std.conv;
我沒能找到一個簡單的方法與include
和includeexpr
解析這個。
還有第二個問題:import
可以有不同的訪問修飾符,如public
和private
。 VIM掃描遞歸包含文件,import
來自包含文件的語句也被解析。但是我需要區分我現在使用的文件和自動掃描的文件:在當前文件中應檢測到所有導入,但在其他文件中,只有public import
語句應該向搜索添加更多文件。
感謝您的幫助。
更新
這是一種恥辱,如果這不能沒有完整的解析器來完成。從本質上講,我只需要兩樣東西:
- 從
includeexpr
,而不是一個文件名返回數組 - 包括當前和其他文件
只是在','簡單的情況下分開 –
但是'includeexpr'可以返回多個文件名以包含單個字符串嗎? – Korobochka