plotly / plotly/Plotly.NET

Generate C# bindings via code generation based on the core F# API

未关闭
#424 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

Area: CSharp Difficulty: Advanced FeatureRequest FsLab Hackathon 2023 Status: Available
主要语言
F#
星标
860
派生
99
平均合并
22 分钟
30 天内合并 PR
1

描述

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

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先查看过时的 csharp-object-bindings 分支,尤其是 src/Plotly.NET.Codegen,并将其基于反射的方案与链接的 Roslyn 增量生成器文档进行比较。该 issue 需要选定一种方案,并在当前仓库中实现从核心 F# API 生成 C# 绑定的功能;其确切完成标准尚未定义。

由索引模型根据 Issue 内容生成。

评估

技术栈
csharp, fsharp
领域
tooling
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。