【问题标题】:Eclipse CDT and ESQL syntax errorsEclipse CDT 和 ESQL 语法错误
【发布时间】:2011-03-22 18:21:19
【问题描述】:
我正在使用 Eclipse CDT(Helios 版本)来编辑(旧)C 应用程序的源代码,该应用程序也使用 ESQL。在这个项目中,按照惯例,包含 ESQL 代码的文件具有 .sc 扩展名(而不是默认的 .c)
所有 ESQL 部分,例如以 EXEC 开头的 SQL 关键字被标记为“语法错误”(垂直标尺、概览标尺和琥珀色波浪线)。实际编译是在具有 ESQL 编译器的不同机器 (Unix) 上执行的。在开发机上查看SQL代码的语法怎么办?
注意:我可以从 Preferences / General / Editors / Text Editors / Annotations / C/C++ Indexer Markers 隐藏通知,但这可能会隐藏可能有用的警告。
【问题讨论】:
标签:
syntax-highlighting
eclipse-cdt
syntax-checking
embedded-sql
【解决方案1】:
如果您使用 Window->Preferences->C/C++->File Types 并使用 C 或 C++ 将新文件类型定义为 *.pc 或 *.sc 等,以适合您的扩展,则语法荧光笔将尝试适当地为关键字着色并提供悬停提示。当然,EXEC SQL 类型的语句会显示为错误,但知道您正在为文件中的元素寻找一些帮助而不是全部(即不解析嵌入式 SQL),这些语句相对容易忽略。
更新(对于 vi(m) 爱好者):我发现我需要在 ~/.vim/ftdetect/pc.vim 中创建一个文件,其中包含:
au BufRead,BufNewFile *.pc set filetype=pc
我还创建了一个从 /usr/share/vim/vim73/esqlc.vim 到 pc.vim 的链接(尽管我们可以指定 *.pc set filetype=esqlc)
我安装了 vrapper,然后在重新启动 eclipse 后,我的 EXEC SQL 或其他关键字不再加下划线,尽管它们也没有着色。这可能会在未来的 vrapper 更新中发生变化。 (注意:我使用的是 Eclipse Kepler,因为它支持 vrapper)
奖励:确保将“查找和替换”的首选项设置为 CTRL-4 而不是 CTRL-F,以便在 vim 中向前翻页。
【解决方案2】:
不管你怎么想,你所拥有的并不是 C 代码。
额外的“语法”(例如,EXEC SQL 加上内部的任何内容)根本就不是 C 代码,任何处理传统 C 代码的工具必然会将其视为语法错误而拒绝。
“ESQL 处理器”(听起来像是给定 EXEC SQL 短语的大型机)可能会预处理您所想的 C 代码以提取 SQL 并用函数调用替换它;该结果可能会反馈给真正的 C 编译器。
我怀疑你可以用 CDT 做任何有用的事情。