[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/firefox-javascript-repl f601354463 08/24: Show JavaScri
From: |
Thomas Fitzsimmons |
Subject: |
[elpa] externals/firefox-javascript-repl f601354463 08/24: Show JavaScript quirk on startup |
Date: |
Thu, 1 Jun 2023 00:41:51 -0400 (EDT) |
branch: externals/firefox-javascript-repl
commit f6013544631a3dc8d6e2c708c72bf180380388b8
Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Commit: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Show JavaScript quirk on startup
* firefox-javascript-repl.el (firefox-javascript-repl--directory):
New constant.
(firefox-javascript-repl--show-quirk): New function.
(firefox-javascript-repl-mode): Show quirk.
---
.gitmodules | 3 +++
firefox-javascript-repl.el | 36 +++++++++++++++++++++++++++++++-----
wtfjs | 1 +
3 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000..02c249c827
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "wtfjs"]
+ path = wtfjs
+ url = https://github.com/denysdovhan/wtfjs
diff --git a/firefox-javascript-repl.el b/firefox-javascript-repl.el
index 888586573e..e20602b772 100644
--- a/firefox-javascript-repl.el
+++ b/firefox-javascript-repl.el
@@ -65,6 +65,36 @@ ARGUMENTS will be used for FORMAT, like `messages'."
(replace-regexp-in-string "\"" "\\\\\"" string)
fjrepl--console-actor)))
+(defconst firefox-javascript-repl--directory
+ (file-name-directory load-file-name)
+ "The directory in which `firefox-javascript-repl.el' is installed.")
+
+(defun firefox-javascript-repl--show-quirk ()
+ "Show a fun JavaScript quirk in the minibuffer."
+ (let ((quirk
+ (with-temp-buffer
+ (insert-file-contents (expand-file-name
+ "wtfjs/README.md"
+ firefox-javascript-repl--directory))
+ (goto-char (point-min))
+ (let* ((regexp "^```js\n")
+ (count (count-matches regexp)))
+ (re-search-forward regexp nil t (1+ (random count)))
+ (let ((start (point)))
+ (re-search-forward "^```" nil t)
+ (beginning-of-line)
+ (backward-char)
+ (buffer-substring start (point)))))))
+ (let ((minibuffer-message-timeout 3))
+ (minibuffer-message
+ (with-temp-buffer (js-mode)
+ (insert "// JavaScript quirk of the day:\n")
+ (insert (truncate-string-to-width quirk 100))
+ (insert "\n")
+ (insert "// Happy Hacking!")
+ (font-lock-ensure (point-min) (point-max))
+ (buffer-string))))))
+
(define-derived-mode firefox-javascript-repl-mode comint-mode "FJ"
"Major mode for interactively evaluating JavaScript expressions in Firefox."
:syntax-table js-mode-syntax-table
@@ -167,11 +197,7 @@ ARGUMENTS will be used for FORMAT, like `messages'."
(setq-local comint-indirect-setup-function 'js-mode)
(comint-indirect-buffer)
(comint-fontify-input-mode)
- (minibuffer-message
- (with-temp-buffer (js-mode)
- (insert "// JavaScript tip of the day:\n")
- (font-lock-ensure (point-min) (point-max))
- (buffer-string)))))
+ (firefox-javascript-repl--show-quirk)))
(defun fjrepl--create-profile-directory ()
"Create a profile directory."
diff --git a/wtfjs b/wtfjs
new file mode 160000
index 0000000000..6f832d9874
--- /dev/null
+++ b/wtfjs
@@ -0,0 +1 @@
+Subproject commit 6f832d987472b30e1e3ede82de22e517af69e40b
- [elpa] branch externals/firefox-javascript-repl created (now 7b288e2dba), Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 18fa0a257b 07/24: Enable font lock, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl f601354463 08/24: Show JavaScript quirk on startup,
Thomas Fitzsimmons <=
- [elpa] externals/firefox-javascript-repl 7c8f747bba 10/24: Add a JavaScript example with which to test, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 76fe78566b 11/24: Polish process management, debugging and naming, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 075bd87281 15/24: Adjust commentary wording, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 2016b0eafa 22/24: Make firefox-javascript-repl--mode private, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl c2a0f7f44a 04/24: Get basic REPL working, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl f0ed5fbf81 03/24: Get ready for asynchronous JavaScript evaluation, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 77c9907e3e 18/24: Move usage to start of commentary, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 1e0638d411 17/24: Mention throwaway profile in commentary, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 7b288e2dba 24/24: Bump version to 0.9.0, Thomas Fitzsimmons, 2023/06/01
- [elpa] externals/firefox-javascript-repl 7bed24ae8e 23/24: Ignore errors when showing quirk, Thomas Fitzsimmons, 2023/06/01