Comments (14)
@Yokozuna59 Yes, exactly :)
from langium.
@kaisalmen Absolutely.
from langium.
@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.
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.
@Yokozuna59 I want to take care of this and update to monaco-editor-wrapper
v5 along. Does that sound good to you?
from langium.
Shall the workspace split be an option so users can choose?
from langium.
@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.
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.
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.
Will do, thanks for the feedback 👍
from langium.
WIP PR is up. ⬆️ It doesn't work, yet fully. Overall project structure looks good already, though.
from langium.
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.
@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.
@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)
- Default class implementations do not fully implement interfaces HOT 5
- Name collision in generated ast.ts HOT 2
- Error Parsing Regular Expression with `s` Flag in Langium Grammar HOT 3
- Content Assist and no context node for cross references in empty document
- Publish langium packages as scoped packages HOT 1
- Formatter break document with single line comments HOT 2
- The AbstractFormatter.avoidOverlappingEdits does not filter properly overlapping edits
- Content assist with reference is broken when the same rule is possible in context twice
- Language Server Crash:
- Content assist broken with this grammar HOT 5
- `langium` package cannot be tree-shaken well HOT 1
- Comment not extracted from first alternative
- Formatter Problem
- 3.2 semantic token problems HOT 2
- Pass JSDoc from parser rule to the generated interface HOT 1
- Proposal missing from the content assist HOT 4
- Completion/Content Assist Epic
- [3.2] TextDocuments is no longer compatible with NotebookDocument HOT 2
- Add an option to suppress Chevrotain warnings HOT 4
- Unreachable rule, changing the order does nothing. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from langium.