| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- -- visual-line.lua
- -- Soft word wrap mode (like Emacs visual-line-mode)
- -- ============================================================================
- local visual_line = {}
- -- Configuration
- visual_line.config = {
- enabled = true,
- }
- -- Toggle visual line mode
- function visual_line.toggle()
- local current = editor:visual_line_mode()
- editor:set_visual_line_mode(not current)
- if not current then
- return {success = true, message = "Visual line mode enabled (word wrap on)"}
- else
- return {success = true, message = "Visual line mode disabled"}
- end
- end
- -- Enable visual line mode
- function visual_line.enable()
- editor:set_visual_line_mode(true)
- return {success = true, message = "Visual line mode enabled"}
- end
- -- Disable visual line mode
- function visual_line.disable()
- editor:set_visual_line_mode(false)
- return {success = true, message = "Visual line mode disabled"}
- end
- -- Setup function
- function visual_line.setup(opts)
- opts = opts or {}
- for k, v in pairs(opts) do
- visual_line.config[k] = v
- end
- if not visual_line.config.enabled then
- return
- end
- -- Register commands
- editor:register_command("visual-line-mode", "Toggle soft word wrap", function(args)
- return visual_line.toggle()
- end)
- editor:register_command("toggle-word-wrap", "Toggle soft word wrap (alias)", function(args)
- return visual_line.toggle()
- end)
- print("[visual-line] Package loaded")
- end
- -- Auto-setup with defaults
- visual_line.setup()
- return visual_line
|