cmp.nix
                        
                             · 835 B · Nix
                        
                    
                    
                      
                        Raw
                      
                      
                        
                          
                        
                    
                    
                
                
                        cmp.mapping(function(fallback)
              local line, col = unpack(vim.api.nvim_win_get_cursor(0))
              -- When the selection menu is open select the next item
              if cmp.visible() then
                cmp.select_next_item()
              -- Ensure we are mid word
              elseif col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil then
                -- Open the selection menu
                cmp.complete()
                -- Autocomplete when there is only 1 selection available
                if #cmp.get_entries() == 1 then
                  cmp.confirm({ select = true })
                end
              -- Keep regular functionality of tab
              else
                fallback()
              end
            end, {'i', 's'})
                | 1 | cmp.mapping(function(fallback) | 
| 2 | local line, col = unpack(vim.api.nvim_win_get_cursor(0)) | 
| 3 | |
| 4 | -- When the selection menu is open select the next item | 
| 5 | if cmp.visible() then | 
| 6 | cmp.select_next_item() | 
| 7 | -- Ensure we are mid word | 
| 8 | elseif col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil then | 
| 9 | -- Open the selection menu | 
| 10 | cmp.complete() | 
| 11 | -- Autocomplete when there is only 1 selection available | 
| 12 | if #cmp.get_entries() == 1 then | 
| 13 | cmp.confirm({ select = true }) | 
| 14 | end | 
| 15 | -- Keep regular functionality of tab | 
| 16 | else | 
| 17 | fallback() | 
| 18 | end | 
| 19 | end, {'i', 's'}) | 
| 20 |