克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

lisp 语言服务

在设置中找到 @lisp 小节,并打勾启用 Atlisp > lsp :enabled 。

本扩展将会自动下载并运行 lisp 语言服务辅助功能。

代码诊断

在设置中找到 @lisp 小节,并打勾启用 Atlisp > Enable Diagnostics(默认打开)

就可以实时进行代码静态分析,如括号是否匹配,变量是否赋初始值等。

REPL

在下方的 REPL 中,可以输入lisp表达式显示求值结果。

开发环境说明

使用 vscode 进行 autolisp/visuallisp的开发,需要 AutoCAD2021以上的版本。且 ACAD 中的环境变量 LISPSYS 的值须为 1 或 2 。

建议 将 LISPSYS 的值设置为 2 ,这样编译出来的 fas 可以运行在低版本的CAD中,即向下兼容。如果 LISPSYS 的值为 1 ,则编译出来的fas 文件不向下兼容。

lsp 源文件的编码 建议采用 UTF-8 。如果采用 GB2312 / ANSI ,在调试时会因为编码问题出现括号不匹配等无法加载到CAD的问题。

@lisp函数库

@lisp 函数库是一个开源、共享、可云端加载的 autolisp 函数库。由像您一样热爱开源共享的爱好者所构筑并维护。可依据开放许可协议自由使用。

@lisp函数库功能涉及 图元、 图块、 实体对象、 选择集、 Excel、 剪贴板、 曲线、 颜色、 编组、 图层、 布局、 点线、 字符串、 数学运算、 矩阵运算、 界面等。更多内容持续迭代中.

@lisp 可运行于 AutoCAD,浩辰CAD,中望CAD 以及 BricsCAD等多种兼容 autolisp/visuallisp 的CAD平台。

@lisp 扩展

语法提示与自动补全

Autolisp:

  • autolisp基本函数 支持悬停提示与自动补全
  • vla-get-* vla-put-* vla-* 系列属性和方法 支持悬停提示与自动补全
  • vlr 系列反应器函数 支持悬停提示与自动补全
  • @lisp 函数 支持悬停提示与自动补全
  • 系统变量 支持悬停提示与自动补全
  • DXF 查询,输入dxf+数字,或 dxf+图元名,如 dxf-3 , dxf8 ,dxfcircle 可查看 dxf 组码说明,并输入组码点对。 输入 dxfcommon 可查看图元通用组码
  • 用户自定义代码片段, 样例

用户自定义代码片段样例:

(exit)  
;;; 说明:
;;; 4个分号开头的行是每个代码片段的开始,分号后为代码片段的key,
;;; 代码片段内容为当前key到下一个key之间的内容
;;; 代码片段中的$(n:*)或$n表示光标在片段中跳转位置
;;;;IFP
;;; if + progn
(if (${1:TEST}) 
  (progn 
    ;你的程序
    $2
  )
)

DCL:

  • DCL 框件与属性

大纲视图

  • 定义与引用快速定位。

Formatter

  • AutoLisp 和 DCL 代码缩进格式化

Debugger

  • 支持 AutoCAD 2021+ 和 浩辰CAD 2021+ 的调试。浩辰不支持调试控制台的通信,慎用。

简繁互转

  • 支持 lsp 和 DCL 文件的简繁互转,支持整个文件转换或所选区域转换

@lisp应用包管理

  • 在 View @lisp项目中,当文件夹下存在 pkg.lsp 文件时,这个文件夹是 @lisp应用包。这个文件夹将显示 (@) 图标。
  • 点击文件夹将打开新的 vscode 并打开点击的文件夹作为工作区
  • TODO: 右键 @lisp应用包文件夹可以编译和发布应用包(开发中)

配色与主题

  • 提供明暗两个配色主题
  • 支持 基本函数、对象属性、方法,系统变量,只读变量(作为参数的变量) ,@lisp库函数 的分色显示。

在 lsp 中调用@lisp函数

为了使您的 CAD 运行环境支持 @lisp 函数。需要在 lsp 头部 或 函数定义体的头部添加 @lisp函数库的加载代码。 示例:

(defun foobar ()
   ;; 加载@lisp函数,键入 load-@lib 直接得到下行。
   (progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""org/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))
   ;; 以下的 foobar 函数定义体中,就可以直接使用@lisp函数了,我们以 ui:confirm1 为例。
   (ui:confirm1 '("我是@lisp函数库。"  "你用或不用,"  "我都在这里。" )   "用-不用")
)

安装完成后,即可直接调用 @lisp函数库和管理安装 @lisp应用。

安装 @lisp 到 CAD

为了使您的 CAD 运行环境支持 @lisp 函数。需要在 CAD 中安装 @lisp的加载代码。

将以下代码复制到 CAD 命令行内,回车即可开始安装。

(在代码行里用鼠标连续三击全选,然后右键复制或Ctrl+C 。到CAD命令行内,右键粘贴或Ctrl+V)

经测试在 VScode 的扩展查看器中用鼠标右键无法成功复制,需按 Ctrl+C 才能成功复制。

(progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""org/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))

安装完成后,即可直接调用 @lisp函数库和管理安装 @lisp应用。

Social

社区驱动

@lisp 函数库是一个多元化的信息分享社区,它充满激情,并且每天都在成长。我们的参与者包括 lisp 程序共享爱好者、lisp开发编程人员、CAD从业人员、服务器维护工程师,以及其他很多各界人士。

开放代码

@lisp 函数库是开源代码,只要您表明使用了 @lisp 函数库并承认其贡献者的工作,您就可以使用 @lisp函数库。如果您改变或者使用这些代码,您必须按照相同的版权协议发布结果。@lisp函数库 遵循 MIT 开源协议。

法律

此网站和很多其他相关服务已由 @lisp-CAD应用云 正式代表社群运营。使用所有由 @lisp-CAD应用云 运营的服务均需符合我们的可接受使用方针和我们的隐私政策

如果您有许可协议、版权或其他法律问题,请联络@lisp-CAD应用云。

更多信息 For more information

开发初期,持续更新中。有问题请及时反馈,万分感谢。

特别感谢

  • remember
# MIT License ## Copyright (c) 2022 vitalgg Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # MIT 许可证(MIT) ## 版权 (c) 2022 vitalgg 特此免费授予任何获得本软件副本和相关文档文件(下称“软件”)的人不受限制地处置该软件的权利, 包括不受限制地使用、复制、修改、合并、发布、分发、转授许可和/或出售该软件副本,以及再授权 被配发了本软件的人如上的权利,须在下列条件下: 上述版权声明和本许可声明应包含在该软件的所有副本或实质成分中。 本软件是“如此”提供的,没有任何形式的明示或暗示的保证,包括但不限于对适销性、特定用途的 适用性和不侵权的保证。在任何情况下,作者或版权持有人都不对任何索赔、损害或其他责任负责, 无论这些追责来自合同、侵权或其它行为中,还是产生于、源于或有关于本软件以及本软件的使用或 其它处置。

简介

@lisp 的 vscode 扩展工具包,支持 autolisp/visuallisp dxf dcl 的 语法提示和自动完成。 简繁互换等。 autolisp基本函数、@lisp函数、系统变量的悬停提示与自动补全; vla-get-* vla-put-* vla-* 系列属性和方法 支持悬停提示与自动补全; DXF 查询。 展开 收起
JavaScript 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化