V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
GoForce5500
V2EX  ›  程序员

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

  •  
  •   GoForce5500 · May 12, 2021 · 2698 views
    This topic created in 1817 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    这几个都加入数据源,配合 combobox 或者 autocomplete 很容易就得到非常类似的输入体验了
    wg5945
        8
    wg5945  
       May 12, 2021   ❤️ 1
    ch2
        9
    ch2  
       May 12, 2021   ❤️ 1
    monaco 是正确的解法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2383 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 04:14 · PVG 12:14 · LAX 21:14 · JFK 00:14
    ♥ Do have faith in what you're doing.