Shaaf's blog

A technical blog about Java, Kubernetes and things that matter

Adding Rust Support and Some Major updates to My Neovim Config

It’s been about 8 months since my last update on neovim4j, and the config has evolved significantly. The name “neovim4j” is now a bit of a misnomer—while it started as a Java-focused setup, it’s grown into a polyglot development environment.

Rust Support 🦀

The biggest addition is comprehensive Rust support. I’ve integrated:

  • rustaceanvim for advanced LSP features powered by rust-analyzer
  • crates.nvim for smart Cargo.toml management and dependency completion
  • codelldb debugger integration
  • neotest for running Rust tests directly in the editor

The Rust setup mirrors the Java tooling quality—full LSP, debugging, and testing all working seamlessly. Semantic highlighting is disabled in favor of Treesitter for more colorful syntax highlighting.


Think in Graphs, Not Just Chains: JGraphlet for TaskPipelines

JGraphlet is a tiny, zero-dependency library for building task pipelines in Java. Its power comes not from a long list of features, but from a small set of core design principles that work together in harmony.

At the heart of JGraphlet is simplicity, backed by a Graph, Add Tasks to a pipeline and connect them to create your graph. Each Task has an input and ouput, A TaskPipeline builds and executes a pipeline while managing the I/O for each Task. For example a Map for Fan-in, a Record for your own data model etc. A Taskpipeline also has a PipelineContext to share the data between Tasks, and furthermore Tasks can also be cached, so the computation doenst need to take place again and again. You can choose how your Task pipeline flow should be, and you can choose whether it should be a SyncTask or Async. By default all Tasks are Async.


Neovim for Java Developers: A Match is made

There are some major changes to my setup. read the latest here: https://shaaf.dev/post/2026-03-09-neovim-rust-update/

Are you a Java developer who is mesmerized by the power and efficiency of Vim? Do you want to try your development experience to the next level? I mean hands-off the mouse style! If so, you’re in for a treat! In this post, I am going to dive into the world of Neovim and explore how you can transform it into a Java IDE. To be honest its a learning journey. And the more I experience learning it, I feel like I really need to share how cool this thing really is!


A Keycloak example - building my first MCP server Tools with Quarkus

Recently I wrote an article about “Adoption of the Model Context Protocol Within the Java Ecosystem”. Now it was also time to start experimenting with writing an MCP Server myself (well maybe not the first time). Certainly I don’t want to be left out of all the cool things being demonstrated by the community. The goal for me is to learn, and creating perhaps a more practical example. In this post I am going to choose Keycloak, and write an experimental MCP server implementation for keycloak. The post is also to spark interest around this topic. Will it be useful to have an MCP server for Keycloak?