|
1 | | -# DynaSense (LS-DYNA Studio) |
| 1 | +# DynaSense (LS-DYNA Studio) |
2 | 2 |
|
3 | 3 | <div align="center"> |
4 | 4 | <img src="images/ls.svg" width="120" height="120" alt="LS-DYNA Icon"> |
5 | | - <h3>VS Code 平台最强大的 LS-DYNA 工程模型编辑器</h3> |
6 | | - <p>为真正的 CAE 工程师打造:海量智能补全、大文件极速预览、拯救强迫症的自动对齐。</p> |
| 5 | + <h3>A Feature-Rich LS-DYNA Editor for VS Code</h3> |
| 6 | + <p>Built for CAE engineers: intelligent autocomplete, large file preview, and auto-alignment.</p> |
7 | 7 |
|
8 | 8 | [](https://marketplace.visualstudio.com/items?itemName=hqyyqh.dynasense) |
9 | 9 | [](https://opensource.org/licenses/GPL-3.0) |
10 | 10 |
|
11 | 11 | </div> |
12 | 12 |
|
13 | | -[English Version](README_en.md) | [中文说明](README.md) |
| 13 | +[English Version](README.md) | [中文说明](README_zh.md) |
14 | 14 |
|
15 | 15 | --- |
16 | 16 |
|
17 | | -## 🌟 核心特性 (Core Features) |
| 17 | +## 🌟 Core Features |
18 | 18 |
|
19 | | -### 1. 🧠 极致的智能感知与补全 (Intelligent Autocomplete) |
20 | | -* **全量关键字覆盖**:数据深度提取自官方 [ansys/pydyna](https://github.com/ansys/pydyna) 数据库,支持超过 **3100+** 个 LS-DYNA 关键字的语法树解析。 |
21 | | -* **智能字段补全**:不仅能补全关键字,还能在输入时智能弹出带有详尽注释(长度、类型、默认值)的字段 Snippets 模板。 |
| 19 | +<details open> |
| 20 | +<summary><b>📖 LS-DYNA Manual Integration & Interactive Hover</b> (Click to expand)</summary> |
| 21 | +<br> |
22 | 22 |
|
23 | | -### 2. ⚡️ 大文件极速透视 (O(1) Hover Preview) |
24 | | -* 告别打开几百兆 `.k` 文件时的卡顿! |
25 | | -* 将鼠标悬停在 `*INCLUDE` 或 `*INCLUDE_PATH` 后的文件路径上,即可**瞬间预览**包含文件的头部内容。 |
26 | | -* 内部采用 O(1) 异步文件块流式读取技术,无论被包含的文件有几 GB,都能在毫秒级弹出预览。 |
27 | | -* *可在设置中自定义预览行数。* |
| 23 | +- **Interactive Hover Cards:** Keyword and field hover tooltips provide direct links to the corresponding page in the LS-DYNA PDF manual. |
| 24 | +- **Fast Search:** Powered by a custom binary PDF bookmark engine for fast retrieval. |
| 25 | +- **Field-level Tooltips:** Hover cards explain the keyword and detail the type, length, and default values of each specific field. |
28 | 26 |
|
29 | | -### 3. 🎨 强迫症福音:自动排版对齐 (Code Formatting) |
30 | | -* 一键将错乱的字段数据格式化为极其工整的 **10 列 / 8 列** 经典 LS-DYNA 标准对齐格式。 |
31 | | -* 支持快捷键触发(`Ctrl+Shift+F` 或右键格式化),更支持 **保存时自动格式化光标所在行**。 |
32 | | -* `*INCLUDE` 路径支持自动扩展至 512 列以防路径截断。 |
| 27 | + |
33 | 28 |
|
34 | | -### 4. 💡 智能交互代码透镜 (CodeLens) |
35 | | -* 在代码上方动态渲染可点击的动作按钮(CodeLens)。 |
36 | | -* 一键快速切换关键字的可选卡片(例如:一键为 `*PART` 附加 `_TITLE` 后缀)。 |
37 | | -* 一键精准格式化当前所属的整个关键字块(Block)。 |
| 29 | +</details> |
38 | 30 |
|
39 | | -### 5. 🗺️ 全局项目导航图 (Project Outline) |
40 | | -* **包含树解析 (Include Tree)**:在侧边栏清晰呈现主模型与所有子 Include 文件的嵌套层级树。 |
41 | | -* **关键字大纲 (Keyword Index)**:提供当前文件中所有关键字的概览,点击即可极速跳转。 |
| 31 | +<details open> |
| 32 | +<summary><b>⚡ Autocomplete & Formatting</b> (Click to expand)</summary> |
| 33 | +<br> |
42 | 34 |
|
43 | | -### 6. 🚀 沉浸式快捷编辑 |
44 | | -* **智能 Tab 跳转**:在按标准的 10 字符宽度分布的字段(Cell)间,使用 `Tab` 和 `Shift+Tab` 进行完美跳跃编辑。 |
45 | | -* **关键字穿梭**:使用 `Ctrl+Alt+Up` / `Ctrl+Alt+Down` 在成百上千行的文本中直接跳转到上一个/下一个关键字开头。 |
| 35 | +- **Keyword Coverage:** Data is extracted from the official [ansys/pydyna](https://github.com/ansys/pydyna) database, supporting over **3100+** keywords. |
| 36 | +- **Snippets:** Offers formatted snippet templates for rapid keyword insertion. |
| 37 | +- **Path Autocomplete:** Type `/` to autocomplete included files in the same directory, filtering invalid paths. |
| 38 | +- **Auto Comment Generation:** Use `$` or `#` to trigger automatic generation of field comments, right-aligned with no trailing spaces. |
| 39 | +- **Tab Navigation:** Press `Tab` to jump between fields distributed across 10-character widths, with auto line wrapping. |
| 40 | +- **Formatting:** Format to align data into the **10-column / 8-column** layout. Supports **auto-format on save**. |
| 41 | + |
| 42 | +> **Feature Demos:** |
| 43 | +> |
| 44 | +> | 🔑 Keyword Completion | 🛤️ Path Completion | |
| 45 | +> | :---: | :---: | |
| 46 | +> |  |  | |
| 47 | +> | **📝 Quick Comment** | **📐 Tab Jumping** | |
| 48 | +> |  |  | |
| 49 | +> | **✨ Formatting** | | |
| 50 | +> |  | | |
| 51 | +
|
| 52 | +</details> |
| 53 | + |
| 54 | +<details open> |
| 55 | +<summary><b>📂 Include Management & Fast Preview</b> (Click to expand)</summary> |
| 56 | +<br> |
| 57 | + |
| 58 | +- **Status Highlight & Relative Paths:** `*INCLUDE` paths are highlighted in blue (resolved) or orange (missing). Resolves relative paths like `*INCLUDE_PATH` and `../`. |
| 59 | +- **Large File Preview:** Hover over include paths to utilize an internal O(1) async streaming reader to show header previews. |
| 60 | +- **Project Include Tree:** Presents the nested **hierarchy reference tree** of the main model and all sub-included files in the sidebar. |
| 61 | +- **Keyword Index Outline:** The sidebar provides an overview tree of all **used keywords** in the current file, with jump-to-definition. |
| 62 | + |
| 63 | +| Include Tree & Index | Hover Preview | |
| 64 | +| :---: | :---: | |
| 65 | +|  |  | |
| 66 | + |
| 67 | +</details> |
| 68 | + |
| 69 | +<details open> |
| 70 | +<summary><b>🛠️ Navigation & Parameter (*PARAMETER) Tracking</b> (Click to expand)</summary> |
| 71 | +<br> |
| 72 | + |
| 73 | +- **Interactive CodeLens:** |
| 74 | + - Renders **"N references"** CodeLens above parameter definitions; click to open the reference list. |
| 75 | + - Offers formatting and option swapping for keywords (e.g., appending `_TITLE` to `*PART`). |
| 76 | +- **Parameter Resolution:** Hovering over `¶meter` variables parses their evaluated values. |
| 77 | +- **Global Rename:** Rename parameters globally across the document using the F2 key. |
| 78 | +- **Editing Shuttle:** Use `Ctrl+Alt+Up` / `Ctrl+Alt+Down` to warp to the previous/next keyword start; supports syntax highlighting and code folding for `.k`, `.key`, `.dyna`, `.cfile` formats. |
| 79 | + |
| 80 | + |
| 81 | + |
| 82 | +</details> |
46 | 83 |
|
47 | 84 | --- |
48 | 85 |
|
49 | | -## ⚙️ 扩展配置 (Extension Settings) |
| 86 | +## ⚙️ Extension Settings |
50 | 87 |
|
51 | | -在 VS Code 的 `settings.json` 中,你可以自定义以下独占配置: |
| 88 | +In VS Code's `settings.json`, you can customize the following exclusive configurations: |
52 | 89 |
|
53 | | -| 设置项 | 默认值 | 描述 | |
| 90 | +| Setting | Default | Description | |
54 | 91 | | :--- | :--- | :--- | |
55 | | -| `lsdyna.additionalExtensions` | `[".txt"]` | 动态添加你想让插件接管并高亮的自定义文件后缀名。 | |
56 | | -| `lsdyna.hover.previewMaxLines` | `20` | 控制鼠标悬停在包含文件上时,预览窗口所显示的行数。 | |
57 | | -| `lsdyna.format.enableOnSave` | `true` | 是否开启保存 (Ctrl+S) 时自动格式化当前光标所在行的数据格式。 | |
58 | | -| `lsdyna.index.enableIncludeTree` | `true` | 是否在侧边栏启用 `*INCLUDE` 嵌套层级树视图。 | |
| 92 | +| `lsdyna.additionalExtensions` | `[".txt"]` | Dynamically add custom file extensions you want the extension to highlight. | |
| 93 | +| `lsdyna.hover.previewMaxLines` | `20` | Controls the maximum number of lines displayed when hovering over an included file. | |
| 94 | +| `lsdyna.format.enableOnSave` | `true` | Enables auto-formatting of data fields on the line where the cursor is located when saving (Ctrl+S). | |
| 95 | +| `lsdyna.index.enableIncludeTree` | `true` | Enables the `*INCLUDE` nested hierarchy tree view in the sidebar. | |
59 | 96 |
|
60 | 97 | > [!TIP] |
61 | | -> **文件关联与图标** |
62 | | -> 本插件默认接管 `.k`, `.key`, `.dyna`, `.asc` 等文件。如果你希望你的自定义文件不仅能被高亮,还能在文件管理器中**显示 LS-DYNA 的专属蓝色工程图标**,请在全局设置中使用: |
| 98 | +> **File Associations & Icons** |
| 99 | +> By default, this extension targets `.k`, `.key`, `.dyna`, `.asc` files. If you want your custom files to not only be highlighted but also display the **exclusive blue engineering icon** in the file explorer, use the global setting: |
63 | 100 | > `"files.associations": { "*.my_ext": "lsdyna" }` |
64 | 101 |
|
65 | 102 | --- |
66 | 103 |
|
67 | | -## 鸣谢与贡献者 (Credits & Contributors) |
| 104 | +## Credits & Contributors |
68 | 105 |
|
69 | | -本项目是由 [hqyyqh](https://github.com/hqyyqh) 维护的深度定制重构版本。 |
70 | | -特别鸣谢以下极其重要的上游开源项目及原作者,没有他们的杰出工作就没有本项目的诞生: |
| 106 | +This project is a deeply customized and refactored version maintained by [hqyyqh](https://github.com/hqyyqh). |
| 107 | +Special thanks to the following upstream open-source projects and original authors, without whose outstanding work this project would not exist: |
71 | 108 |
|
72 | | -- **上游原项目:** 本项目 Fork 自 [osullivryan/vscode-lsdyna](https://github.com/osullivryan/vscode-lsdyna)。向原作者及其代码库的核心贡献者致敬: |
73 | | - - [osullivryan](https://github.com/osullivryan) (原项目发起人与核心作者) |
74 | | - - [DCHartlen](https://github.com/DCHartlen) (核心贡献者) |
75 | | - - [maxiiss](https://github.com/maxiiss) (核心贡献者) |
76 | | - - [yshl](https://github.com/yshl) (贡献者) |
77 | | -- **数据库来源:** 插件强大的关键字与字段智能补全数据,大量参考并提取自官方开源项目 [ansys/pydyna](https://github.com/ansys/pydyna)。 |
78 | | -- **其他参考:** [vim-lsdyna](https://github.com/gradzikb/vim-lsdyna) 等生态优秀作品。 |
| 109 | +- **Upstream Project:** This project is forked from [osullivryan/vscode-lsdyna](https://github.com/osullivryan/vscode-lsdyna). Huge thanks to the original author and core contributors: |
| 110 | + - [osullivryan](https://github.com/osullivryan) (Original Author & Founder) |
| 111 | + - [DCHartlen](https://github.com/DCHartlen) (Core Contributor) |
| 112 | + - [maxiiss](https://github.com/maxiiss) (Core Contributor) |
| 113 | + - [yshl](https://github.com/yshl) (Contributor) |
| 114 | +- **Database Source:** The powerful keyword and field intelligent autocomplete data heavily references and extracts from the official open-source project [ansys/pydyna](https://github.com/ansys/pydyna). |
| 115 | +- **Other References:** Excellent ecosystem works like [vim-lsdyna](https://github.com/gradzikb/vim-lsdyna). |
79 | 116 |
|
80 | | -感谢所有对 LS-DYNA 编辑器生态做出贡献的开发者! |
| 117 | +Thank you to all developers who have contributed to the LS-DYNA editor ecosystem! |
81 | 118 |
|
0 commit comments