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