Trans.nvim/note/api.md
2023-01-19 17:06:26 +08:00

2.6 KiB

API说明

数据结构

翻译

  • word
    待翻译的字符串: string
  • sentence
    是否为句子: boolean
  • result
    翻译查询的结果: table

    见: 翻译结果

  • engine

窗口

  • style
    风格: string
  • height
    高度: integer
  • width
    宽度: integer
  • border
    边框样式: string
  • winhl
    窗口的高亮: string

翻译结果

无特殊说明, 所有字段均为string类型

  • word
    查询的字符串
  • phonetic
    音标
  • collins
    柯林斯星级: integer
  • oxford 是否为牛津词汇: integer (1为是)
  • tag
    标签
  • pos
    词性
  • exchange
    词态变化
  • translation
    中文翻译
  • definition
    英文注释

内容单位

  • field 字段

    是展示的最小单位

    属性

    • 1 存储的文本: string
    • 2 (optional) 对应的高亮: string
    • _start
      起始行: integer
    • _end
      结束行: integer

    注意: _start_end 字段只有已经被展示到窗口后才会被设置

    方法

  • line

    窗口展示的每一行, 一个行有多个field

    属性

    • text
      当前保存的字符串: string
    • hls
      行内的高亮: table
    • index
      行号[0为起始下标]
    • fields
      行内保存的field
    • status
      行内是否需要更新: boolean

    注意: num 只有已经被展示到窗口后才会被设置

    方法

    • update
      更新texthls
    • data
      获取行的text
    • insert
      添加新field
    • add_highlight
      添加高亮

      参数: bufnr

  • content 内容

    窗口展示的单位, 一个内容内有多个line

    方法

    • data
      返回lines和highlights
    • insert 插入新的行
    • attach
      将内容展示到buffer

      参数: bufnr

窗口绘制逻辑

  • 获取所有组件

hover

  • 按照order顺序加载
  • 按组件间距为4计算组件个数能否在一行以内放下
    • 放不下则按照组件间距为4 计算组件个数并对齐
    • 放得下则重新计算组间距

获得组件行内容, 设置到行内 获取组件高亮, 设置高亮

float

由定义好的逻辑,绘制整个窗口