feat(nvim): change Copilot priority in completion suggestions

GitOrigin-RevId: de0b3bc222dd317c3d633b8c42d40bf6117a96f2
diff --git a/private_dot_config/nvim/lua/plugins/lsp_config.lua b/private_dot_config/nvim/lua/plugins/lsp_config.lua.tmpl
similarity index 86%
rename from private_dot_config/nvim/lua/plugins/lsp_config.lua
rename to private_dot_config/nvim/lua/plugins/lsp_config.lua.tmpl
index c9b4ec8..24aacbd 100644
--- a/private_dot_config/nvim/lua/plugins/lsp_config.lua
+++ b/private_dot_config/nvim/lua/plugins/lsp_config.lua.tmpl
@@ -113,7 +113,11 @@
       -- @source: https://github.com/zbirenbaum/copilot-cmp?tab=readme-ov-file#highlighting--icon
       -- Set up nvim-cmp.
       local cmp = require'cmp'
+      local compare = cmp.config.compare
       local lspkind = require'lspkind'
+{{if eq .env "work" -}}
+      local copilot_cmp_comparators = require'copilot_cmp.comparators'
+{{- end}}
 
       cmp.setup({
       --  snippet = {
@@ -135,6 +139,9 @@
         sources = cmp.config.sources(
           {
             { name = 'nvim_lsp' },
+{{if eq .env "work" -}}
+            { name = 'copilot' }
+{{- end}}
         --    { name = 'ultisnips' },
           }, {
             {
@@ -149,11 +156,30 @@
                 end
               },
             },
-          },
-          {
-            { name = "copilot", group_index = 2 }
           }
         ),
+        sorting = {
+          -- Default value from https://github.com/hrsh7th/nvim-cmp/blob/5a11682453ac6b13dbf32cd403da4ee9c07ef1c3/lua/cmp/config/default.lua#L67
+          priority_weight = 2,
+          comprators = {
+{{if eq .env "work" -}}
+            -- From https://github.com/zbirenbaum/copilot-cmp/blob/15fc12af3d0109fa76b60b5cffa1373697e261d1/README.md#comparators
+            copilot_cmp_comparators.prioritize,
+{{- end }}
+
+            -- Defaults comparators from https://github.com/hrsh7th/nvim-cmp/blob/5a11682453ac6b13dbf32cd403da4ee9c07ef1c3/lua/cmp/config/default.lua#L68-L78
+            compare.offset,
+            compare.exact,
+            -- compare.scopes,
+            compare.score,
+            compare.recently_used,
+            compare.locality,
+            compare.kind,
+            compare.sort_text,
+            compare.length,
+            compare.order,
+          },
+        },
         formatting = {
           format = lspkind.cmp_format({
             mode = 'symbol',