php_getsetという名前の vim ftplugin を見ています。PHP プロパティのゲッターとセッターを生成します。かなりうまく機能しますが、インデントを正しく推測しません。私はこれを修正しようとしています。関連するコードは次のとおりです。
let s:phpname = '[a-zA-Z_$][a-zA-Z0-9_$]*'
let s:variable = '\(\s*\)\(\([private,protected,public]\s\+\)*\)\$\(' . s:phpname . '\)\s*\(;\|=[^;]\+;\)'
... (inside a function)
let s:indent = substitute(a:variable, s:variable, '\1', '')
let s:varname = substitute(a:variable, s:variable, '\4', '')
let s:funcname = toupper(s:varname[0]) . strpart(s:varname, 1)
a:variable
デバッグから、値があることがわかりますd $downPayment;
(dは「保護された」という単語の末尾に由来します)。substitute
達成するための 3 番目の引数がわかりません。以前に後方参照について読んだことがありますが、このコードで何をしているのかわかりません。
助けてくれてありがとう。質問をより明確にするか、詳細を提供できるかどうか教えてください。