Comments (4)
I'm not using VSCode; just had a look at how they do syntax highlighting; apparently they expect a description in JSON format, see https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide and https://macromates.com/manual/en/language_grammars. There seem to be different ways how to implement language support though; another way seem to be to implement a language server using a JSON based protocol (https://code.visualstudio.com/api/language-extensions/language-server-extension-guide); both ways will cause additional work. My parser produces an AST which is suited for use in an IDE, but it's C++ using Qt; when I'm ready with the QtNetwork stuff in LeanQt it should be possible to implement such a server; but it's currently not on my agenda; syntax highlighting, code completion etc. is not the whole story; eventually you certainly also need to run the debugger, so yet another protocol which has to be implemented.
from oberon.
The language server does not need to be implemented as this is done in JavaScript by
utilizing the API for this part in VSCode. The JavaScript code simply calls the ObxMC binary
with parser a temporary .obx code file and the compiler then spews out some JSON data which can be
read in to the JavaScript side and further processed to create the language server reply.
An example of this can be found:
vscode
cli compiler
I was thinking this should be fairly low impact to support in the ObxMC compiler.
The above example language server seems easy enough to simply reuse most of.
from oberon.
Ok, I see; but the OBXMC is not suited to do this; it would need another generator which would create a JSON file compatible with the format required by VSCode; seems like quite some work given that it is also supposed to work with wrong code, and the implementor needs pretty good knowledge of VSCode, the highlighting protocol and the implicit and explicit expectations to the AST and error reporting; and if I understand it right OBXMC would then essentially be called potentially for every edit done in VSCode, which looks quite expensive.
Can you make a list what the most important features are, which VSCode has and the Oberon IDE is missing?
from oberon.
Fair enough. I was hoping this was possible to hack together easily, as I already have started using VSCode due to the plugins for PostgreSQL, FreePascal etc. Great solutions, even if the whole system is huge bloat with Electron in the background.
Not any particular things missing from the IDE. We can close this.
from oberon.
Related Issues (20)
- Sorry, this was a mistake.
- Congrats for Top 10 in Hacker News! HOT 2
- Basic Types and some questions HOT 7
- Variable Initialization HOT 3
- M1 version reports “OberonIDE” is damaged and can’t be opened. You should move it to the Trash. HOT 2
- Cannot create build directory '/private/var/folders/...' HOT 5
- System.DllNotFoundException: SDL2.dll on macOS M2 MacBook Air HOT 2
- ObxIDE default english keyboard layout HOT 6
- License does not Allow Closed Source Development HOT 11
- Oberon+ Concurrence and others HOT 17
- Niklaus Wirth (1934-2024) HOT 1
- Problems with type extension HOT 7
- Problems with super calls across Module boundaries HOT 5
- Problems with Set Command in IDE HOT 1
- Where to put C# dlls ? HOT 2
- Problems with projects in INT16 mode HOT 4
- Illegal IL Code generation HOT 2
- Problem with code generation for nested procedures HOT 4
- write a text file HOT 12
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 oberon.