Language Server for BlitzMax NG

Started by Scaremonger, June 25, 2021, 17:20:06

Previous topic - Next topic

Scaremonger

CURRENT VERSION:
* 0.01 Alpha

* DISCORD
* Github Project
* Github Repository

INSTALLATION INSTRUCTIONS:
* Download source code to a folder
* Open the file lsp.bmx in your BlitzMaxNG Editor (MaxIDE, Vscode etc)
* Compile a release version.
* Copy the resulting "lsp" executable to your BlitzMax/bin folder
* Start your compatible editor (VSCode for example).

KNOWN ISSUES:
* None

TARGET FOR NEXT RELEASE
* Go-To-Definition support

FUTURE PLANS
* To early to say


Scaremonger

25 JUN 2021 - PM

Rename Message Handler:

  • Created folder handlers/
  • Moved message handlers from bin/ to handlers/
  • Renamed msg_initialise to TMethod_initialise
  • Renamed msg_initialised to TMethod_initialised
  • Renamed msg_shutdown to TMethod_shutdown
  • Renamed msg_exit to TMethod_exit
  • Moved TMessage from lsp.bmx to handlers/handlers.bmx
  • Updated transform() to use TMethod_* handlers
  • Updated transform() of Protocol Implementation Dependent Messages



Scaremonger

27 JUN 2021

ISSUES RESOLVED:

Transpose error: "int" is not supported
* Added try-catch into field transpose
* Fixed 'int' transpose

"shutdown" message does not return the correct id
* "shutdown" now returns the correct id

log destination is hard-coded
* TLogger now uses config instead of hard-coding

CHANGES
* Transpose now supports messages containing '/' and '$/'
* Replaced old JSON helper with a better one
* Replaced TTemplate functionality with new JSON Helper
* Created TConfig to manage local config
* Added Capability HoverProvider
* Added ClientInfo to the logfile
* Fixed a bug in JSON parser for keywords "true/false/null"
* params are now transposed into message object

NEW ISSUES:
* "textDocument/hover" is not implemented
* "$/cancelRequest" is not implemented

Scaremonger

29 JUN 2021

CHANGES
* Added logfile.debug(), logfile.info(), logfile.warning(), logfile.error(), logfile.critical()
* Added constants for log levels
* Added TLogger.loglevel (set by config)
* Updated logfile.write() with optional second parameter for severity. Default is INFO
* Added "loglevel=7" to default config
* Logged appargs for debugging

Scaremonger

5 JUL 2021

CHANGES
* Added "threadpool=" default=4 to config
* Created Threaded Message Queue
* Created Threaded Receiver
* Created Threaded Sender
* Created Threaded Worker pool
* Fixed bug in JSON.stringify() for arrays

ISSUES
* Worker is not popping jobs from the queue

Skaven

what does all this mean
how long until release or github?!

Scaremonger

I'm using this page as a list of completed tasks at the moment and the first release will be as soon as I'm happy it's stable.

Its still a very early version and the first release won't do much; it''ll only be an operational shell, but then I will be working on the features one-at-a time. If you have requests for what you want first, I'd love to hear them.

I have a Project page located HERE
The Github Repo will open shortly.

GW

Good luck. I'd be happy to one-day ditch Blide.

Skaven

Quote from: GW on July 07, 2021, 10:38:26
Good luck. I'd be happy to one-day ditch Blide.

i dont think he is making any ide only a language server

Derron

it is tested/in development in conjunction with Visual Studio Code (and Hezkore's BlitzMax extension)


bye
Ron

Scaremonger

Hi,
Quote from: GW on July 07, 2021, 10:38:26
Good luck. I'd be happy to one-day ditch Blide.

Quote from: Skaven on July 07, 2021, 10:52:41
i dont think he is making any ide only a language server

As Ron says, it is a Language server initially being developed in VSCode with Hezkore's Blitzmax Extension. I have never used Blide, but hopefully we can give you all the features you expect at some point.

Today I have got the shell stable, so it runs but doesn't do anything useful.

The Repo is now public. Next I will be working on document parsing and indexing in preparation to get "go-to-definition" working.

Join us on DISCORD

Si...