-- Copyright (C) 2024 - 2024: -- The Trinitrix Project -- SPDX-License-Identifier: MIT -- -- This file is part of Trinitrix. -- -- Permission is hereby granted, free of charge, to any person -- obtaining a copy of this software and associated documentation files -- (the “Software”), to deal in the Software without restriction, -- including without limitation the rights to use, copy, modify, merge, -- publish, distribute, sublicense, and/or sell copies of the Software, -- and to permit persons to whom the Software is furnished to do so, -- subject to the following conditions: -- -- The above copyright notice and this permission notice shall be -- included in all copies or substantial portions of the Software. -- -- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, -- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -- OTHER DEALINGS IN THE SOFTWARE. -- FIXME(@soispha): The code here has been deprecated, update it when trixy supports lua <2024-05-03> -- create the required tables under `std` trinitrix.std = { keymaps = {} } --- Add a new keymap. This is just a convenience function which registers the function --- and at the same time deals with the fact that the whole trinitrix api is async. ---@param mode string ---@param key string ---@param callback function trinitrix.std.keymaps.add = function(mode, key, callback) local callback_key = trinitrix.api.register_function(function() local co = coroutine.create(callback) while coroutine.status(co) ~= "dead" do coroutine.resume(co) end end) trinitrix.api.keymaps.add(mode, key, callback_key) end trinitrix.std.keymaps.add("ci", "", trinitrix.api.ui.set_mode_normal) trinitrix.std.keymaps.add("n", ":", trinitrix.api.ui.command_line_show) trinitrix.std.keymaps.add("n", "i", trinitrix.api.ui.set_mode_insert) trinitrix.std.keymaps.add("n", "", trinitrix.api.ui.cycle_planes) -- a simple test to prove that key chords work trinitrix.std.keymaps.add("ni", "jj", function() print("hi") end) trinitrix.std.keymaps.add("n", "q", trinitrix.api.exit) -- Help people trinitrix.std.keymaps.add("n", "", function() print("To exit trinitrix use 'trinitrix.api.exit()' instead!") end)