Skip to content

m4xshen/smartcolumn.nvim

Folders and files

NameName
Last commit message
Last commit date
Feb 5, 2025
Feb 17, 2023
Dec 20, 2024
Aug 12, 2023

Repository files navigation

smartcolumn.nvim

Stargazers Issues Contributors

demo

πŸ“ƒ Introduction

A Neovim plugin hiding your colorcolumn when unneeded.

βš™οΈ Features

The colorcolumn is hidden as default, but it appears after one of lines in the scope exceeds the colorcolumn value you set.

You can:

  • hide colorcolumn for specific filetype
  • set custom colorcolumn value for different filetype
  • specify the scope where the plugin should work

πŸ“¦ Installation

  1. Install via your favorite package manager.
{
  "m4xshen/smartcolumn.nvim",
  opts = {}
},
use "m4xshen/smartcolumn.nvim"
Plug "m4xshen/smartcolumn.nvim"
  1. Setup the plugin in your init.lua. This step is not needed with lazy.nvim if opts is set as above.
require("smartcolumn").setup()

πŸ”§ Configuration

You can pass your config table into the setup() function or opts if you use lazy.nvim.

The available options:

  • colorcolumn (strings or table) : screen columns that are highlighted
    • "80" (default)
    • { "80", "100" }
  • disabled_filetypes (table of strings) : the colorcolumn will be disabled under the filetypes in this table
    • { "help", "text", "markdown" } (default)
    • { "NvimTree", "lazy", "mason", "help", "checkhealth", "lspinfo", "noice", "Trouble", "fish", "zsh"}

Note

You can use :set filetype? to check the filetype of current buffer.

  • scope (strings): the plugin only checks whether the lines within scope exceed colorcolumn
    • "file" (default): current file
    • "window": visible part of current window
    • "line": current line
  • custom_colorcolumn (table or function returning string): custom colorcolumn values for different filetypes
    • {} (default)
    • { ruby = "120", java = { "180", "200"} }
    • you can also pass a function to handle more complicated logic:
    custom_colorcolumn = function ()
       return "100"
    end
  • editorconfig: use max_line_length from EditorConfig, overrides custom_colorcolumn

Default config

local config = {
   colorcolumn = "80",
   disabled_filetypes = { "help", "text", "markdown" },
   custom_colorcolumn = {},
   scope = "file",
   editorconfig = true,
}