gpt4 book ai didi

c# - 在 Snippet 上获取当前命名空间

转载 作者:行者123 更新时间:2023-11-30 18:01:38 26 4
gpt4 key购买 nike

我想在我的代码片段中注入(inject)当前的命名空间。有没有人有想法帮助我?

ClassName 函数返回包含插入片段的类的名称。有命名空间的东西吗?

谢谢,法比安

片段示例:

    <Declarations>
<Literal default="true" Editable="false">
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Function>ClassName()</Function>
<Default>ClassNamePlaceholder</Default>
</Literal>
<Literal Editable="false">
<ID>namespace</ID>
< ??? />
</Literal>
</Declarations>
<Code Language="CSharp">
<![CDATA[
$namespace$ $classname$
]]>
</Code>

预期结果:“TheCurrentNamepace.OfMyClass”“MyClassName”

最佳答案

最后我选择使用宏来调用我的代码片段并在其上注入(inject)命名空间。

调用片段:

Sub InsertMySnippet()
DTE.ActiveDocument.Selection.Text = "mySnippetShortcut"
DTE.ExecuteCommand("Edit.InsertTab")

Dim selection As TextSelection = DTE.ActiveDocument.Selection
selection.Insert(GetNamespace())

DTE.ExecuteCommand("Edit.InsertTab")
End Sub

获取命名空间:

Private Function GetNamespace() As String
Dim classInfo As CodeClass2 = GetClassElement()
Return classInfo.FullName
End Function

Private Function GetClassElement() As CodeClass2
Try
Dim selection As TextSelection = DTE.ActiveDocument.Selection
Dim fileCodeModel As FileCodeModel2 = DTE.ActiveDocument.ProjectItem.FileCodeModel
Dim element As CodeElement2 = fileCodeModel.CodeElementFromPoint(selection.TopPoint, vsCMElement.vsCMElementClass)
Return element
Catch
Return Nothing
End Try
End Function

关于c# - 在 Snippet 上获取当前命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com