anchor.diff:  -- end
   -- nvim_lsp["ansiblels"].setup { on_attach = on_attach; }
   
  -local saga = require 'lspsaga'
  -saga.init_lsp_saga()
  +-- local saga = require 'lspsaga'
  +-- saga.init_lsp_saga()
  +
  +
  +require'compe'.setup {
  +  enabled = true;
  +  autocomplete = true;
  +  debug = false;
  +  min_length = 1;
  +  preselect = 'enable';
  +  throttle_time = 80;
  +  source_timeout = 200;
  +  resolve_timeout = 800;
  +  incomplete_delay = 400;
  +  max_abbr_width = 100;
  +  max_kind_width = 100;
  +  max_menu_width = 100;
  +  documentation = {
  +    border = { ''', ''' ,''', ' ', ''', ''', ''', ' ' }, -- the border option is the same as `|help nvim_open_win|`
  +    winhighlight = "NormalFloat:CompeDocumentation,FloatBorder:CompeDocumentationBorder",
  +    max_width = 60,
  +    min_width = 30,
  +    max_height = math.floor(vim.o.lines * 0.3),
  +    min_height = 1,
  +  };
  +
  +  source = {
  +    buffer = true;
  +    path = true;
  +    tags = true;
  +    spell = true;
  +    calc = true;
  +    nvim_lsp = true;
  +    nvim_lua = true;
  +    omni = false;
  +    -- vsnip = true;
  +    -- ultisnips = true;
  +    -- luasnip = true;
  +  };
  +}
   
   EOF
  -    nnoremap <silent> gh :Lspsaga lsp_finder<CR>
  -    nnoremap <silent> ca :Lspsaga code_action<CR>
  -    vnoremap <silent> ca :<C-U>Lspsaga range_code_action<CR>
  -    nnoremap <silent> K :Lspsaga hover_doc<CR>
  -    nnoremap <silent> gs :Lspsaga signature_help<CR>
  -    nnoremap <silent> gr :Lspsaga rename<CR>
  -    nnoremap <silent> gd :Lspsaga preview_definition<CR>
  -    nnoremap <silent> cd :Lspsaga show_line_diagnostics<CR>
  -    nnoremap <silent> } :Lspsaga diagnostic_jump_next<CR>
  -    nnoremap <silent> { :Lspsaga diagnostic_jump_prev<CR>
  -    nnoremap <silent> <A-d> :Lspsaga open_floaterm<CR>
  -    tnoremap <silent> <A-d> <C-\><C-n>:Lspsaga close_floaterm<CR>
  +    " nnoremap <silent> gh :Lspsaga lsp_finder<CR>
  +    " nnoremap <silent> ca :Lspsaga code_action<CR>
  +    " vnoremap <silent> ca :<C-U>Lspsaga range_code_action<CR>
  +    " nnoremap <silent> K :Lspsaga hover_doc<CR>
  +    " nnoremap <silent> gs :Lspsaga signature_help<CR>
  +    " nnoremap <silent> rn :Lspsaga rename<CR>
  +    " nnoremap <silent> gd :Lspsaga preview_definition<CR>
  +    " nnoremap <silent> cd :Lspsaga show_line_diagnostics<CR>
  +    " nnoremap <silent> } :Lspsaga diagnostic_jump_next<CR>
  +    " nnoremap <silent> { :Lspsaga diagnostic_jump_prev<CR>
  +    " nnoremap <silent> <A-d> :Lspsaga open_floaterm<CR>
  +    " tnoremap <silent> <A-d> <C-\><C-n>:Lspsaga close_floaterm<CR>
  +
  +    set completeopt=menuone,noselect
  +    inoremap <silent><expr> <C-Space> compe#complete()
  +    inoremap <silent><expr> <CR>      compe#confirm('<CR>')
  +    inoremap <silent><expr> <C-e>     compe#close('<C-e>')
  +
  +    nnoremap gd :lua require'telescope.builtin'.lsp_definitions{}<cr>
  +    nnoremap gr :lua require'telescope.builtin'.lsp_references{}<cr>
  +    nnoremap ca :lua require'telescope.builtin'.lsp_code_actions{}<cr>
  +    vnoremap ca :lua require'telescope.builtin'.lsp_range_code_actions{}<cr>
   
       " function! OpenCompletion()
       "     if !pumvisible() && ((v:char >= 'a' && v:char <= 'z') || (v:char >= 'A' && v:char <= 'Z'))
  
positive.code:   local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
    local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
  
    buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
  
    -- Mappings.
    local opts = { noremap=true, silent=true }
    -- buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
    -- buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
    -- buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
    -- buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
    -- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
    -- buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
    -- buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
    -- buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
    -- buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
    -- buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
    -- buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
    -- buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
    -- buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
    -- buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
    -- buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
  
    -- Set some keybinds conditional on server capabilities
  
negative.code:       repo = pname;
        rev = "v${version}";
        sha256 = "028zaf6hrridjjam63i1n3x9cayiwq09xg8adnz2lcwpfyawl9ag";
      };
    });
  
    pyright = pkgs.pyright.overrideDerivation (old: rec {
      version = "1.1.161";
      src = pkgs.fetchurl {
        url = "https://registry.npmjs.org/pyright/-/pyright-${version}.tgz";
        sha256 = "sha256-wmek3/DSJm9j7CsK/LVNdOG6zj3AP47funm8r8eDmSA=";
      };
    });
  
  