我正在寻找一个编辑器/ IDE,它可以提供编码时很好的功能(例如:能够点击到函数定义),而不是专门为其构建的语言。通过这些,我考虑到了为特定目的而设计的语言,并且通常仅由小社区使用。换句话说,那些在大多数软件中都没有本机支持的那些。
我意识到这需要相当多的仙尘,但我不认为这超出了可能的范围。基本上,编辑器必须足够聪明才能识别许多声明性语言共有的常用语法和语义。这很可能需要一些配置。
这样的事情存在吗?如果没有,您认为在创建它时会遇到哪些挑战?
答案 0 :(得分:7)
如果您只需要跳转到特定函数或类的定义的功能,那么VIM(以及许多其他编辑器,如Emacs,Epsilon和JOE)可以从ctags
文件中读取跳转位置。您只需为自定义语言编写ctags
文件生成器。
对于可编程编辑器(如VIM,Emacs,Epsilon,Eclipse和gedit),您可以为自定义语言编写自己的插件,但它可能很快变得耗费时间并且成为维护的噩梦,因为新版本的编辑器倾向于更改插件界面。
请注意,添加对语法突出显示的支持通常比为符号查找添加类似ctags的支持要容易得多。更高级的功能,如重构和上下文相关的符号完成(如现代IDE中的Ctrl-Space和Tab)更难实现。
答案 1 :(得分:3)
GNU Emacs在这方面有很好的基础设施。直到最近,Haskell还是一种主要由研究人员使用的相对未知的语言。然而,在几千行的Emacs Lisp中,我们有
关于Emacs的好处是(a)有许多模型要遵循,(b)你可以逐步建立环境,从那些对你最重要的方面开始。
答案 2 :(得分:2)
我很惊讶没有人提到过Notepad ++: http://notepad-plus-plus.org/
它为众多语言提供语法支持,并为用户提供添加新语言的功能,以及一个活跃的社区,可添加许多未包含在内的语言。
答案 3 :(得分:1)
大多数优秀的IDE都是语言无关的,并且支持几种(如果不是很多)编程语言。如果你在谈论DSL,那么eclipse有一个seems pretty awsome - Xtext
的解决方案答案 4 :(得分:1)
EditPadPro附带了一组工具,可让您基于非常强大的正则表达式语法构建自己的syntax highlighting,code folding and file navigation方案。因此,如果您的语言不是已经开箱即用的许多语言或can be downloaded off the website,那么您可以轻松地自己动手(并与社区分享)。
答案 5 :(得分:0)
Visual Studio旨在实现此目的,但它需要语言添加显式支持。例如,Delphi Prism将安装到Visual Studio中,并提供完整的语言支持。
然而,这远远超出“配置”,需要相当多的自定义开发才能支持。
答案 6 :(得分:0)
SciTE and Scintilla为不同语言提供通用编辑器/平台。该库包含几个可与许多编程语言一起使用的解析器,您可以将其中一个解析为您自己的语言,以添加格式和语法突出显示。
它们不提供点击等高级功能,但您可以在库顶部构建它。
Visual Studio和Eclipse也支持语言插件。
答案 7 :(得分:0)