Text editors: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(Add emacs Dyalog APL mode)
m (Kakoune)
Tags: Mobile edit Mobile web edit
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
With APL code in text files (rather that the traditional [[workspace]]s) many source code tools, including editors, can easily be used with APL. This article lists some text editors that are especially well-equipped to deal with APL.
With APL code in text files (rather that the traditional [[workspace]]s) many source code tools, including editors, can easily be used with APL. This article lists some text editors that are especially well-equipped to deal with APL.
Besides for the listed editors, there is a Language Server available for all editors that use Microsoft's Language Server Protocol (LSP).<ref>Optima Systems. [https://github.com/OptimaSystems/apl-language-server APL Language Server]. GitHub.</ref>
In addition, [[Dyalog]]'s RIDE interface allows using most any external editor instead of its internal editor by setting the <syntaxhighlight lang=shell inline>RIDE_EDITOR</syntaxhighlight> configuration parameter.<ref>[[Dyalog Ltd.]] RIDE User Guide: [https://docs.dyalog.com/latest/RIDE%20User%20Guide.pdf#page=58 Configuration Parameters]. Retrieved 2022-01-11.</ref>


{|class="wikitable sortable"
{|class="wikitable sortable"
!Name !! Platform !! Features
!Name !! Platform !! Features
|-
|[https://atom.io Atom]||Windows, Linux, MacOS||[https://atom.io/packages/language-apl language-apl] Provides syntax highlighting, indentation support.
|-
|-
|[https://play.google.com/store/apps/details?id=com.athoraya.aplkeys APL Keys]||Android||A simple notepad that supports APL characters.
|[https://play.google.com/store/apps/details?id=com.athoraya.aplkeys APL Keys]||Android||A simple notepad that supports APL characters.
Line 8: Line 14:
|[https://www.dyalog.com/download-zone.htm Dyalog Editor]||Windows||Basically same editor as the one built into the IDE, providing syntax colouring, auto-formatting, language help, comment handling, and tree-view.
|[https://www.dyalog.com/download-zone.htm Dyalog Editor]||Windows||Basically same editor as the one built into the IDE, providing syntax colouring, auto-formatting, language help, comment handling, and tree-view.
|-
|-
|[https://www.gnu.org/software/emacs/ Emacs]||cross-platform||[https://github.com/lokedhs/gnu-apl-mode GNU APL mode] provides shifting and prefix key input.<br>[https://github.com/harsman/dyalog-mode Dyalog APL mode] integrates with the Dyalog IDE so you can use Emacs instead of the built in editor, supports syntax highlighting (including correct highlighting of localized variables), indentation and convenience functions like toggling localization of variables.<br>[https://github.com/abochannek/Dyalog/tree/master/dyalog-apl-input Dyalog APL Input] provides backtick keyboard support.
|[https://www.gnu.org/software/emacs/ Emacs]||cross-platform||[https://github.com/lokedhs/gnu-apl-mode GNU APL mode] provides shifting and prefix key input. Integrates with GNU APL to perform completion, function editing, etc.<br>[https://github.com/harsman/dyalog-mode Dyalog APL mode] integrates with the Dyalog IDE so you can use Emacs instead of the built in editor, supports syntax highlighting (including correct highlighting of localized variables), indentation and convenience functions like toggling localization of variables.<br>[https://github.com/abochannek/Dyalog/tree/master/dyalog-apl-input Dyalog APL Input] provides backtick keyboard support.<br>The [https://j-minster.github.io/emacs_APL_tutorial.html emacs APL tutorial] provides easy-to-follow instructions on how to get set up using GNU APL or Dyalog APL.
|-
| [https://kakoune.org Kakoune]||Linux, MacOS, and Cygwin||Syntax highlighting.
|-
|[https://marktext.app/ Mark Text]||Windows, Linux, macOS||Syntax highlighting for code blocks.
|-
|-
|[https://jupyter.org/ Jupyter Notebook]||Windows, Linux, macOS, AIX||[https://github.com/Dyalog/dyalog-jupyter-kernel Dyalog Jupyter Kernel] provides syntax colouring and  HTML/SVG rendering.
|[https://jupyter.org/ Jupyter Notebook]||Windows, Linux, macOS, AIX||[https://github.com/Dyalog/dyalog-jupyter-kernel Dyalog Jupyter Kernel] provides syntax colouring and  HTML/SVG rendering.
|-
|[https://scintilla.org/ Scintilla]|||Windows, Linux, macOS||[https://orbitalquark.github.io/scintillua/ Scintillua] provides syntax colouring
|-
|-
|[https://www.sublimetext.com/ Sublime Text]||Windows, Linux, macOS||[https://packagecontrol.io/packages/APL%20Highlighting APL Highlighting] package enables syntax highlighting for APL, including Dyalog and APL2 dialects.
|[https://www.sublimetext.com/ Sublime Text]||Windows, Linux, macOS||[https://packagecontrol.io/packages/APL%20Highlighting APL Highlighting] package enables syntax highlighting for APL, including Dyalog and APL2 dialects.
Line 16: Line 28:
|[https://typora.io/ Typora]||Windows, Linux, macOS||Syntax highlighting for code blocks.
|[https://typora.io/ Typora]||Windows, Linux, macOS||Syntax highlighting for code blocks.
|-
|-
|[https://www.vim.org/ Vim]||cross-platform||[https://gitlab.com/n9n/vim-apl VIM APL] provides rainbow curly braces with a matching colour for <code lang=apl inline>⍺</code>, <code lang=apl inline>⍵</code>, <code lang=apl inline>∇</code>, and <code lang=apl inline>:</code> in dfns, prefix key input, and completion for [[quad name]]s, [[keyword]]s, and [[system command]]s.<br>[https://github.com/baruchel/vim-notebook#configuring-gnu-apl Vim Notebook] runs an interpreter in the background to evaluating code cells.
|[https://www.vim.org/ Vim]||cross-platform||[https://github.com/PyGamer0/vim-apl vim-apl] provides rainbow curly braces with a matching colour for <code lang=apl inline>⍺</code>, <code lang=apl inline>⍵</code>, <code lang=apl inline>∇</code>, and <code lang=apl inline>:</code> in dfns, prefix key input, and completion for [[quad name]]s, [[keyword]]s, and [[system command]]s.<br>[https://github.com/baruchel/vim-notebook#configuring-gnu-apl Vim Notebook] runs an interpreter in the background to evaluating code cells.
|-
|[https://github.com/martanne/vis Vis]|||Linux, macOS||[https://orbitalquark.github.io/scintillua/ Scintillua] provides syntax colouring
|-
|-
|[https://code.visualstudio.com/ Visual Studio Code]||Windows, Linux, macOS||[https://marketplace.visualstudio.com/items?itemName=OptimaSystems.vscode-apl-language APL Language] extension provides syntax highlighting and snippets. [https://marketplace.visualstudio.com/items?itemName=OptimaSystems.vscode-apl-language-client APL Language Server Client] provides tool tips on primitives, prefix (e.g. backtick) completion.
|[https://code.visualstudio.com/ Visual Studio Code]||Windows, Linux, macOS||[https://marketplace.visualstudio.com/items?itemName=OptimaSystems.vscode-apl-language APL Language] extension provides syntax highlighting and snippets.<br>[https://marketplace.visualstudio.com/items?itemName=OptimaSystems.vscode-apl-language-client APL Language Server Client] provides tool tips on primitives, prefix (e.g. backtick) completion.<br>[https://github.com/tiamatica/vscode-apl-debug APL Debug] is a debug adapter
|}
|}
{{APL development}}[[Category:APL environment]]
== See also ==
* [[Fonts]] — you might need to select an appropriate font before using a new editor
== References ==
<references/>
{{APL development}}[[Category:APL environment]][[Category:Lists]]

Latest revision as of 18:00, 28 January 2023

With APL code in text files (rather that the traditional workspaces) many source code tools, including editors, can easily be used with APL. This article lists some text editors that are especially well-equipped to deal with APL.

Besides for the listed editors, there is a Language Server available for all editors that use Microsoft's Language Server Protocol (LSP).[1]

In addition, Dyalog's RIDE interface allows using most any external editor instead of its internal editor by setting the RIDE_EDITOR configuration parameter.[2]

Name Platform Features
Atom Windows, Linux, MacOS language-apl Provides syntax highlighting, indentation support.
APL Keys Android A simple notepad that supports APL characters.
Dyalog Editor Windows Basically same editor as the one built into the IDE, providing syntax colouring, auto-formatting, language help, comment handling, and tree-view.
Emacs cross-platform GNU APL mode provides shifting and prefix key input. Integrates with GNU APL to perform completion, function editing, etc.
Dyalog APL mode integrates with the Dyalog IDE so you can use Emacs instead of the built in editor, supports syntax highlighting (including correct highlighting of localized variables), indentation and convenience functions like toggling localization of variables.
Dyalog APL Input provides backtick keyboard support.
The emacs APL tutorial provides easy-to-follow instructions on how to get set up using GNU APL or Dyalog APL.
Kakoune Linux, MacOS, and Cygwin Syntax highlighting.
Mark Text Windows, Linux, macOS Syntax highlighting for code blocks.
Jupyter Notebook Windows, Linux, macOS, AIX Dyalog Jupyter Kernel provides syntax colouring and HTML/SVG rendering.
Scintilla Windows, Linux, macOS Scintillua provides syntax colouring
Sublime Text Windows, Linux, macOS APL Highlighting package enables syntax highlighting for APL, including Dyalog and APL2 dialects.
Typora Windows, Linux, macOS Syntax highlighting for code blocks.
Vim cross-platform vim-apl provides rainbow curly braces with a matching colour for , , , and : in dfns, prefix key input, and completion for quad names, keywords, and system commands.
Vim Notebook runs an interpreter in the background to evaluating code cells.
Vis Linux, macOS Scintillua provides syntax colouring
Visual Studio Code Windows, Linux, macOS APL Language extension provides syntax highlighting and snippets.
APL Language Server Client provides tool tips on primitives, prefix (e.g. backtick) completion.
APL Debug is a debug adapter

See also

  • Fonts — you might need to select an appropriate font before using a new editor

References

  1. Optima Systems. APL Language Server. GitHub.
  2. Dyalog Ltd. RIDE User Guide: Configuration Parameters. Retrieved 2022-01-11.
APL development [edit]
Interface SessionTyping glyphs (on Linux) ∙ FontsText editors
Publications IntroductionsLearning resourcesSimple examplesAdvanced examplesMnemonicsISO 8485:1989ISO/IEC 13751:2001A Dictionary of APLCase studiesDocumentation suitesBooksPapersVideosAPL Quote QuadVector journalTerminology (Chinese, German) ∙ Neural networksError trapping with Dyalog APL (in forms)
Sharing code Backwards compatibilityAPLcartAPLTreeAPL-CationDfns workspaceTatinCider
Implementation ResourcesOpen-sourceMagic functionPerformanceAPL hardware
Developers Timeline of corporationsAPL2000DyalogIBMIPSASTSC