/nvim-ros2

nvim-ros2 is a simple lua plugin that adds useful features to enhance your development workflow while developing ROS 2 modules.

Primary LanguageHTMLMIT LicenseMIT

🎮 🐢 nvim-ros2

nvim-ros2 is a simple lua plugin that adds useful features to enhance your development workflow while developing ROS 2 modules.

🪄 Features

🌳 Treesitter Parser

  • Custom grammar with syntax highlights for ROS 2 interfaces following official conventions.
  • After configuring the plugin, the grammar can be installed using TSInstall ros2

✨ Highlights Examples

  • .msg file

ROS 2 msg

  • .srv file

ROS 2 srv

  • .action file

ROS 2 action

🔭 Telescope

  • Telescope extension that adds pickers for ROS 2 components

Active Actions with info preview

telescope actions

Active interfaces with show preview

telescope interfaces

Active Nodes with info preview

telescope nodes

Active Services with type preview

telescope services

Active topics with info preview

telescope topics_info

Autocommands

  • Configure *.action, *.msg, and *.srv files as ros filetype
  • Configure *.launch, *.xacro, and *.urdf files as xml filetype

🧰 Installation

lazy.nvim

{
	"ErickKramer/nvim-ros2",
	dependencies = {
		"nvim-lua/plenary.nvim",
		"nvim-telescope/telescope.nvim",
		"nvim-treesitter/nvim-treesitter",
	},
    opts = {
        -- Add any custom options here
			autocmds = true,
			telescope = true,
			treesitter = true,
    }
},

Related Projects

Disclaimer

The functionalities here provided were validated using ROS 2 humble.

ROS humble