Generate C# bindings via code generation based on the core F# API
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by reviewing the outdated csharp-object-bindings branch, especially src/Plotly.NET.Codegen, and compare its reflection-based approach with the linked Roslyn incremental generators documentation. The issue needs an approach selected and a current-repository implementation that generates C# bindings from the core F# API; its exact completion criteria are not defined.
Written by the indexing model from the issue text.
Description
Description
We basically have 2 options here:
(1) Reflection-based F# code generation project
A WIP of this approach can be found on the csharp-object-bindings branch, which is severely out of date, so it might be best to just initialize a new project in the current repo and copy the files over.
The gist is that a well-defined string template for csharp source files is populated based on reflection-based runtime inspection of the F# types, functions and methods.
(2) C# incremental/source generators
here I have no domain knowledge at all, and all tutorials look like pure arcane glyphs to me. I think source generators are now called incremental generators. I think they are aiming to do what we need. I have absolutely no idea how to do this though. If we go this way, we need an experienced C# dev on it.
https://github.com/dotnet/roslyn/blob/main/docs/features/incremental-generators.md
- Dominant language
- F#
- Stars
- 860
- Forks
- 99
- Avg merge
- 22m
- Merged PRs (30d)
- 1
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.
More from plotly/Plotly.NET
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
plotly/Plotly.NET#498 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 42/100
plotly/Plotly.NET#495 · 3 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 45/100
plotly/Plotly.NET#494 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
plotly/Plotly.NET#492 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
plotly/Plotly.NET#485 · 1 comment ·
All issues in plotly/Plotly.NET
Similar issues
-
ZCode 3.14.3 に対応する Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
supermomonga/zcode-acp#24 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
learningequality/ricecooker#747 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
KhronosGroup/glTF-Blender-IO#2769 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100