Update COC settings

- Retheme
- Update language servers
- Improve keybinds
diff --git a/modules/neovim/coc/default.nix b/modules/neovim/coc/default.nix
index 44795b8..e174559 100644
--- a/modules/neovim/coc/default.nix
+++ b/modules/neovim/coc/default.nix
@@ -5,12 +5,17 @@
   nixpkgs-minion,
   home,
   utils,
+  omnisharp-language-server,
   ...
 }: {
   programs.neovim = {
     coc = {
       enable = true;
       settings = {
+        suggest.floatConfig = {
+          border = true;
+          rounded = true;
+        };
         "suggest.noselect" = false;
         "cSpell.checkOnlyEnabledfileTypes" = false;
         "cSpell.dictionaryDefinitions" = [
@@ -21,17 +26,19 @@
         ];
         "cSpell.dictionaries" = ["imperative"];
         "git.enableGutters" = false; # We're using another plugin to do this
-        "rust-analyzer.serverPath" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
+        "rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
+        "omnisharp.path" = "${pkgs.omnisharp-roslyn}/bin/OmniSharp";
+        "markdownlint.config" = {
+          line-length = {
+            code_blocks = false;
+            tables = false;
+          };
+        };
         languageserver = {
           nix = {
             command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
             filetypes = ["nix"];
           };
-          cs = {
-            command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp";
-            filetypes = ["cs"];
-            rootPatterns = ["*.csproj" ".vim/" ".git/" ".hg/"];
-          };
         };
       };
     };
@@ -49,33 +56,47 @@
 
       # Spellchecker
       nixpkgs-minion.legacyPackages.${system}.vimPlugins.coc-spell-checker
+      nixpkgs-minion.legacyPackages.${system}.vimPlugins.coc-omnisharp
 
       # File explorer
       coc-explorer
       coc-git # TODO: Check if coc-git is still needed
 
       # Snippet completion
-      coc-snippets
+      ultisnips
       vim-snippets
+      coc-ultisnips
+
+      # General utils
+      coc-pairs
     ];
     extraConfig = lib.pipe [./keybinds.vim ./theme.vim] [
       (map builtins.readFile)
       (builtins.concatStringsSep "\n")
     ];
-    extraPackages = with pkgs; [nodejs rustc go rust-analyzer texlab];
+    extraPackages = with pkgs; [
+      nodejs
+      rustc
+      go
+      rust-analyzer
+      texlab
+      omnisharp-roslyn
+    ];
   };
   home.file = lib.pipe ./snippets [
     builtins.readDir
     builtins.attrNames
     (map
       (f: {
-        name = ".config/coc/ultisnips/${f}";
+        name = ".config/nvim/UltiSnips/${f}";
         value = {
           source = ./snippets + "/${f}";
-          target = ".config/coc/ultisnips/${f}";
+          target = ".config/nvim/UltiSnips/${f}";
         };
       }))
     builtins.listToAttrs
     lib.traceValSeq
-  ];
+  ] // {
+    ".config/coc/placeholder".text = "";
+  };
 }