如何在Visual Studio 2019代码片段中获取目标文件名作为可替换参数
嘿,这个问题我之前帮朋友解决过!VS 2019 Community的代码片段默认参数里确实没有直接给出插入目标文件名的选项,但咱们可以通过内置的自定义函数来实现,步骤其实很简单:
实现方法详解
1. 找到并编辑你的代码片段文件
首先,定位到你的代码片段存储路径(默认在%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\对应语言的子目录下),找到你要修改的.snippet文件,用文本编辑器打开它。
2. 声明文件名参数并绑定内置函数
在代码片段的<Declarations>节点中,添加一个不可编辑的Literal参数,通过VS内置的函数来获取当前文件名。比如:
<Declarations> <!-- 其他参数声明... --> <Literal Editable="false"> <ID>TargetFileName</ID> <!-- 获取带扩展名的完整文件名 --> <Function>GetFileName()</Function> <Default>UnknownFile</Default> </Literal> <!-- 如果需要不带扩展名的文件名,可以再加一个参数 --> <Literal Editable="false"> <ID>TargetFileNameNoExt</ID> <Function>GetFileNameWithoutExtension()</Function> <Default>UnknownFile</Default> </Literal> </Declarations>
这里的Editable="false"是为了让这个参数在插入时不可修改,自动替换成真实文件名;Default是备用值,防止获取失败时显示。
3. 在代码片段中引用参数
接下来,在<Code>节点的代码模板里,用$TargetFileName$或者$TargetFileNameNoExt$来引用这个参数就行。比如:
<Code Language="csharp" Kind="method body"> <![CDATA[ // 当前文件名:$TargetFileName$ // 无扩展名文件名:$TargetFileNameNoExt$ public void YourMethod() { // 代码逻辑... } ]]> </Code>
4. 测试效果
保存修改后的.snippet文件,回到VS 2019,打开任意一个代码文件,插入你的代码片段,就能看到参数已经自动替换成当前文件的名称了!
额外小贴士
VS代码片段还支持其他实用的内置函数,比如:
GetDirectoryName():获取当前文件所在的目录路径GetSolutionName():获取当前解决方案的名称GetProjectName():获取当前项目的名称
这些函数都可以用同样的方式绑定到参数上,满足更多个性化需求。
内容的提问来源于stack exchange,提问作者OpalApps
相关产品推荐
相关产品推荐

