microsoft / microsoft/ConcordExtensibilitySamples
Language not registering when calling DkmLanguage.Create(), language in stack frames showing as "Unknown"
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 135
- Forks
- 54
- Avg merge
- 5h 58m
- Merged PRs (30d)
- 3
Description
I'm creating a compiler and language with:
compiler = new DkmCompilerId(Guids.Compiler, Guids.Language);
language = DkmLanguage.Create("AwesomeScriptLanguage", compiler);
and passing the DkmCompilerId to my DkmModule creation, but this doesn't seem to register the language, and I can't see any way to do so in the API docs. All example code I can find matches what I'm doing, and none of the examples reference the returned DkmLanguage anywhere after it's created.
I've tried creating the language in the remote and local components, and both at the same time. I've also tried implementing IDkmSymbolCompilerIdQuery.GetCompilerId() on the local component, but this never gets called.
My stack frames show the language as "Unknown" and DkmEngineSettings.Languages doesn't list my language. The compiler and language guids belonging to the DkmModule are correct when passed into any related function, IDkmCallStackFilter.FilterNextFrame() as an example.
The core issue I'm trying to solve is that IDkmLanguageExpressionEvaluator.GetFrameLocals() is not called on my component, but I figured if the language isn't registering properly then this might be the root cause. Please let me know if you think these are unrelated issues.
Cheers!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the DkmLanguage.Create() call and the DkmEngineSettings.Languages collection, then trace how the DkmModule receives its DkmCompilerId. Compare the local and remote component paths and the IDkmSymbolCompilerIdQuery.GetCompilerId() and IDkmLanguageExpressionEvaluator.GetFrameLocals() entry points; done means the language is registered and the expected evaluator callback behavior is established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100