Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Get inspired by seeing how others use Handly in real products and projects.
If you are an adopter, tell the world about your usage. Include screen captures if you would like. Link to commercial sites and products as appropriate, but please keep this page free of overly commercial messages.
What is Codasip Studio
Codasip Studio is an ASIP design tool with its own IDE based on Eclipse. From a description of a processor written in CodAL (Codasip’s processor description language), users are able to generate the design implementation, verification environment, virtual system prototype, and complete redistributable programming environment. This fully-automated approach is much more effective than traditional design techniques.
Codasip Studio and Handly
From an architectural point of view, our handle-based high-level model serves a very important role as it is used by various components in the IDE - from project management through build system to configuration editors and others.
The main incentive for using Handly in Codasip Studio was that albeit being a very important part of almost every Eclipse IDE, handle-based models are not very discussed and documented topic. Handly changes that and brings a carefully designed implementation of this architectural pattern. In the end the integration of Handly was quite straightforward, thanks to a good documentation, well-designed API with almost no restrictions on a client side and an outstanding support from a project leader.
Codasip Studio is successfully used by major companies in the technology and consumer electronics field like AMD® or MobilEye®, which proves Handly to be already mature and stable enough for large-scale commercial products.
1C:Enterprise Development Tools
What are 1C Company and 1C:Enterprise
1C Company is one of the largest independent Russian software developers and publishers (https://en.wikipedia.org/wiki/1C_Company#Business_software, https://1c-dn.com/). Its technology platform 1C:Enterprise (set of tools and frameworks for building business software) is a market leader in Russia and Eastern Europe; more than 1.500.000 businesses and enterprises run 1C:Enterprise platform. Business software built on 1C:Enterprise can run on Windows, Linux, OS X; mobile applications built on 1C:Enterprise mobile platform run on Android, iOS, Windows Phone / Windows 8.1 / Windows 10.
What is 1C:Enterprise Development Tools
1C:Enterprise Development Tools (1C:EDT) is an Eclipse-based integrated environment for the development of 1C:Enterpise business applications. 1C:Enterprise has its own development studio (named Designer); 1C:Enterprise Development Tools is a totally new, powerful and extendable development environment intended to replace Designer in the future. For more details, please see https://1c-dn.com/library/1c_enterprise_development_tools_what_is_1c_enterprise_development_tools/.
1C:Enterprise Development Tools and Handly
Handly is relatively new to Eclipse but it had been in development as part of 1C's Eclipse tooling efforts long before it became open sourced. Therefore, it’s not a coincidence that 1C:EDT is the earliest adopter of Handly.
In 1C:EDT, source code models for such diverse languages as 1C:Enterprise Script and 1C:Enterprise Query Language are based on Handly. These models enjoy all the facilities currently provided by the project, including Common Outline Framework and out-of-the-box integration with the Xtext editor, which ensures a tight feedback loop between Handly and its big adopter.
|1C:Enterprise Script Editor, with a Handly-based source code model presented in the Outline view
|1C:Enterprise Query Language Editor, with a Handly-based source code model presented in the Quick Outline
LXTK: Language Client/Server Toolkit
What is LXTK
LXTK is an open source toolkit for implementing language clients talking to language servers according to the Language Server Protocol (LSP). Currently, it targets Java and Eclipse IDE, and as such, sits between Eclipse LSP4J and Eclipse LSP4E in its abstraction level: it is built using LSP4J, while LSP4E could in theory have been built using LXTK. In other words, it provides a higher level of abstraction than LSP4J and more flexibility than LSP4E.
LXTK and Handly
If you need an example of using Handly in an LSP-related project, you can take a look at LXTK.
Currently, there are two main architectural layers in LXTK:
- LXTK Core Framework
- LXTK Integration for Eclipse (LX4E)
LXTK Core Framework is a Java class library for building LSP clients. It is built on top of LSP4J and can be used in any Java-based client (Eclipse, IntelliJ, etc.)
LXTK Integration for Eclipse (LX4E) provides a platform for building Eclipse-based development tools using LSP-based services provided by the Core Framework. To that end, it extends the Core Framework and integrates it with the Eclipse Platform.
LX4E is integrated with Handly and, among other things, provides means for building a handle-based model on top of facilities provided by LSP (in particular, the `documentSymbol` request). LX4E contains several examples including JSON and TypeScript sample editors that demonstrate how this integration can be used in practice.