Giter Site home page Giter Site logo

Comments (14)

msujew avatar msujew commented on September 24, 2024 1

@Yokozuna59 Yes, exactly :)

from langium.

Yokozuna59 avatar Yokozuna59 commented on September 24, 2024 1

@kaisalmen Absolutely.

from langium.

msujew avatar msujew commented on September 24, 2024 1

@spoenemann I'd argue that unless it's a pure language project, it's always preferable to split the project into multiple workspaces. Even just with Langium+VSCode.

from langium.

Yokozuna59 avatar Yokozuna59 commented on September 24, 2024

Is this the desired output if all options are selected?

.
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   └── tasks.json
├── packages/
│   ├── cli/
│   │   ├── bin/
│   │   │   └── cli.js
│   │   ├── src/
│   │   │   ├── cli-util.ts
│   │   │   ├── generator.ts
│   │   │   └── main.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── extension/
│   │   ├── src/
│   │   │   ├── extension-browser.ts
│   │   │   ├── extension.ts
│   │   │   ├── main-browser.ts
│   │   │   └── main.ts
│   │   ├── .vscodeignore
│   │   ├── esbuild.mjs
│   │   ├── language-configuration.json
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── language/
│   │   ├── src/
│   │   │   ├── language/
│   │   │   │   ├── hello-world-module.ts
│   │   │   │   ├── hello-world-validator.ts
│   │   │   │   ├── hello-world.langium
│   │   │   │   └── index.ts
│   │   │   └── index.ts
│   │   ├── test/
│   │   │   ├── linking/
│   │   │   │   └── linking.test.ts
│   │   │   ├── parsing/
│   │   │   │   └── parsing.test.ts
│   │   │   └── validating/
│   │   │       └── validating.test.ts
│   │   ├── langium-config.json
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   └── tsconfig.src.json
│   └── web/
│       ├── src/
│       │   ├── setupClassic.ts
│       │   ├── setupCommon.ts
│       │   └── setupExtended.ts
│       ├── static/
│       │   ├── monacoClassic.html
│       │   ├── monacoExtended.html
│       │   └── styles.css
│       ├── index.html
│       ├── package.json
│       ├── tsconfig.json
│       └── vite.config.ts
├── .eslint.json
├── .gitignore
├── langium-quickstart.md
├── package.json
├── tsconfig.json
└── vitest.config.ts

from langium.

kaisalmen avatar kaisalmen commented on September 24, 2024

@Yokozuna59 I want to take care of this and update to monaco-editor-wrapper v5 along. Does that sound good to you?

from langium.

spoenemann avatar spoenemann commented on September 24, 2024

Shall the workspace split be an option so users can choose?

from langium.

kaisalmen avatar kaisalmen commented on September 24, 2024

@msujew and @Yokozuna59 in the above structure cli is included in the language package. In yo langium there is a separate question for inclusion of the cli. Doesn't it therefore makes sense to move cli to its own package?

I started working on this today and the first point was to organize the template data directly into packages (git mv is your friend) . This eases the overall process that's also why my vote is to put cli into a separate package.

from langium.

Yokozuna59 avatar Yokozuna59 commented on September 24, 2024

In yo langium there is a separate question for inclusion of the cli. Doesn't it therefore makes sense to move cli to its own package?

Initially, I thought of the same thing, but @msujew said:

Splitting the generated yeoman project into web/language/extension... (from #1495 (comment))

He didn't mention the cli, so I aligned the output, following this suggestion.


As for me, I would also recommend adding a separate cli package since most packages out there, including you guys, have a separate cli package.

from langium.

msujew avatar msujew commented on September 24, 2024

In yo langium there is a separate question for inclusion of the cli. Doesn't it therefore makes sense to move cli to its own package?

Yes, that makes sense 👍

from langium.

kaisalmen avatar kaisalmen commented on September 24, 2024

Will do, thanks for the feedback 👍

from langium.

kaisalmen avatar kaisalmen commented on September 24, 2024

WIP PR is up. ⬆️ It doesn't work, yet fully. Overall project structure looks good already, though.

from langium.

aabounegm avatar aabounegm commented on September 24, 2024

Hello @kaisalmen, I was starting a new (my first) Langium project when I noticed this issue and PR, and I was wondering if it is worth waiting for the PR to be merged. I see that all of the TODOs have already been checked, so is there an ETA on when it will be ready to use? It just seems like a very useful refactor to include in my project from the get-go.

from langium.

Yokozuna59 avatar Yokozuna59 commented on September 24, 2024

@aabounegm You could use that generator using the PR branch:

git clone https://github.com/eclipse-langium/langium.git
cd langium
git fetch origin refs/pull/1520/head:pr/1520
git switch pr/1520
npm install
npm run build
npm run langium:generate
yo ./packages/generator-langium/app/index.js

Please note that you need to install yo globally:

npm install --global yo

from langium.

aabounegm avatar aabounegm commented on September 24, 2024

@Yokozuna59 yes I realize that, but thanks for providing the commands and saving me the trouble 😁.
I guess I was mainly wondering if it's ready yet for me to do that or are more changes expected?
I already generated a project (not from the PR) just to explore Langium first, I'm just planning for the actual project after playing around (hopefully really soon, I love Langium already!)

from langium.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.