Skip to content

Instantly share code, notes, and snippets.

View fuxialexander's full-sized avatar

Xi "Alexander" Fu fuxialexander

View GitHub Profile
@fuxialexander
fuxialexander / helm-child-frame-display.el
Last active March 29, 2018 05:41
Override helm function to use child-frame
(defun my-helm-display-child-frame (buffer &optional resume)
"Display `helm-buffer' in a separate frame.
Function suitable for `helm-display-function',
`helm-completion-in-region-display-function'
and/or `helm-show-completion-default-display-function'.
See `helm-display-buffer-height' and `helm-display-buffer-width' to
configure frame size."
(if (not (display-graphic-p))
@fuxialexander
fuxialexander / org-date-hack.el
Last active April 1, 2018 16:47
org-date hack
(setq org-ts-regexp-both-braket "\\([[<]\\)\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]
\n>]*?\\)\\([]>]\\)")
(defun *org-set-font-lock-defaults ()
"Set font lock defaults for the current buffer."
(let* ((em org-fontify-emphasized-text)
(lk org-highlight-links)
(org-font-lock-extra-keywords
(list
;; Call the hook
'(org-font-lock-hook)
@fuxialexander
fuxialexander / katex.el
Last active April 12, 2018 17:03
Instant latex preview in org mode
;; (org-inside-LaTeX-fragment-p)
(require 'xwidget)
(defvar katex-url "file:///PATH/TO/katex.html?")
(defvar katex-buffer nil)
(defvar katex-xw nil)
(setq katex-buffer (get-buffer-create "*xwidget webkit: Katex *"))
(defun org-katex-latex-fragment-maybe (&optional arg)
"TODO"
(if (org-inside-LaTeX-fragment-p)
@fuxialexander
fuxialexander / my-org-refile-get-targets.el
Created August 18, 2017 17:17
Modify (org-refile-get-targets) for fontification
(defun org-refile-get-targets (&optional default-buffer)
"Produce a table with refile targets."
(let ((case-fold-search nil)
;; otherwise org confuses "TODO" as a kw and "Todo" as a word
(entries (or org-refile-targets '((nil . (:level . 1)))))
targets tgs files desc descre)
(message "Getting targets...")
(with-current-buffer (or default-buffer (current-buffer))
(dolist (entry entries)
(setq files (car entry) desc (cdr entry))
(set! :popup "^\\(?: ?\\*\\)?magit.*: "
'((slot . -1) (side . right) (size . 80))
'((select . t) (quit . nil)))
(set! :popup "^\\*magithub-dash\\*"
'((slot . -3) (side . right) (window-height . 20))
'((select . t)))
(def-modeline-segment! magithub-buffer-info-simple
"striped magithub buffer name"
(substring (buffer-name) 11 -1))
@fuxialexander
fuxialexander / pdumper_master.patch
Created June 13, 2018 13:20
pdumer patch against emacs master
From cfcd0ab61c8c84d41095a9b08fbf588f7c8c391c Mon Sep 17 00:00:00 2001
From: fuxialexander <fuxialexander@gmail.com>
Date: Sat, 26 May 2018 22:45:28 +0800
Subject: [PATCH] Add: add pdumper: Squashed commit of the following:
commit faaaeceec4a9f199942bd35b1b83e0345c828d82
Author: Alan Third <alan@idiocy.org>
Date: Sat Mar 31 10:49:59 2018 +0100
Copy pdmp file to Emacs.app
@fuxialexander
fuxialexander / ob-ipython-hack.el
Created April 11, 2018 01:35
ob-ipython remote kernel hack
(use-package ob-ipython
:after (org ob)
:config (setq ob-ipython-resources-dir ".ob-ipython-resrc/")
(defvar jupyter-local-runtime-dir (substring (shell-command-to-string (concat "jupyter --runtime-dir")) 0 -1))
(defun ob-ipython-generate-local-path-from-remote (session host params)
"Copy remote config to local, start a jupyter console to generate a new one."
(let* ((runtime-dir (substring (shell-command-to-string
(concat "ssh " host " jupyter --runtime-dir")) 0 -1))
(runtime-file (concat runtime-dir "/" "kernel-" session ".json"))
(tramp-path (concat "/ssh:" host ":" runtime-file))
@fuxialexander
fuxialexander / 0_all_webkit.patch
Last active October 7, 2018 08:46
One-stop patch for Emacs NS-port xwidget (by @veshboo)
From 2063aad860376419d899d1ae06ccb7daf56ef9ef Mon Sep 17 00:00:00 2001
From: Jaesup Kwak <veshboo@gmail.com>
Date: Mon, 4 Dec 2017 21:23:19 +0900
Subject: [PATCH] Support xwidget webkit for macOS X
Add xwidget webkit support for macOS X / NS Cocoa and accompanying
changes.
Squash changes for comments from Alan Third in Bug#29565.
@fuxialexander
fuxialexander / new_xwidget_patch.patch
Last active August 12, 2019 15:42
New xwidget patch against emacs HEAD 2019-07-26
diff --git a/src/nsxwidget.h b/src/nsxwidget.h
new file mode 100644
index 0000000000..6af5fe5a4d
--- /dev/null
+++ b/src/nsxwidget.h
@@ -0,0 +1,80 @@
+/* Header for NS Cocoa part of xwidget and webkit widget.
+
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
+
tell application "Skim"
set thedoc to the front document
set anno to the active note of thedoc
set newtext to text of anno
set startpoint to (offset of "org-id:{" in newtext) + 8
set endpoint to (offset of "}:org-id" in newtext) - 1
if (startpoint - 8 is not equal to endpoint + 1) and (endpoint + 1 is not 0) then
set orgid to characters startpoint thru endpoint of newtext as string
do shell script "/usr/local/bin/emacsclient -n -e \"(progn (org-id-goto \\\"" & orgid & "\\\") (x-focus-frame (selected-frame)) (evil-exit-visual-state))\""
end if