Ft_ada
Nvim :help
页面,生成 于 源代码 使用 tree-sitter-vimdoc 解析器。
ADA 文件类型插件参考手册~
ADA
此模式专为 2005 版 Ada(“Ada 2005”)而设计,其中包括对面向对象编程、受保护类型等的支持。它也处理为原始 Ada 语言(“Ada83”、“Ada87”、“Ada95”)编写的代码,尽管使用 Ada 2005 专用关键字的代码将被错误地着色(无论如何应该修复此类代码)。有关 Ada 的更多信息,请参阅
http://www.adapower.com。
Ada 模式处理许多情况很干净。
例如,它知道“-5”中的“-”是数字,但“A-5”中的相同字符是运算符。通常,引用另一个编译单元的“with”或“use”子句以与 C 的“#include”相同的颜色着色。如果您有“Conditional”或“Repeat”组以不同的颜色着色,那么“end if”和“end loop”将作为这些各自组的一部分着色。
您可以使用 vim 的“highlight”命令将这些设置成不同的颜色(例如,要更改循环的显示方式,请输入命令“:hi Repeat”,后跟颜色规范;在简单的终端上,颜色规范 ctermfg=White 通常显示良好)。
要启用它们,请为该选项分配一个值。例如,要打开一个
let g:ada_standard_types = 1
要禁用它们,请使用“:unlet”。例如
unlet g:ada_standard_types
您只需使用“:”并在命令行中键入这些内容来临时设置这些内容,然后加载 Ada 文件。您可以通过将“let”命令(不带冒号)添加到您的
init.vim 文件中来使这些选项设置永久生效。
Ada 插件提供了对以下内容的支持
该插件仅在打开 Ada 文件时激活 Ada 模式的功能,并将 Ada 相关条目添加到主菜单和弹出菜单。
GNAT XREF 使用编译器内部信息 (ali-files) 来生成标签文件。这具有 100% 正确的优势,并可以选择深度嵌套分析。但是,代码必须编译,生成器相当慢,并且创建的标签文件仅包含每个条目的基本 Ctags 信息 - 不足以满足一些更高级的 Vim 代码浏览器插件。
注意:“gnat xref -v”使用起来非常棘手,因为它几乎没有诊断输出 - 如果没有打印任何内容,通常是参数错误。以下是一些重要提示
1) 您需要先编译代码,并使用“-aO”选项指向您的 .ali 文件。2) “gnat xref -v ../Include/adacl.ads”不起作用 - 请改用“gnat xref -v -aI../Include adacl.ads”。3) gnat xref -v -aI../Include *.ad?
不起作用 - 请使用“cd ../Include”,然后 gnat xref -v *.ad?
4) 项目管理器支持完全中断 - 不要尝试“gnat xref -Padacl.gpr”。5) 当标签文件已排序时,Vim 会更快 - 请使用“sort --unique --ignore-case --output=tags tags”。6) 请记住将“!_TAG_FILE_SORTED 2 %sort ui”作为第一行插入以标记已排序的文件。
Universal/Exuberant Ctags 使用他们自己的多语言代码解析器。解析器非常快,会产生大量额外信息,并且可以在当前无法编译的文件上运行。
还有许多其他使用 Universal/Exuberant Ctags 的 Vim 工具。Universal Ctags 优先于 Exuberant Ctags,Exuberant Ctags 已经不再开发。
Universal/Exuberant Ctags 的 Ada 解析器相当新 - 不要期待完全支持。
Ada 模式支持多个 Ada 编译器,并在打开 Ada 源代码时自动加载在
g:ada_default_compiler 中设置的编译器。提供的编译器插件分为实际的编译器插件和一组支持函数和变量。这使得可以轻松开发专门的编译器插件,这些插件可以针对您的开发环境进行微调。
GNAT 是唯一可用的免费 (啤酒和言论) Ada 编译器。有几个版本可用,它们在使用的许可条款上有所不同。
GNAT 编译器插件将在按下
<F7>
时执行编译,然后立即显示结果。您可以通过设置来设置要使用的项目文件
call g:gnat.Set_Project_File ('my_project.gpr')
设置项目文件还会创建一个 Vim 会话 (
views-sessions),因此 - 与 GPS 一样 - 打开的文件、窗口位置等将为所有项目分别保存。
g:gnat.Set_Project_File() g:gnat.Set_Project_File([
{file}
]) 设置 gnat 项目文件并加载相关会话。打开的项目将关闭并写入会话。如果在不带文件名的情况下调用,则文件选择器将打开以选择项目文件。如果使用空字符串调用,则项目和相关会话将关闭。
Dec Ada (也称为 - 按时间顺序 - VAX Ada、Dec Ada、Compaq Ada 和 HP Ada) 是一个相当过时的 Ada 83 编译器。支持是基本的:<F7>
将编译当前单元。
Dec Ada 编译器需要传递包名而不是文件名作为参数。编译器插件支持通常的文件名约定,将文件转换为单元名。允许使用“-”和“__”作为分隔符。
g:ada_rainbow_color g:ada_rainbow_color bool (存在时为 true) 对“('”和“')”使用彩虹色。为此,您需要 rainbow_parenthesis。
g:ada_folding g:ada_folding set ("sigpft") 对 Ada 源代码使用折叠。's': 在加载时激活语法折叠 'p': 折叠包 'f': 折叠函数和过程 't': 折叠类型 'c': 折叠条件 'g': 在加载时激活 gnat 漂亮打印折叠 'i': 独立的“is”与上面的行一起折叠 'b': 独立的“begin”与上面的行一起折叠 'p': 独立的“private”与上面的行一起折叠 'x': 独立的“exception”与上面的行一起折叠 'i': 在加载时激活缩进折叠
注意:语法折叠处于早期(不可用)阶段,建议使用缩进或 gnat 漂亮打印折叠。
要使 gnat 漂亮打印折叠正常工作,建议使用以下设置: -cl3 -M79 -c2 -c3 -c4 -A1 -A2 -A3 -A4 -A5
要使缩进折叠正常工作,建议使用以下设置: shiftwidth=3 softtabstop=3
g:ada_abbrev g:ada_abbrev bool (存在时为 true) 添加一些缩写。此功能或多或少地被各种完成方法所取代。
g:ada_withuse_ordinary g:ada_withuse_ordinary bool (存在时为 true) 将“with”和“use”显示为普通关键字(当用于引用其他编译单元时,它们通常会以特殊的方式突出显示)。
g:ada_extended_tagging g:ada_extended_tagging enum ("jump", "list") 使用扩展标记,有两个选项可用 "jump": 使用 tjump 跳转。 "list": 添加标签快速修复列表。 正常标记不支持函数或运算符重载,因为这些功能在 C 中不可用,而标记最初是为 C 开发的。
"exists" 类型是一个布尔值,当变量已定义时被视为 true,而当变量未定义时被视为 false。 设置变量的值无关紧要。
g:ada#Comment string 用于搜索 Ada 注释的正则表达式。
ada#Word([
{line}
,
{col}
])
ada#Word()返回光标下(或在给定行/列)的 Ada 实体的完整名称,必要时剥离空格/换行符。
ada#List_Tag([
{line}
,
{col}
])
ada#Listtags()在快速修复窗口中列出光标下(或在给定行/列)的 Ada 实体的所有出现位置。
ada#Jump_Tag (
{ident}
,
{mode}
)
ada#Jump_Tag()在标签跳转列表中列出光标下(或在给定行/列)的 Ada 实体的所有出现位置。 模式可以是 "tjump" 或 "stjump"。
ada#Create_Tags (
{option}
)
ada#Create_Tags()使用 Ctags 创建标签文件。 选项可以是 "file"(表示当前文件)、"dir"(表示当前文件的目录)或文件名。
gnat#Insert_Tags_Header()
将标签文件头信息(!_TAG_)添加到当前文件中,这些信息在 GNAT XREF 输出中缺失。
您可以选择安装以下额外插件。 它们与 Ada 配合良好,并增强了 Ada 模式的功能
vim: textwidth=78 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab