One can add support for other programming languages to Apache NetBeans using its Rich Client Platform API.
Support to a programming language can be considered complete when it provides support for:
- code completion
- jump to definition, peek definition, find all references, symbol search
- types and documentation on hover
- code formatting
- refactoring (e.g. rename, move)
- error squiggles and apply suggestions from errors
- snippets
- build tasks
There are a number of ways to add support for a programming language, each one of them having its pros and cons. Historically, these are:
Resources
NetBeans Specific Resources
Rich Client Programming: Plugging into the NetBeans Platform https://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802
Apache NetBeans Platform for Beginners https://leanpub.com/nbp4beginners
- Lahoda J. (2019), "LSP Client demo - (ba)sh language server", ASF.
- Cardona J.R. (2018), "Quick Start: Creating Language Tools In NetBeans IDE", DZone.
- NetBeans Platform Learning Trail https://netbeans.apache.org/kb/docs/platform/index.html
- Kostaras I. et al. (2020), Pro Apache NetBeans, APress, Chapter 11, "Writing a Plugin for NetBeans".
Other resources
- Clinton J.L. (2021), Build Your Own Programming Language, Packt.
- Nadeeshaan G. & Nipuna M. (2022), Language Server Protocol and Implementation: Supporting Language-Smart Editing and Programming Tools, APress.
- Parr T. (2010), Language Implementation Patterns, The Pragmatic Programmer.
- Stalla A. (2021a), "Converting from JavaCC to ANTLR", Strumenta.
- Stalla A. (2021b), "Go to Definition in the Language Server Protocol", Strumenta.
- Singh V., Basics of Compiler Design, Anniversary Edition.
- Tomassetti G., "The ANTLR Mega Tutorial", Strumenta.
- Watt D.A. & Brown D. F. (2000), Programming Language Processors in Java, Prentice Hall.