CodeEditApp / CodeEditApp/CodeEdit

✨ Cursor Customization

未关闭
#1,120 5 条评论 0 个 reaction 已指派 1 人 已被 @bombardier200 认领 在 GitHub 查看
enhancement
主要语言
Swift
星标
23k
派生
1.2k
PR 合并指标
30 天内没有已合并 PR

描述

### Description

We should allow the user to customize their cursor both in the editor and in the terminal.

These customizations include:
- Cursor shape
- Bar
- Underline
- Block
- Cursor thickness (if shape is Bar or Underline)
- Rounded corners
- Cursor color (active and inactive)
- Accent Color
- Neutral
- Cursor transition between positions
- Cursor blink style
- Blink
- Smooth
- Phase
- Expand
- Solid (no blinking)

The blink styles [seen in VS Code](https://chrisoncode.hashnode.dev/animating-your-vs-code-cursor-with-cursor-blinking) are:

| Style | Preview |
| - | - |
| Blink | blink |
| Smooth | blink |
| Phase | blink smooth |
| Expand | blink expand |
| Solid | blink |

We might experiment to offer other variations of these (maybe phase+expand for example).

I’d imagine there are many possible ways this can be configured. We might provide the following configurations, we could even use these configurations internally to create presets and then allow the user to add a custom style by playing with these values shown below.

| Configuration | Default (Blink) | Smooth | Phase | Expand | Solid |
| ----------------------------- | --------------- | ------ | ----- | ------ | ----- |
| blink on duration | 0.5s | 0.5s | 0.5s | 0.5s | 0.5s |
| blink off duration | 0.5s | 0.5s | 0.5s | 0.5s | 0.5s |
| transition in duration | 0s | 0.05s | 0.2s | 0.2s | 0s |
| transition out duration | 0s | 0.05s | 0.2s | 0.2s | 0s |
| opacity at on state | 1 | 1 | 1 | 1 | 1 |
| opacity at off state | 0 | 0 | 0 | 0 | 1 |
| vertical scale at on state | 1 | 1 | 1 | 1 | 1 |
| vertical scale at off state | 1 | 1 | 1 | 0 | 1 |
| horizontal scale at on state | 1 | 1 | 1 | 1 | 1 |
| horizontal scale at off state | 1 | 1 | 1 | 1 | 1 |

@CodeEditApp/maintainers What are your thoughts around this?

### Considerations

This applies to both our editor which uses [STTextView](https://github.com/krzyzanowskim/STTextView) and the terminal which uses [SwiftTerm](https://github.com/migueldeicaza/SwiftTerm). I've created [this discussion](https://github.com/migueldeicaza/SwiftTerm/discussions/279) in SwiftTerm to discuss how this might be done in coordination with their project.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

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