4code是一个松散地基于Emacs的现代文本编辑器。4code的主要目标是最大限度地提高定制的能力和简易性。4coder还将性能和可移植性放在很高的优先位置。
4编码器定制用C/C++编写,并编译成可以链接到内核的.dll或.so文件。与ELISP的Emacs方法相比,这样做的缺点是定制必须重新编译,因此用户需要单独设置编译器。优点是:首先,C/C++允许更多面向性能的定制代码,其次,任何已经拥有或经常使用C/C++的用户都可以在他们的4编码器定制中利用他们自己的代码。
据我目前所知,4coder的一个特殊特性是可编程缓冲区布局,这一特性是4coder所独有的。从基本意义上讲,此功能允许自定义换行,但它也有许多创造性的用途。虚拟空白是4code中的一项功能,由可编程缓冲区布局提供支持,其中代码文件在最大限度地减少代码含义中断的位置进行换行,并以自动缩进器相同的方式自动定位换行的缩进。可编程缓冲区布局也可以作为实现代码折叠和弹性制表符的基础。
4coder的定制API包括用于渲染的钩子,以及用于绘制字符串、图元形状和渲染更复杂的缓冲区布局的函数。为了处理用户输入,UI实现了一个输入处理循环,该循环处理发送到视图上下文的所有输入。使用此架构,可以实现范围广泛的UI,然后将其包装在阻塞调用中。例如,GET_BUFFER_FROM_USER(#39;GET_BUFFER_FROM_USER)是默认自定义层代码中的一个调用,它包含向用户查询缓冲区的所有用户交互,当用户确认他们的决定时,该调用返回用户的选择。