neovim

Personal neovim configuration files
git clone git://gtms.dev/neovim
Log | Files | Refs

dart.lua (4238B)


      1 vim.opt_local.comments = [[sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://]]
      2 vim.opt_local.commentstring = '//%s'
      3 vim.opt_local.includeexpr = [[v:lua.require('tms.ft.dart.package').package_path(v:fname)]]
      4 vim.opt_local.isfname:append { ':' }
      5 vim.opt_local.iskeyword:append { '$' }
      6 vim.opt_local.include = [[^import\s*]]
      7 vim.opt_local.textwidth = 80
      8 vim.opt_local.shiftwidth = 2
      9 vim.opt_local.formatoptions:remove('t')
     10 vim.opt_local.makeprg = [[dart %]]
     11 vim.opt_local.efm = [[%f:%l:%c: %m]]
     12 vim.opt_local.foldmethod = 'expr'
     13 vim.opt_local.foldlevel = 99
     14 vim.b.undo_ftplugin = 'setl com< cms< inex< isf<'
     15 vim.cmd.iabbrev('STring', 'String')
     16 
     17 if pcall(require, 'no-neck-pain') and not require 'no-neck-pain.state'.enabled and not vim.g.no_neck_init then
     18   require 'no-neck-pain'.enable()
     19   -- at start cursor is in left most window
     20   vim.schedule(function()
     21     vim.cmd [[exe "normal \<c-w>l"]]
     22   end)
     23   vim.g.no_neck_init = true
     24 end
     25 
     26 local full_path = vim.fn.expand('%:p')
     27 if string.find(full_path, '%.pub%-cache') then
     28   vim.bo.modifiable = false
     29 end
     30 
     31 require 'tms.lsp.dart'.start()
     32 
     33 vim.keymap.set('n', '<leader>ar', ':make<cr>', { desc = 'Dart Run' })
     34 vim.keymap.set('n', '<leader>at', ':DartTest<cr>', { desc = 'Dart Test' })
     35 vim.keymap.set('n', '<leader>an', vim.cmd.Trun, { desc = 'Trun' })
     36 
     37 vim.api.nvim_buf_create_user_command(0, 'NgProvided', function()
     38   vim.lsp.buf.references(nil, { on_list = require 'tms.lsp.dart'.provided_references })
     39 end, {})
     40 
     41 vim.api.nvim_buf_create_user_command(0, 'DartTest', function()
     42   local temp_makeprg = vim.bo.makeprg
     43   vim.bo.makeprg = [[dart test --no-color -r expanded %]]
     44   vim.cmd.make()
     45   vim.bo.makeprg = temp_makeprg
     46 end, {})
     47 
     48 if pcall(require, 'dart-tools') then
     49   local dt_lsp = require 'dart-tools.lsp'
     50   local dt_req = require 'dart-tools.lsp.request'
     51   local ddebug = require 'tms.ft.dart.debug'
     52   local analyze = require 'tms.ft.dart.analyze'
     53 
     54   local cmd_opts = {}
     55   vim.api.nvim_buf_create_user_command(0, 'DartDebug', ddebug.func, cmd_opts)
     56   vim.api.nvim_buf_create_user_command(0, 'DartPrint', ddebug.print, cmd_opts)
     57   vim.api.nvim_buf_create_user_command(0, 'DartOrganizeImports', dt_lsp.organize_imports, cmd_opts)
     58   vim.api.nvim_buf_create_user_command(0, 'DartFixAll', dt_lsp.fix_all, cmd_opts)
     59   vim.api.nvim_buf_create_user_command(0, 'DartExtract', dt_lsp.extract_method, cmd_opts)
     60   vim.api.nvim_buf_create_user_command(0, 'DartVariable', dt_lsp.extract_local_variable, cmd_opts)
     61   vim.api.nvim_buf_create_user_command(0, 'DartAnalyze', analyze.qf2131, cmd_opts)
     62 
     63   local opts = function(desc)
     64     return { buffer = true, desc = desc }
     65   end
     66   -- vim.keymap.set('n', '<leader>ap', function()
     67   --   ddebug.print()
     68   -- end, opts('Dart Debug Print'))
     69   vim.keymap.set('n', '<leader>ao', dt_lsp.organize_imports, opts('Dart Organize Imports'))
     70   vim.keymap.set('n', '<leader>af', dt_lsp.fix_all, opts('Dart Fix All'))
     71   vim.keymap.set({ 'v', 'n' }, '<leader>ai', dt_lsp.inline_local_variable, opts('Dart Inline Local Varibale'))
     72   vim.keymap.set({ 'v', 'n' }, '<leader>ae', dt_lsp.extract_local_variable, opts('Dart Extract Local Varibale'))
     73   vim.keymap.set({ 'v', 'n' }, '<leader>am', dt_lsp.extract_method, opts('Dart Extract Method'))
     74   vim.keymap.set('n', '<leader>al', dt_lsp.list_code_action_kinds, opts('Dart List Code Actions'))
     75   vim.keymap.set('n', '<leader>as', function()
     76     dt_req.execute_command('refactor.splitVariableDeclaration')
     77   end, opts('Dart Split Variable Declaration'))
     78   vim.keymap.set('n', '<leader>aj', function()
     79     dt_req.execute_command('refactor.joinVariableDeclaration')
     80   end, opts('Dart Join Variable Declaration'))
     81   vim.keymap.set('n', '<leader>ax', function()
     82     dt_req.execute_command('refactor.convert.bodyToExpression')
     83   end, opts('Dart Convert To Expression'))
     84   vim.keymap.set('n', '<leader>aa', function()
     85     dt_req.execute_command('refactor.convert.bodyToAsync')
     86   end, opts('Dart Convert To Async'))
     87   vim.keymap.set('n', '<leader>ab', function()
     88     dt_req.execute_command('refactor.convert.bodyToBlock')
     89   end, opts('Dart Convert To Block'))
     90   vim.keymap.set('n', '<leader>ad', dt_lsp.super, opts('Dart Go to Super Definition'))
     91   -- vim.keymap.set('n', '<leader>ap', dt_lsp.import, opts('Dart Go to Import'))
     92 end