-- 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