Lapce 发布 v0.1.0 用 Rust 编写 GPU 渲染的开源代码编辑器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
dzhou121
V2EX    分享创造

Lapce 发布 v0.1.0 用 Rust 编写 GPU 渲染的开源代码编辑器

  •  7
     
  •   dzhou121 2022-05-13 16:49:58 +08:00 6182 次点击
    这是一个创建于 1247 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://lapce.dev

    Lapce 主要目标是媲美 Sublime Text 的速度,以及强大的功能。

    新版本把 GPU 后端从 Wgpu 换到了 OpenGL ,另外就是基本功能的完善。欢迎下载试用。

    总体是基于 Rust 的技术栈,没有使用 web 那一套东西,所以能够保证获得最接近底层的速度。用了现在比较流行的 TreeSitter ,LSP 那一套来提供语言方面的功能。

    52 条回复    2022-05-16 10:55:29 +08:00
    asuraa
        1
    asuraa  
       2022-05-13 16:55:54 +08:00
    看起来不错 简洁大方
    okampfer
        2
    okampfer  
       2022-05-13 17:15:26 +08:00
    跟 JetBrains 的那个 fleet 比怎么样?
    z13zvxc
        3
    z13zvxc  
       2022-05-13 17:15:46 +08:00   2
    感觉一款流行的编辑器最主要是丰富的插件生态
    yuhangch
        4
    yuhangch  
       2022-05-13 17:19:39 +08:00
    ,用过,没想到是 v 友写的
    Fatpandac
        5
    Fatpandac  
       2022-05-13 17:28:18 +08:00
    嗯…请问如何安装插件?
    我点开插件选项没有任何内容,在官方文档也没有看到对应的操作描述。
    xdeng
        6
    xdeng  
       2022-05-13 17:38:31 +08:00
    win 版有没有不是安装包形式的 打成压缩包解压就能用的那种
    dufu1991
        7
    dufu1991  
       2022-05-13 17:49:26 +08:00
    下载试了下,还没到能用的程度吧。期待大佬继续努力。
    FrankFang128
        8
    FrankFang128  
       2022-05-13 17:50:26 +08:00
    开了个 13w 行的 TypeScript 文件,秒开,代码高亮,非常丝滑
    dzhou121
        9
    dzhou121  
    OP
       2022-05-13 17:51:30 +08:00
    FrankFang128
        10
    FrankFang128  
       2022-05-13 18:00:43 +08:00
    说错了,是 JS 文件
    magicdawn
        11
    magicdawn  
       2022-05-13 18:03:01 +08:00
    lapce 是不是 love and peace
    我也取过类似 id
    lap + 数字
    dzhou121
        12
    dzhou121  
    OP
       2022-05-13 18:04:13 +08:00
    @magicdawn

    是 L(ightning-fast) a(nd) P(owerful) C(ode) E(ditor)
    lizhenda
        13
    lizhenda  
       2022-05-13 18:17:04 +08:00
    太厉害了啊
    coosir
        14
    coosir  
       2022-05-13 18:36:50 +08:00
    运行真的很快哦,当然比 Sublime Text 的功能还是少很多
    nicevar
        15
    nicevar  
       2022-05-13 18:51:13 +08:00
    挺好的,不过目前功能不太完善,等养一段时间再用
    dinw
        16
    dinw  
       2022-05-13 19:36:54 +08:00 via Android
    下载运行了。看起来不错。
    就是好像没法用键盘快捷键打开文件和退出 lapce. Ubuntu.

    如果可以,
    coldsnap
        17
    coldsnap  
       2022-05-13 21:00:37 +08:00
    GitHub 的 README 还是 Wgpu ,可以更新一下
    WispZhan
        18
    WispZhan  
       2022-05-13 21:17:37 +08:00 via Android
    很强,有点兴趣。
    请问插件系统有文档吗? 手机上大概翻了一下文档,没找到
    darer
        19
    darer  
       2022-05-13 21:43:32 +08:00
    这个版本比上次流畅多了
    Lighfer
        20
    Lighfer  
       2022-05-13 21:49:48 +08:00
    不能直接拖动文件打开,也不能单独打开一个文件。尝试打开一个 3M 的 JS 文件直接卡死了= =
    但是运行是真的快,秒开
    Lighfer
        21
    Lighfer  
       2022-05-13 21:50:31 +08:00
    打开 153KB 的 JS 文件也会卡死。。
    shuax
        22
    shuax  
       2022-05-13 22:35:34 +08:00
    试用了下,没用图标,不能拖动打开文件夹,写 C++几乎没用代码高亮,没有找到在哪儿显示空白。

    流畅确实流畅,未来可期。
    ipwx
        23
    ipwx  
       2022-05-13 22:39:58 +08:00   1
    不可能三角:

    运行效率、功能、开发成本。
    xiaozizayang
        24
    xiaozizayang  
       2022-05-13 23:12:29 +08:00
    支持,未来可期
    agagega
        25
    agagega  
       2022-05-13 23:22:22 +08:00
    不懂,问一句:为啥这些编辑器都要自己从渲染层开始实现,这样不是开天坑吗?是因为系统 TextView 有无法实现的底层功能,还是出于让不同平台体验一致的考虑?
    dzhou121
        26
    dzhou121  
    OP
       2022-05-14 00:05:08 +08:00
    @agagega

    主要是速度的考虑,在高分辨下,CPU 渲染 Text 已经是个瓶颈,GPU 渲染的延迟能控制在 2ms 之内
    t123yh
        27
    t123yh  
       2022-05-14 02:35:33 +08:00 via Android
    一般的编辑器,在点击某个文件后,都是鼠标松开才会有动作,而楼主的软件在鼠标按下去的瞬间就有动作了。
    dzhou121
        28
    dzhou121  
    OP
       2022-05-14 03:03:57 +08:00
    @t123yh

    这个是我缺少经验导致的,现在修了一部分了。
    bilberry
        29
    bilberry  
       2022-05-14 05:54:55 +08:00
    原来是大佬,膜拜
    xiaoz
        30
    xiaoz  
       2022-05-14 08:48:13 +08:00
    不支持中文吗?
    yuuko
        31
    yuuko  
       2022-05-14 09:02:11 +08:00 via Android
    说是支持 lsp ,然后没找到任何安装文档。。。
    xiaolanger
        32
    xiaolanger  
       2022-05-14 09:19:56 +08:00
    支持,等插件
    missdeer
        33
    missdeer  
       2022-05-14 10:16:08 +08:00
    打开一个 cpp 文件,语法高亮还很大问题
    Dkngit
        34
    Dkngit  
       2022-05-14 10:30:46 +08:00
    主题切换不是选择项,需要手动输入,但我不知道可选的主题...
    youisme
        35
    youisme  
       2022-05-14 11:26:57 +08:00
    确实很快,加油! STAR 了
    thinkwei2012
        36
    thinkwei2012  
       2022-05-14 11:34:06 +08:00
    先 star 支持下
    justin2018
        37
    justin2018  
       2022-05-14 12:15:59 +08:00
    @dzhou121

    可以支持下 brew 安装嘛
    kimown
        38
    kimown  
       2022-05-14 12:35:15 +08:00
    为啥要换到 opengl 啊
    xieren58
        39
    xieren58  
       2022-05-14 13:00:24 +08:00
    相当不错. cool.
    xdeng
        40
    xdeng  
       2022-05-14 15:06:44 +08:00
    @dzhou121 看到了 3Q
    Buges
        41
    Buges  
       2022-05-14 15:34:32 +08:00 via Android
    wgpu 应该是未来吧,移植到 web 平台也方便,为啥要换。
    dzhou121
        42
    dzhou121  
    OP
       2022-05-14 16:13:24 +08:00 via iPhone
    最开始使用 wgpu 就是因为 wgpu 是目前比较现代的 API ,但是一直有用户会反映 Lapce 会直接打开时崩溃,换了 opengl 之后基本都解决了,奔溃的原因一般是双显卡和 vulkan 驱动的一些问题。

    还有一个原因就是 wgpu 目前还不支持 dual-source blending ,等 wgpu 更稳定一些然后这个功能支持之后我们还是会切回 wgpu 的,大部分代码都是相通的。

    web 平台也是在我们的计划上的,因为底层的 Druid 都是可以支持 web 的,然后具体实现基本上就是在 canvas 里面画,跳过 dom 这一层,性能上应该还是有保证的。
    dzhou121
        43
    dzhou121  
    OP
       2022-05-14 16:18:37 +08:00 via iPhone
    @okampfer

    没有用过 fleet ,但也一直在关注 fleet ,看反映感觉也还是挺早期的。

    性能上说的话,Fleet 如果没有 aot 还是会有启动速度的问题吧。然后看 Fleet 的 blog ,他们也是用了 rope ,所以编辑大文件应该也是没有任何问题。
    dzhou121
        44
    dzhou121  
    OP
       2022-05-14 16:22:01 +08:00 via iPhone
    @justin2018

    brew 好像有人添加了
    irytu
        45
    irytu  
       2022-05-14 19:03:16 +08:00 via iPhone
    可以 fix 一下终端不能解析上下左右这类按键的 bug 吗
    dzhou121
        46
    dzhou121  
    OP
       2022-05-14 19:13:28 +08:00 via iPhone
    @irytu 当然,应该已经有一个 issue 关于这个的
    irytu
        47
    irytu  
       2022-05-14 19:15:16 +08:00 via iPhone
    bitdepth
        48
    bitdepth  
       2022-05-15 02:15:59 +08:00
    code 如果是字母系,共就 200 多字符於四字,用 opengl 可以很快,因 vector 有限
    而中文就麻,速度可能不更快
    dzhou121
        49
    dzhou121  
    OP
       2022-05-15 02:42:17 +08:00 via iPhone
    @bitdepth GPU 渲染文字一般都是 cache 到 pixelmap 上,字母和中文的速度是一样的,区别是中文的 memory 会多一些,因为字符会多很多。
    bitdepth
        50
    bitdepth  
       2022-05-15 15:51:56 +08:00
    @dzhou121 我把 OpenGL ES 的代了,了 mobile platform 。
    huohei
        51
    huohei  
       2022-05-15 16:24:37 +08:00
    windows 下没法被 mactype 服务模式覆盖
    assclb
        52
    assclb  
       2022-05-16 10:55:29 +08:00
    star 一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5214 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 09:25 PVG 17:25 LAX 02:25 JFK 05:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86