chore(plugins): added python-repl.lua
This commit is contained in:
		
							parent
							
								
									2863dca316
								
							
						
					
					
						commit
						63d5dd2856
					
				| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
-- python-debugging.lua: Debugging Python code with DAP
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
return {
 | 
			
		||||
  -- PYTHON REPL
 | 
			
		||||
  -- A basic REPL that opens up as a horizontal split
 | 
			
		||||
  -- - use `<leader>i` to toggle the REPL
 | 
			
		||||
  -- - use `<leader>I` to restart the REPL
 | 
			
		||||
  -- - `+` serves as the "send to REPL" operator. That means we can use `++`
 | 
			
		||||
  -- to send the current line to the REPL, and `+j` to send the current and the
 | 
			
		||||
  -- following line to the REPL, like we would do with other vim operators.
 | 
			
		||||
  {
 | 
			
		||||
    'Vigemus/iron.nvim',
 | 
			
		||||
    keys = {
 | 
			
		||||
      { '<leader>i', vim.cmd.IronRepl, desc = ' Toggle REPL' },
 | 
			
		||||
      { '<leader>I', vim.cmd.IronRestart, desc = ' Restart REPL' },
 | 
			
		||||
 | 
			
		||||
      -- these keymaps need no right-hand-side, since that is defined by the
 | 
			
		||||
      -- plugin config further below
 | 
			
		||||
      { '+', mode = { 'n', 'x' }, desc = ' Send-to-REPL Operator' },
 | 
			
		||||
      { '++', desc = ' Send Line to REPL' },
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    -- since irons's setup call is `require("iron.core").setup`, instead of
 | 
			
		||||
    -- `require("iron").setup` like other plugins would do, we need to tell
 | 
			
		||||
    -- lazy.nvim which module to via the `main` key
 | 
			
		||||
    main = 'iron.core',
 | 
			
		||||
 | 
			
		||||
    opts = {
 | 
			
		||||
      keymaps = {
 | 
			
		||||
        send_line = '++',
 | 
			
		||||
        visual_send = '+',
 | 
			
		||||
        send_motion = '+',
 | 
			
		||||
      },
 | 
			
		||||
      config = {
 | 
			
		||||
        -- This defines how the repl is opened. Here, we set the REPL window
 | 
			
		||||
        -- to open in a horizontal split to the bottom, with a height of 10.
 | 
			
		||||
        repl_open_cmd = 'horizontal bot 10 split',
 | 
			
		||||
 | 
			
		||||
        -- This defines which binary to use for the REPL. If `ipython` is
 | 
			
		||||
        -- available, it will use `ipython`, otherwise it will use `python3`.
 | 
			
		||||
        -- since the python repl does not play well with indents, it's
 | 
			
		||||
        -- preferable to use `ipython` or `bypython` here.
 | 
			
		||||
        -- (see: https://github.com/Vigemus/iron.nvim/issues/348)
 | 
			
		||||
        repl_definition = {
 | 
			
		||||
          python = {
 | 
			
		||||
            command = function()
 | 
			
		||||
              local ipythonAvailable = vim.fn.executable 'ipython' == 1
 | 
			
		||||
              local binary = ipythonAvailable and 'ipython' or 'python3'
 | 
			
		||||
              return { binary }
 | 
			
		||||
            end,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue