summary refs log tree commit diff
path: root/emacs/elisp
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-03-23 19:23:34 -0700
committerFranck Cuny <franck@fcuny.net>2022-03-23 19:23:34 -0700
commit52023b34601a9afe4fd67bbb2f0b8c17b3b64d65 (patch)
tree993903dcb044f37b32c0cd8250cadba55ebaa952 /emacs/elisp
parentinit: simplify loading libraries (diff)
downloademacs.d-52023b34601a9afe4fd67bbb2f0b8c17b3b64d65.tar.gz
functions: move custom functions to libraries
Diffstat (limited to 'emacs/elisp')
-rw-r--r--emacs/elisp/my-buffers.el13
-rw-r--r--emacs/elisp/my-clipboard.el24
-rw-r--r--emacs/elisp/my-strings.el23
-rw-r--r--emacs/elisp/my-web.el21
4 files changed, 81 insertions, 0 deletions
diff --git a/emacs/elisp/my-buffers.el b/emacs/elisp/my-buffers.el
new file mode 100644
index 0000000..d5c07c5
--- /dev/null
+++ b/emacs/elisp/my-buffers.el
@@ -0,0 +1,13 @@
+;;; my-buffers.el --- Functions related to buffer manipulations
+;;; Commentary:
+;;; Code:
+
+(defun my/copy-whole-buffer ()
+  "Select the buffer and copy it."
+  (interactive)
+  (save-excursion
+    (mark-whole-buffer)
+    (copy-region-as-kill 1 (buffer-size))))
+
+(provide 'my-buffers)
+;;; my-buffers.el ends here
diff --git a/emacs/elisp/my-clipboard.el b/emacs/elisp/my-clipboard.el
new file mode 100644
index 0000000..f0f3c01
--- /dev/null
+++ b/emacs/elisp/my-clipboard.el
@@ -0,0 +1,24 @@
+;;; my-clipboard.el --- Functions related to clipboard
+;;; Commentary:
+;;; Code:
+
+;; https://github.com/chongchonghe/emacs-dotfile/blob/f4f9ce5f586f224e2c83b118d471652d65d38e8c/packages/simpleclip.el
+(defun my/clipboard-get-contents ()
+  "Return the contents of the system clipboard as a string."
+  (condition-case nil
+      (cond
+       ((fboundp 'ns-get-pasteboard)
+        (ns-get-pasteboard))
+       ((and (featurep 'mac)
+             (fboundp 'gui-get-selection))
+        (gui-get-selection 'CLIPBOARD 'NSStringPboardType))
+       ((and (featurep 'mac)
+             (fboundp 'x-get-selection))
+        (x-get-selection 'CLIPBOARD 'NSStringPboardType))
+       ((fboundp 'gui-get-selection)
+        (gui-get-selection 'CLIPBOARD (or x-select-request-type 'UTF8_STRING)))
+       (t
+        (error "Clipboard support not available")))))
+
+(provide 'my-clipboard)
+;;; my-clipboard.el ends here
diff --git a/emacs/elisp/my-strings.el b/emacs/elisp/my-strings.el
new file mode 100644
index 0000000..40ad888
--- /dev/null
+++ b/emacs/elisp/my-strings.el
@@ -0,0 +1,23 @@
+;;; my-strings.el --- Functions related to strings manipulation
+;;; Commentary:
+;;; Code:
+
+(defun my/remove-sql-columns ()
+  "Remove \"|\" from strings.
+This is useful when I want to drop the column separator from some
+text coming from a mysql query."
+  (interactive)
+  (while (search-forward-regexp "\s?|\s?")
+    (replace-match " ")))
+
+;; from https://karl-voit.at/2014/08/10/bookmarks-with-orgmode/
+(defun my/string-replace (this withthat in)
+  "Replace THIS with WITHTHAT' in the string IN."
+  (with-temp-buffer
+    (insert in)
+    (goto-char (point-min))
+    (replace-string this withthat)
+    (buffer-substring (point-min) (point-max))))
+
+(provide 'my-strings)
+;;; my-strings.el ends here
diff --git a/emacs/elisp/my-web.el b/emacs/elisp/my-web.el
new file mode 100644
index 0000000..12e5c97
--- /dev/null
+++ b/emacs/elisp/my-web.el
@@ -0,0 +1,21 @@
+;;; my-web.el --- Functions related to web interactions
+;;; Commentary:
+;;; Code:
+
+(require 'my-strings)
+
+(defun fcuny/get-page-title (url)
+  "Make URL into an 'org-mode' link."
+  (let ((title))
+    (with-current-buffer (url-retrieve-synchronously url)
+      (goto-char (point-min))
+      (re-search-forward "<title>\\([^<]*\\)</title>" nil t 1)
+      (setq title (match-string 1))
+      (goto-char (point-min))
+      (re-search-forward "charset=\\([-0-9a-zA-Z]*\\)" nil t 1)
+      (my/string-replace "&nbsp;" " "
+                         (decode-coding-string title 'utf-8))
+      (concat "[[" url "][" title "]]"))))
+
+(provide 'my-web)
+;;; my-web.el ends here