Skip to content

BaoCaiH/dbwf-ls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dbwf-ls

Databricks workflow yaml language server.

An "intellisense" server to help with creating databricks workflow file.

Why?

Databricks workflow file is a way to define a workflow on databricks using json file. However, there are 2 problems with that:

  • json file doesn't allow comments. Yes most the time it's not needed. But when it's needed, json can't do it.
  • There's no code suggestions, no documentation close to source, no diagnostics, etc.

This language server aims to solve those problems by:

  • Use yaml file instead of json, then it can be parsed to json using any language. With a slight custom file extension, .flow.yaml. This means it still get the yaml syntax highlighting while the language server only handles the juicy parts.
  • Well this is the juicy part

What?

This server comes with the following capabilities:

TextDocumentSync
HoverProvider
DefinitionProvider
CodeActionProvider
CompletionProvider
DocumentFormattingProvider

Demo

Will be here, at some point

⚙️ Setup

Note: Before going further, you should know that this is currently a setup for Neovim, simply because neovim works with custom binary language server seamlessly while other editors don't. I don't know about Emacs but VSCode sure is a pain to make this work so, for now, it doesn't. Just Neovim

First clone and navigate to this repository with your terminal (I'm assuming you're a fantastic developer).

Then build and save this binary to config path. If it errors, create the ~/.config/dbfw-ls in advance is a good try but it really shouldn't:

go build main.go && mv ./main ~/.config/dbwf-ls

Then save language_client_config/nvim.lua somewhere in your nvim config. Let's say you have a simple setup and you have a root init.lua and you save this file as lua/custom/plugins/dbwf-ls.lua.

Now you can import this into your root config:

require("custom.plugins.dbwf-ls")

If you have a more complex config, I think you know how to deal with this.

With this setup, you have the dbwf-ls server attaches to any .flow.yaml file you open or create. All log for the current session will be saved at ~/.config/dbfw-ls/log.txt

Enjoy!

Dependencies

None. Because I like to type. Also avoid dependencies hell.

👏 Contributing

Let's see if this is useful for more than just me.

About

Databricks workflow yaml language server

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published