From 02090690a1c67c803c818251ccd9b744fb59f9a9 Mon Sep 17 00:00:00 2001 From: Omar Antolin Camarena Date: Sat, 7 Dec 2024 23:25:55 -0600 Subject: [PATCH 1/4] Ignore byte-compiled files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 73b29b5..5741427 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*.elc # Added automatically by ‘eldev init’. /.eldev /Eldev-local From f4554cbeb9556df851169ac49cd28761dabc8bdd Mon Sep 17 00:00:00 2001 From: Omar Antolin Camarena Date: Sat, 7 Dec 2024 23:26:11 -0600 Subject: [PATCH 2/4] Merge send-region and send-line commands The merged command sends the region if active, else the current line. --- ngnk-cli.el | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/ngnk-cli.el b/ngnk-cli.el index 0d0a1c8..85aa3db 100644 --- a/ngnk-cli.el +++ b/ngnk-cli.el @@ -71,6 +71,8 @@ (defun ngnk-remove-marker (s) (cl-remove ?\a s)) +(defvar ngnk-buffer-limit) + (defun ngnk-preout-filter (s) "When ngnk-max-output-length is > 0, limit output to ngnk-max-output-length lines" (progn @@ -128,9 +130,12 @@ (defun ngnk-send-string (s) (comint-send-string (ngnk-buffer-proc) s)) -(defun ngnk-send-region (point mark) - (interactive "^r") - "Send region to running ngn/k process" +(defun ngnk-send (point mark) + "Send active region or current line to running ngn/k process" + (interactive + (if (use-region-p) + (list (region-beginning) (use-region-end)) + (list (pos-bol) (pos-eol)))) (let* ((s (concat (buffer-substring point mark) "\n")) (idx (cl-search "\n" s)) (ret "")) @@ -141,20 +146,13 @@ (setq s (substring s (+ 1 idx) (length s))) (setq idx (cl-search "\n" s))) (setq s (concat ret s)) - (let ((end (- (length s) 1)) - (chr nil)) - (while (or (eq (setq chr (aref s end)) ?\n) - (eq (setq chr (aref s end)) ?\a)) - (setq end (- end 1))) + (let ((end (1- (length s)))) + (while (or (eq (aref s end) ?\n) (eq (aref s end) ?\a)) + (setq end (1- end))) (setq s (concat (substring s 0 (+ end 1)) "\n"))))) (message s) (ngnk-send-string s))) -(defun ngnk-send-line-at-point (point) - (interactive "p") - (ngnk-send-region (point-at-bol) (point-at-eol)) - ) - (defun ngnk-attach-proc (buffer) "Attach ngn/k process to buffer" (let* ((ngnk-program ngnk-cli-file-path)) From f45cfe62adc99709ea3ec07f017f82adb4b2007b Mon Sep 17 00:00:00 2001 From: Omar Antolin Camarena Date: Sat, 7 Dec 2024 23:27:00 -0600 Subject: [PATCH 3/4] Add keybinding to send region; don't mess with tab settings --- ngnk-mode.el | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/ngnk-mode.el b/ngnk-mode.el index 4df2859..6dde674 100644 --- a/ngnk-mode.el +++ b/ngnk-mode.el @@ -28,6 +28,13 @@ :group 'languages :prefix "ngnk-") +;;;###autoload +(define-derived-mode ngnk-mode prog-mode "Ngnk" + "Major mode for editing ngn/k code. + +\\" + nil "Ngnk") + (defvar ngnk-mode-syntax-table (let ((table (make-syntax-table))) (modify-syntax-entry ?\" "\"" table) @@ -52,15 +59,7 @@ table) "Syntax table for `ngnk-mode'.") -;;;###autoload -(define-derived-mode ngnk-mode text-mode "Ngnk" - "Major mode for editing ngn/k code. - -\\" - nil "Ngnk" - (set (make-local-variable 'indent-tabs-mode) nil) - (set (make-local-variable 'tabs-width) 2)) - +(keymap-set ngnk-mode-map "C-c C-c" 'ngnk-send) (provide 'ngnk-mode) ;;; ngnk-mode.el ends here From 94b528d73e0d52cf07ca0d7948fd15420227cacc Mon Sep 17 00:00:00 2001 From: Omar Antolin Camarena Date: Thu, 12 Dec 2024 23:50:50 -0600 Subject: [PATCH 4/4] Fix bug when evaluated code contains % --- ngnk-cli.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ngnk-cli.el b/ngnk-cli.el index 85aa3db..e368fa2 100644 --- a/ngnk-cli.el +++ b/ngnk-cli.el @@ -150,7 +150,7 @@ (while (or (eq (aref s end) ?\n) (eq (aref s end) ?\a)) (setq end (1- end))) (setq s (concat (substring s 0 (+ end 1)) "\n"))))) - (message s) + (message "%s" (string-trim-right s)) (ngnk-send-string s))) (defun ngnk-attach-proc (buffer)