From 335a878a8f89604d7f6bb39d80874c2e227f1d5d Mon Sep 17 00:00:00 2001
From: NotAShelf <raf@notashelf.dev>
Date: Fri, 4 Apr 2025 10:17:31 +0300
Subject: [PATCH] lsp: deprecate lsplines in favor of `vim.diagnostics`

---
 configuration.nix                         |  1 -
 modules/extra/deprecations.nix            |  7 +++++++
 modules/plugins/lsp/default.nix           |  1 -
 modules/plugins/lsp/lsplines/config.nix   | 21 ---------------------
 modules/plugins/lsp/lsplines/default.nix  |  6 ------
 modules/plugins/lsp/lsplines/lsplines.nix | 11 -----------
 6 files changed, 7 insertions(+), 40 deletions(-)
 delete mode 100644 modules/plugins/lsp/lsplines/config.nix
 delete mode 100644 modules/plugins/lsp/lsplines/default.nix
 delete mode 100644 modules/plugins/lsp/lsplines/lsplines.nix

diff --git a/configuration.nix b/configuration.nix
index 78dad9c7..011d6fae 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -25,7 +25,6 @@ isMaximal: {
       trouble.enable = true;
       lspSignature.enable = true;
       otter-nvim.enable = isMaximal;
-      lsplines.enable = isMaximal;
       nvim-docs-view.enable = isMaximal;
     };
 
diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix
index 5efe2ae2..86497130 100644
--- a/modules/extra/deprecations.nix
+++ b/modules/extra/deprecations.nix
@@ -104,6 +104,13 @@ in {
         their behaviour was abstract, and confusing. Please use 'vim.options' or 'vim.luaConfigRC'
         to replicate previous behaviour.
       '')
+
+      # 2025-04-04
+      (mkRemovedOptionModule ["vim" "lsp" "lsplines"] ''
+        lsplines module has been removed from nvf, as its functionality is now built into Neovim
+        under the diagnostics module. Please consider using one of 'vim.diagnostics.config' or
+        'vim.luaConfigRC' to configure LSP lines for Neovim through its own diagnostics API.
+      '')
     ]
 
     # Migrated via batchRenameOptions. Further batch renames must be below this line.
diff --git a/modules/plugins/lsp/default.nix b/modules/plugins/lsp/default.nix
index 421f5fda..eb694583 100644
--- a/modules/plugins/lsp/default.nix
+++ b/modules/plugins/lsp/default.nix
@@ -15,7 +15,6 @@
     ./lightbulb
     ./otter
     ./lspkind
-    ./lsplines
     ./nvim-docs-view
   ];
 }
diff --git a/modules/plugins/lsp/lsplines/config.nix b/modules/plugins/lsp/lsplines/config.nix
deleted file mode 100644
index bb07edc9..00000000
--- a/modules/plugins/lsp/lsplines/config.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  config,
-  lib,
-  ...
-}: let
-  inherit (lib.modules) mkIf;
-  inherit (lib.nvim.dag) entryAfter;
-
-  cfg = config.vim.lsp;
-in {
-  config = mkIf (cfg.enable && cfg.lsplines.enable) {
-    vim.startPlugins = ["lsp-lines"];
-    vim.pluginRC.lsplines = entryAfter ["lspconfig"] ''
-      require("lsp_lines").setup()
-
-      vim.diagnostic.config({
-        virtual_text = false,
-      })
-    '';
-  };
-}
diff --git a/modules/plugins/lsp/lsplines/default.nix b/modules/plugins/lsp/lsplines/default.nix
deleted file mode 100644
index 359cec4f..00000000
--- a/modules/plugins/lsp/lsplines/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  imports = [
-    ./config.nix
-    ./lsplines.nix
-  ];
-}
diff --git a/modules/plugins/lsp/lsplines/lsplines.nix b/modules/plugins/lsp/lsplines/lsplines.nix
deleted file mode 100644
index aac4cbbc..00000000
--- a/modules/plugins/lsp/lsplines/lsplines.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{lib, ...}: let
-  inherit (lib.options) mkEnableOption;
-in {
-  options.vim.lsp = {
-    lsplines = {
-      enable = mkEnableOption ''
-        diagnostics using virtual lines on top of the real line of code. [lsp_lines]
-      '';
-    };
-  };
-}