Chat Messages: components 201-220
This commit is contained in:
121 files changed
+5737
-1
No files matched your search
@@ -0,0 +1,39 @@
|
||||
# 207 CodeBlock 代码块
|
||||
|
||||
## 用途
|
||||
|
||||
显示代码:语言标签、可选行号、基础语法着色(`internal.Highlight`,支持 go、javascript、typescript、python、json、shell、sql),复制、折叠与自动换行切换。
|
||||
|
||||
## 最小示例
|
||||
|
||||
```go
|
||||
mujica.CodeBlock(c, "func bow() {}", mujica.CodeBlockOptions{Language: "go", LineNumbers: true})
|
||||
```
|
||||
|
||||
签名:`func CodeBlock(c *ui.Context, code string, opts CodeBlockOptions) CopyResult`
|
||||
|
||||
## 参数
|
||||
|
||||
| 字段 | 类型 | 默认值 | 含义 |
|
||||
| --- | --- | --- | --- |
|
||||
| `Language` | `string` | ""(显示“文本”) | 着色语言;未知语言按纯文本显示。 |
|
||||
| `LineNumbers` | `bool` | false | 显示右对齐的行号。 |
|
||||
| `Wrap` | `bool` | false | 自动换行的初始状态;关闭时横向滚动。 |
|
||||
| `Collapsed` | `bool` | false | 折叠的初始状态。 |
|
||||
|
||||
## 状态
|
||||
|
||||
换行开关以 Selection 底色加边框表示开启;复制后按钮在 2 秒内显示对勾“已复制”;折叠时只显示标题栏,展开按钮写明行数。关键字、字符串、数字、类型使用不同颜色,注释同时使用斜体。
|
||||
|
||||
## 事件
|
||||
|
||||
`Copied()`:本帧把代码写入了剪贴板。
|
||||
|
||||
## 键盘操作
|
||||
|
||||
Tab 依次到换行开关、复制、折叠按钮;Space 或 Enter 触发。
|
||||
|
||||
## 限制
|
||||
|
||||
- 着色是逐行的词法着色,不做语法分析;块注释可跨行。
|
||||
- 不做虚拟化,适合消息中的代码片段,不适合上万行文件。
|
||||
Reference in new issue
Block a user