cmp.nix
                        
                             · 619 B · Nix
                        
                    
                    
                      
                        原始文件
                      
                      
                        
                          
                        
                    
                    
                
                
            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 |