V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GoForce5500
V2EX  ›  程序员

前端支持表达式自动补全的库或框架有推荐么

  •  
  •   GoForce5500 · 2021-05-12 11:16:43 +08:00 · 1401 次点击
    这是一个创建于 1051 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如录入如下内容时: 出勤人员.出勤时间*工资

    能够自动提示可选项"工资表.加班工资"、"工资表.正常工资"、"工资表.餐补",并且选中后自动替换当前录入内容,可选项可以是提前缓存在本地或实时请求后端数据。

    第 1 条附言  ·  2021-05-12 15:16:21 +08:00
    不是像搜索框一样仅补全一次,而是在录入过程中随时补全,比如下面这个随意写的例子(不要关心实际业务)。
    出勤人员.出勤时间*工资表.正常工资+(出勤人员.出勤时间-8)*工资表.加班工资
    哪个库能一路随着输入补全下来?解析和计算都已经有了,就是录入比较麻烦且易错。
    更进一步的需求就是:如何在后续编辑内容时也能随时补全?类似 IDEA 里面把 LocalDate 补全成为 LocalDateTime?
    9 条回复    2021-05-12 19:35:01 +08:00
    HerrDu
        1
    HerrDu  
       2021-05-12 11:34:50 +08:00
    这都是自己写的
    violetlai
        2
    violetlai  
       2021-05-12 11:36:23 +08:00
    你说的应该是 https://element.eleme.cn/#/zh-CN/component/input 里面的远程搜索?
    hronro
        3
    hronro  
       2021-05-12 11:46:26 +08:00 via iPhone
    感觉你们这个需求和 IDE 的智能补全差不多吧,做个简单的 DSL 的编译器吧,然后做个 language server 就可以复用 vs code 这类实现了 LSP 的编辑器的自动补全功能了
    hronro
        4
    hronro  
       2021-05-12 11:50:34 +08:00 via iPhone
    @hronro #3 这个工作量可不小,从楼主问的问题来看,楼主基本没多少这方面的经验。如果只是老板拍脑袋的需求,建议直接怼回去算了
    dartabe
        5
    dartabe  
       2021-05-12 12:44:36 +08:00
    大多数框架自带 但是都不大好用

    https://material-ui.com/zh/components/autocomplete/
    Itoktsnhc
        6
    Itoktsnhc  
       2021-05-12 13:12:22 +08:00
    前缀树搞一搞?
    jjwjiang
        7
    jjwjiang  
       2021-05-12 13:24:13 +08:00
    数据不多完全可以随便找个 combobox 配合巧妙的数据源设置就行了。
    比如把

    出勤人员
    出勤人员.出勤时间
    出勤人员.出勤时间*工资表.加班工资
    出勤人员.出勤时间*工资表.正常工资
    出勤人员.出勤时间*工资表.餐补

    这几个都加入数据源,配合 combobox 或者 autocomplete 很容易就得到非常类似的输入体验了
    wg5945
        8
    wg5945  
       2021-05-12 15:16:49 +08:00   ❤️ 1
    ch2
        9
    ch2  
       2021-05-12 19:35:01 +08:00   ❤️ 1
    monaco 是正确的解法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1185 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:19 · PVG 07:19 · LAX 16:19 · JFK 19:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.