{ pkgs, config, lib, ... }: with lib; with builtins; let cfg = config.vim.ui.smartcolumn; in { config = mkIf cfg.enable { vim.startPlugins = [ "smartcolumn" ]; vim.luaConfigRC.smartcolumn = nvim.dag.entryAnywhere '' require("smartcolumn").setup({ colorcolumn = "${toString cfg.showColumnAt}", -- { "help", "text", "markdown", "NvimTree", "alpha"}, disabled_filetypes = { ${concatStringsSep ", " (map (x: "\"" + x + "\"") cfg.disabledFiletypes)} }, custom_colorcolumn = { -- TODO: use cfg.languages.<language>.columnAt when it's fixed to dynamically define per-language length ruby = "120", java = "120", nix = "120", markdown = "80", }, scope = "file", }) ''; }; }