summaryrefslogtreecommitdiffstats
path: root/conkeror/.conkerorrc/ext_restore.js
diff options
context:
space:
mode:
Diffstat (limited to 'conkeror/.conkerorrc/ext_restore.js')
-rw-r--r--conkeror/.conkerorrc/ext_restore.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/conkeror/.conkerorrc/ext_restore.js b/conkeror/.conkerorrc/ext_restore.js
new file mode 100644
index 0000000..39b125e
--- /dev/null
+++ b/conkeror/.conkerorrc/ext_restore.js
@@ -0,0 +1,33 @@
+/// From http://conkeror.org/Tips#Restore_Killed_Buffer_Url
+// I think by the time kill_buffer_hook runs the buffer is gone so I
+// patch kill_buffer
+
+var kill_buffer_original = kill_buffer_original || kill_buffer;
+
+var killed_buffer_urls = [];
+
+kill_buffer = function (buffer, force) {
+ if (buffer.display_uri_string) {
+ killed_buffer_urls.push(buffer.display_uri_string);
+ }
+
+ kill_buffer_original(buffer,force);
+};
+
+interactive("restore-killed-buffer-url", "Loads url from a previously killed buffer",
+ function restore_killed_buffer_url (I) {
+ if (killed_buffer_urls.length !== 0) {
+ var url = yield I.minibuffer.read(
+ $prompt = "Restore killed url:",
+ $completer = all_word_completer($completions = killed_buffer_urls),
+ $default_completion = killed_buffer_urls[killed_buffer_urls.length - 1],
+ $auto_complete = "url",
+ $auto_complete_initial = true,
+ $auto_complete_delay = 0,
+ $match_required);
+
+ load_url_in_new_buffer(url);
+ } else {
+ I.window.minibuffer.message("No killed buffer urls");
+ }
+ });