VSCode安装Modern Fortran插件及Fortls
VSCode
VSCode下载,插件,编辑等基础功能参考 VSCode基础功能
Modern Fortran插件
- 具体帮助查看 Modern Fortran - VSCode Marketplace
- 主要功能包括
- 语法突出显示
- 集成
fortls,支持GoTo, Find, Peek, Hover, Auto-completion - 静态代码检查 (
Linting),支持gfortran, ifort, nagfor - 代码格式化
findent, fprettify - 代码块
snippets - 代码调试,支持断点、多线程调试、调用堆栈、步进
- 该插件依赖
Cpp基础插件 C/C++
静态代码检查
- 指定静态代码检查编译器及其路径

- Linting 可以在撰写代码时进行编译器错误和警告检测,无需编译代码

Fortls
安装
-
Fortran language servers早期基于Language Server Protocol (LSP)项目开发 -
fortls依赖python 3.7+环境 -
在线安装
- 直接使用安装命令
pip install fortls - 安装完成后在
python数据路径的脚本C:\Users\UserName\AppData\Roaming\Python\Python39\Scripts目录下出现可执行文件fortls.exe - 将其所在路径
C:\Users\UserName\AppData\Roaming\Python\Python39\Scripts\fortls.exe添加至Modern Fortran插件设置中
- 直接使用安装命令
-
离线安装
- 下载安装包 [https://github.com/fortran-lang/fortls]
- 通过
python命令将程序安装到环境中python setup.py install - 安装成功后在
python安装路径的..\Python39_64\Scripts目录下出现可执行文件fortls.exe - 将其所在路径添加至
Modern Fortran插件设置中
-
除
vscode外,fortls还支持Atom, Sublime Text, neovim, Vim, EMACS, Visual Studio 2017, Kakoune等编辑器,参考 [https://fortls.fortran-lang.org/editor_integration.html]VS2017配置需安装扩展插件 [https://github.com/michaelkonecny/vs-fortran-ls-client]
-
指定 mod 文件输出路径

功能
- Auto-Completion
- IntelliSense功能之一,编写代码时可自动实现代码提示和补全
- 支持类型包括
变量、函数、子程序、类、接口、模块、代码块等 - VSCode IntelliCode功能可基于AI推荐最可能匹配的代码提示

- Hover
- 悬停预览,鼠标悬停在 变量/函数等 符号上时会出现提示信息
- 提示信息基于
Doxygen和FORD文档样式生成,见 注释格式

-
Rename
- 选择 变量 后按快捷键
F2可修改变量名 fortls会自动识别变量定义范围
- 选择 变量 后按快捷键
-
Symbols
- 指模块、子程序、函数、类等
- 在整个文档中搜索符号并显示在侧边栏
outline中 - 支持 查找定义
Definition实现implementation引用Reference - 支持 内联编辑器
Peek - 使用快捷键
Alt + Shift + F12查看所有引用
- Diagnostics
- 简单语法检查

注释格式
fortls支持Doxygen和FORD文档样式- 一般注释
!不会生成文档 Doxygen使用!!!>!<注释文档内容FORD使用!!!>!<!*!|注释文档内容
- 一般注释
| 类型 | 符号 | 功能 |
|---|---|---|
docmark |
!! |
注释文档内容 |
premark |
!> |
标记多行注释的第一行 |
docmark_alt |
!* |
多行文档块 |
predocmark_alt |
!| |
多行文档块 |
blkmark |
!... |
注释代码块 |
- 例
1 | !================================ SUM_TEST ========================70 |
- 子程序提示

- 函数提示

- 变量提示

- 代码折叠
- 全部折叠
Ctrl + K + 0 - 全部展开
Ctrl + K + J - 按级折叠
Ctrl + K + 1/2/3 ... - 折叠当前级
Ctrl + K + [ - 展开当前级
Ctrl + K + ]
- 全部折叠