Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A RAP-inspired VS-code environment for Ampersand users #238

Open
stefjoosten opened this issue Feb 25, 2023 · 3 comments
Open

A RAP-inspired VS-code environment for Ampersand users #238

stefjoosten opened this issue Feb 25, 2023 · 3 comments

Comments

@stefjoosten
Copy link
Contributor

stefjoosten commented Feb 25, 2023

Problem

The RAP application can be seen as an IDE for Ampersand. Today, more and more users work with VS-code as a general purpose IDE. So why not for Ampersand?

From a user perspective, we want more than just the option to work with VS-code. The Ampersand-IDE must be open for users to add their own functionality. RAP does not offer such openness, but VS-code does. That is the user-driven reason why we want to do this. Needless to say that Ampersand users should get at least the same functionality as they got in RAP.

There is also a more selfish reason to want this. We spend a lot of effort to maintain RAP. If the Ampersand-IDE is strong enough to replace RAP, we will most likely do that to eliminate the maintenance effort on RAP. Strong enough means: better functionality and less maintenance work than RAP.

Analysis

By the looks of it, the functionality of RAP can be realised within VS-code. By wrapping it in a dev-container, we can ship it as a simple-to-install IDE for Ampersand. This analysis is yet to be done.

Proposal

We propose to make a dev-container for VS-code with the following features:

  1. editing of Ampersand scripts
  2. language-specific support, such as syntax colouring.
  3. on-the-fly errors (Ampersand daemon)
  4. generate a functional specification
  5. deploy a prototype (sandbox)
  6. generate an atlas.
@hanjoosten
Copy link
Member

The following components are likely to help with this endevour:

  • vscode. This is an instance of vscode that is run in a browser.
  • vscode remote development. I think that this will allow us to define a docker image that has all required features on board
  • The ampersand CLI. The ampersand CLI tool can be run as a daemon. As such, it can validate ADL scripts. Also other Ampersand functionality can be invoked by means of this executable.
  • The Ampersand (ADL) language support plugin. This plugin offers ADL specific code validation.
  • Even more goodies?

@stefjoosten
Copy link
Contributor Author

stefjoosten commented May 24, 2023

High-level requirements:

  • As a user, I want to use Ampersand in the cloud, without any footprint on my laptop so that I can try things out spontaneously.

  • As a user, I want to use Ampersand on my laptop to try things out without an internet connection.

  • As a user, I want to make Ampersand prototypes, for demonstration purposes.

  • As a user, I want to make functional specifications as a document, to kick-start the design of an information system.

  • As a user, I want to analyze my Ampersand script in an atlas, to enhance my understanding.

  • As a user, I want to generate data models, to complement my conceptual analysis with a helpful asset.

  • As a user, I want to deploy my prototype in the cloud, to facilitate design workshops with users.

  • As an Ampersand developer, I want to replace RAP with an industry-standard IDE to decrease the amount of maintenance effort in the Ampersand team and benefit maximally from future enhancements by the community.

  • As an Ampersand developer, I want to have a highly maintainable and reproducible IDE for Ampersand so that we can focus on Ampersand itself.

@stefjoosten
Copy link
Contributor Author

stefjoosten commented May 24, 2023

To-do list

  • Change the Ampersand compiler to generate a stand-alone atlas so that the IDE can make a command-line call to the Ampersand compiler.
  • Update the syntax-dependent coloring to the most recent syntax, to realize a more professional look and feel.
  • Realize a publishable docker image that lets users run Ampersand from their laptops.
  • Organize hosting so users can run Ampersand on the internet.
  • Let the Ampersand compiler run alongside the editing process so that a user can correct mistakes on the fly.
  • Realize a button in VScode to generate a running prototype from a compilation result so that a user can try out how the prototype behaves.
  • Realize a button in VScode to generate a deployable image from a compilation result so that a user can deploy the image elsewhere.
  • Realize a button in VScode to generate a functional specification document from a compilation result so that the user can contribute to a design team.
  • Realize a button in VScode to generate an atlas so that the user can analyze the script.
  • Study the architecture of VScode and draw the architecture of the Ampersand-IDE in VScode.
  • Provide the user with an initial project (ampersand init), like it is done in AmpersandTarski/project-template.

@stefjoosten stefjoosten changed the title Replace RAP by a VS-code devcontainer A RAP-inspired VS-code environment for Ampersand users Jul 5, 2023
@AmpersandTarski AmpersandTarski deleted a comment from hanjoosten Jul 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

2 participants