Text editors: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (Correct misspelling)
No edit summary
(14 intermediate revisions by 5 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.


{|class=wikitable
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>
 
{|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://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. 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.
|-
|-
|[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://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 and prefix completion.
|[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://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.gnu.org/software/emacs/ Emacs]||cross-platform||[https://github.com/lokedhs/gnu-apl-mode GNU APL mode] provides shifting and prefix key input. [https://github.com/abochannek/Dyalog/tree/master/dyalog-apl-input Dyalog APL Input] provides backtick keyboard support.
|[https://www.vim.org/ Vim]||cross-platform||[https://codeberg.org/ngn/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://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. [https://github.com/baruchel/vim-notebook#configuring-gnu-apl Vim Notebook] runs an interpreter in the background to evaluating code cells.
|[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.
|}
|}
{{APL development}}
== References ==
<references/>
{{APL development}}[[Category:APL environment]][[Category:Lists]]

Revision as of 16:42, 16 June 2021

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]

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.
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.

References

  1. Optima Systems. APL Language Server. GitHub.
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