README.md

June 4, 2025 · View on GitHub

Assistant.nvim Logo

Assistant.nvim

Latest release License Stars

A powerful and efficient Neovim plugin designed for competitive programmers. It automates the testing workflow, making it faster and more convenient to run test cases directly inside Neovim


showcase


Note

Speed is crucial in competitive programming. Ensure that using this plugin enhances your workflow rather than slowing you down.


Features

  • Automated Test Case Management: Easily fetch and organize test cases from online judges.
  • Customizable Execution Commands: Support for multiple programming languages with configurable commands.
  • Interactive UI: A user-friendly interface for managing test cases.
  • Asynchronous Processing: Ensures Neovim remains responsive during execution.

Requirements


Installation Using lazy.nvim

latest version

{
    'A7lavinraj/assistant.nvim',
    lazy = false,
    keys = {
        { '<leader>a', '<cmd>Assistant<cr>', desc = 'Assistant.nvim' }
    },
    opts = {}
}

stable version

{
    'A7lavinraj/assistant.nvim',
    branch = 'stable',
    lazy = false,
    keys = {
        { '<leader>a', '<cmd>Assistant<cr>', desc = 'Assistant.nvim' }
    },
    opts = {}
}

Default configuration

{
    mappings = {},
    commands = {
        python = {
            extension = 'py',
            template = nil,
            compile = nil,
            execute = {
                main = 'python3',
                args = { '$FILENAME_WITH_EXTENSION' },
            },
        },
        cpp = {
            extension = 'cpp',
            template = nil,
            compile = {
                main = 'g++',
                args = { '$FILENAME_WITH_EXTENSION', '-o', '$FILENAME_WITHOUT_EXTENSION' },
            },
            execute = {
                main = './$FILENAME_WITHOUT_EXTENSION',
                args = nil,
            },
        },
    },
    ui = {
        border = 'single',
        diff_mode = false,
        title_components_separator = '',
    },
    core = {
        process_budget = 5000,
        port = 10043,
        filename_generator = nil
    },
}

Explore more about assistant on Wiki

Want to contribute?

Please read CONTRIBUTING.md to get started