Open msujew opened 1 month ago
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
@Yokozuna59 Yes, exactly :)
@Yokozuna59 I want to take care of this and update to monaco-editor-wrapper
v5 along. Does that sound good to you?
@kaisalmen Absolutely.
Shall the workspace split be an option so users can choose?
@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.
@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.
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 https://github.com/eclipse-langium/langium/issues/1495#issue-2295639658)
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.
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 👍
Will do, thanks for the feedback 👍
WIP PR is up. ⬆️ It doesn't work, yet fully. Overall project structure looks good already, though.
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.
@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
@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!)
After https://github.com/eclipse-langium/langium/pull/954, the setup of the yeoman project has become a bit complicated. Trying to use
@vscode/vsce
to package a vsix file doesn't work natively due to the inclusion of a customvscode
dependency.Splitting the generated yeoman project into web/language/extension would have a lot of benefits and make features such as https://github.com/eclipse-langium/langium/issues/1487 easier as well.