EnvDTE in c#: how do i add parameters to a generated c++ function?











up vote
0
down vote

favorite
1












I am trying to generate a function with parameters. adding the function header and body works fine, but when I try to add parameters I get an exception that I haven't been able to solve.



func.AddParameter("num", "int");


I get the exception:




Failed to return new Code Element. Possibly syntax error. New Element Name: num




this is how I generated the function head and body:



VCCodeFunction func = (VCCodeFunction)(((VCFileCodeModel)(file.FileCodeModel)).AddFunction("testfunc", vsCMFunction.vsCMFunctionFunction, "testClass2"));
func.BodyText = "for(int i=0; i < 5; ++i){}n return 1;";


this generates:



testClass2 testfunc()
{
for (int i = 0; i < 5; i++) {}
return 1;
}


as a temporary solution I get around the issue by manually adding the parameters one character left from where the body starts (or within the parenthesis)



var tp = func.GetStartPoint(vsCMPart.vsCMPartBodyWithDelimiter);
var ep = tp.CreateEditPoint();
ep.CharLeft();
ep.Insert("int num");


but I feel this is bad practice.
what am I doing wrong?










share|improve this question







New contributor




Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • That is imaginative casting. The documented method has three arguments.
    – Hans Passant
    14 hours ago










  • i'm sorry I don't know what imaginative casting is, and I couldn't find anything about it on the web. also, I get the same exception if I add the third argument which is 0 by default. can you elaborate?
    – Xeroman0
    10 hours ago










  • Consider using vsCMTypeRefInt for the 2nd argument.
    – Hans Passant
    10 hours ago










  • I have tried that. it yields the same result
    – Xeroman0
    1 hour ago















up vote
0
down vote

favorite
1












I am trying to generate a function with parameters. adding the function header and body works fine, but when I try to add parameters I get an exception that I haven't been able to solve.



func.AddParameter("num", "int");


I get the exception:




Failed to return new Code Element. Possibly syntax error. New Element Name: num




this is how I generated the function head and body:



VCCodeFunction func = (VCCodeFunction)(((VCFileCodeModel)(file.FileCodeModel)).AddFunction("testfunc", vsCMFunction.vsCMFunctionFunction, "testClass2"));
func.BodyText = "for(int i=0; i < 5; ++i){}n return 1;";


this generates:



testClass2 testfunc()
{
for (int i = 0; i < 5; i++) {}
return 1;
}


as a temporary solution I get around the issue by manually adding the parameters one character left from where the body starts (or within the parenthesis)



var tp = func.GetStartPoint(vsCMPart.vsCMPartBodyWithDelimiter);
var ep = tp.CreateEditPoint();
ep.CharLeft();
ep.Insert("int num");


but I feel this is bad practice.
what am I doing wrong?










share|improve this question







New contributor




Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • That is imaginative casting. The documented method has three arguments.
    – Hans Passant
    14 hours ago










  • i'm sorry I don't know what imaginative casting is, and I couldn't find anything about it on the web. also, I get the same exception if I add the third argument which is 0 by default. can you elaborate?
    – Xeroman0
    10 hours ago










  • Consider using vsCMTypeRefInt for the 2nd argument.
    – Hans Passant
    10 hours ago










  • I have tried that. it yields the same result
    – Xeroman0
    1 hour ago













up vote
0
down vote

favorite
1









up vote
0
down vote

favorite
1






1





I am trying to generate a function with parameters. adding the function header and body works fine, but when I try to add parameters I get an exception that I haven't been able to solve.



func.AddParameter("num", "int");


I get the exception:




Failed to return new Code Element. Possibly syntax error. New Element Name: num




this is how I generated the function head and body:



VCCodeFunction func = (VCCodeFunction)(((VCFileCodeModel)(file.FileCodeModel)).AddFunction("testfunc", vsCMFunction.vsCMFunctionFunction, "testClass2"));
func.BodyText = "for(int i=0; i < 5; ++i){}n return 1;";


this generates:



testClass2 testfunc()
{
for (int i = 0; i < 5; i++) {}
return 1;
}


as a temporary solution I get around the issue by manually adding the parameters one character left from where the body starts (or within the parenthesis)



var tp = func.GetStartPoint(vsCMPart.vsCMPartBodyWithDelimiter);
var ep = tp.CreateEditPoint();
ep.CharLeft();
ep.Insert("int num");


but I feel this is bad practice.
what am I doing wrong?










share|improve this question







New contributor




Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I am trying to generate a function with parameters. adding the function header and body works fine, but when I try to add parameters I get an exception that I haven't been able to solve.



func.AddParameter("num", "int");


I get the exception:




Failed to return new Code Element. Possibly syntax error. New Element Name: num




this is how I generated the function head and body:



VCCodeFunction func = (VCCodeFunction)(((VCFileCodeModel)(file.FileCodeModel)).AddFunction("testfunc", vsCMFunction.vsCMFunctionFunction, "testClass2"));
func.BodyText = "for(int i=0; i < 5; ++i){}n return 1;";


this generates:



testClass2 testfunc()
{
for (int i = 0; i < 5; i++) {}
return 1;
}


as a temporary solution I get around the issue by manually adding the parameters one character left from where the body starts (or within the parenthesis)



var tp = func.GetStartPoint(vsCMPart.vsCMPartBodyWithDelimiter);
var ep = tp.CreateEditPoint();
ep.CharLeft();
ep.Insert("int num");


but I feel this is bad practice.
what am I doing wrong?







c# envdte visual-studio-sdk






share|improve this question







New contributor




Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 14 hours ago









Xeroman0

1




1




New contributor




Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Xeroman0 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • That is imaginative casting. The documented method has three arguments.
    – Hans Passant
    14 hours ago










  • i'm sorry I don't know what imaginative casting is, and I couldn't find anything about it on the web. also, I get the same exception if I add the third argument which is 0 by default. can you elaborate?
    – Xeroman0
    10 hours ago










  • Consider using vsCMTypeRefInt for the 2nd argument.
    – Hans Passant
    10 hours ago










  • I have tried that. it yields the same result
    – Xeroman0
    1 hour ago


















  • That is imaginative casting. The documented method has three arguments.
    – Hans Passant
    14 hours ago










  • i'm sorry I don't know what imaginative casting is, and I couldn't find anything about it on the web. also, I get the same exception if I add the third argument which is 0 by default. can you elaborate?
    – Xeroman0
    10 hours ago










  • Consider using vsCMTypeRefInt for the 2nd argument.
    – Hans Passant
    10 hours ago










  • I have tried that. it yields the same result
    – Xeroman0
    1 hour ago
















That is imaginative casting. The documented method has three arguments.
– Hans Passant
14 hours ago




That is imaginative casting. The documented method has three arguments.
– Hans Passant
14 hours ago












i'm sorry I don't know what imaginative casting is, and I couldn't find anything about it on the web. also, I get the same exception if I add the third argument which is 0 by default. can you elaborate?
– Xeroman0
10 hours ago




i'm sorry I don't know what imaginative casting is, and I couldn't find anything about it on the web. also, I get the same exception if I add the third argument which is 0 by default. can you elaborate?
– Xeroman0
10 hours ago












Consider using vsCMTypeRefInt for the 2nd argument.
– Hans Passant
10 hours ago




Consider using vsCMTypeRefInt for the 2nd argument.
– Hans Passant
10 hours ago












I have tried that. it yields the same result
– Xeroman0
1 hour ago




I have tried that. it yields the same result
– Xeroman0
1 hour ago

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






Xeroman0 is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416265%2fenvdte-in-c-how-do-i-add-parameters-to-a-generated-c-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes








Xeroman0 is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















Xeroman0 is a new contributor. Be nice, and check out our Code of Conduct.













Xeroman0 is a new contributor. Be nice, and check out our Code of Conduct.












Xeroman0 is a new contributor. Be nice, and check out our Code of Conduct.















 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416265%2fenvdte-in-c-how-do-i-add-parameters-to-a-generated-c-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Trompette piccolo

Slow SSRS Report in dynamic grouping and multiple parameters

Simon Yates (cyclisme)