microsoft / microsoft/vscode-cpptools
Go To Definition on a managed function should not attempt to open a DLL as a text file
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 6.2k
- Forks
- 1.7k
- Merge medio
- 14 h 46 min
- PR fusionados (30 d)
- 61
Descripción
Type: Feature Request
Once I want to code a tool for .net I found that I have few supports.Intellisence doesn't recognise the code concerning CLR.
//a.cpp
#using<system.dll>
using namespace System;
int main(void){
Console::WriteLine("Hello World");
return 0;
}
This code surely passes the compilation with cl a.cpp /clr ,but I got these Intellisence errors:
name followed by '::' must be a class or namespace name
"#using" requires C++/CLI mode
I think it it because intellisence can't find a file declaring these namespaces and function.So I build a header.
//tips.h
namespace System{
class Console final{
public:
static void WriteLine(...);
static void Write(...);
private:
};
}//namespace System
However, this will trigger a redefination error at compile time.
system.h(4): error C2011: redefination of “System::Console”:“class”
Is there a way to get tips and Intellisence check without coming into compile time errors? Can this problem be solved by extra features? or by manually making headers?,or other snippet options? I wish there is a method.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza reproduciendo el ejemplo a.cpp con cl /clr y observa los errores de IntelliSense para #using y System::Console. Revisa después la solución alternativa con tips.h y system.h descrita en el issue, y determina cómo debería manejar Go To Definition las funciones administradas sin abrir una DLL como texto. El trabajo estará terminado cuando el código C++/CLI reciba IntelliSense útil sin requerir headers que provoquen redefiniciones en tiempo de compilación.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100