GithubHelp home page GithubHelp logo

Comments (13)

kostafey avatar kostafey commented on June 28, 2024

Database-connection info is buffer-local. So, to get a possibility to eval SQL statements from
any new buffer, you should run M-x ejc-connect inside this buffer. No new REPL will launch in this case (if started already), it will add only database connection information. Different buffers can connect to different databases (even different database types). All connection-related data (e.g. database structure cache) shared between buffers with the same connection.

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

But it have to start a new REPL for every new opened source blocks everytime. This is not convinient. I also tried ejc-connect-existing-repl. It create a sibling REPL or something else. But it can't use [C-c C-c] neither. I think I only need to create one new REPL, and use ejc-connect-existing-repl for all new buffers.
I checked the ejc-connect source code, I think might can extract the set buffer local steps into a single command, so that user can set those info in any new buffer to work like ejc-connect.

from ejc-sql.

kostafey avatar kostafey commented on June 28, 2024

But it have to start a new REPL for every new opened source blocks everytime.

You have not start new REPL for every new source block. Once again. If you connected to nREPL with ejc-sql project (your Emacs has buffer like *nrepl-server...ejc-sql...*), than any time you run ejc-connect, no new nREPL should be started. It will add buffer-local vars with database-connection info to this buffer. That's all. If not (and you see starting new REPL every time), this is either ejc-sql bug, or you are doing something unexpected, so, please, describe it.

I think might can extract the set buffer local steps into a single command, so that user can set those info in any new buffer to work like ejc-connect.

It's possible and rather simple. As far as I understand, you want to keep database-connection info in some org-mode buffer and automatically copy it to any source code dedicated buffers (via org-edit-special). Am I right?

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

As far as I understand, you want to keep database-connection info in some org-mode buffer and automatically copy it to any source code dedicated buffers (via org-edit-special). Am I right?

Yes, that's what I want.

About the ejc-connect. I will try again. Thanks for your explaination. This sentence is clear than upper comment.

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

I tested, ejc-connect did link to existing database-connection. This is great.

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

Oops, close issue by accidently.
I can use [C-c C-c] now, but it does not gives out result, it seems always running:

image

You can see the major-mode indicator in mode-line. The \ backslash symbol is keep running.

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

I dive into the source code of ejc-eval-user-sql-at-point with edebug.
And invoke (ejc-eval-user-sql-at-point :sync) in buffer. It returns:

"{:runner #future[{:status :pending, :val nil} 0x518e1d76], :start-time (23524 55318 576661 903000), :stmt #object[com.mysql.jdbc.JDBC4PreparedStatement 0x1f1e78e7 \"com.mysql.jdbc.JDBC4PreparedStatement@1f1e78e7: statement has been closed, no further internal information available\"], :conn #object[com.mysql.jdbc.JDBC4Connection 0x64ef8c23 \"com.mysql.jdbc.JDBC4Connection@64ef8c23\"]}"

NOTE: the test table is very small which has only one record.

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

@kostafey Hi, any update on this issue?

from ejc-sql.

kostafey avatar kostafey commented on June 28, 2024

@stardiviner Ok, lest figure out what we expect here.
First please, update ejc-sql, and try with a new version from master.

  1. Problem - infinite evaluation run of expression:
use testdb;
show tables;

Unfortunately, I can't reproduce it at all (tested with H2 and MySQL databases).
Any time I receive tables list as expected.
Could you confirm that problem persists for your MySQL database?

  1. Use ejc-sql for block dedicated buffer from org-mode buffer.

I can offer the following behaviour:

  • run ejc-connet in you org-mode buffer as in sql-mode buffer
  • the major-mode for the current org-mode buffer persists (as org-mode)
  • new minor-mode (ejc-sql-mode) will be added to this org-mode buffer
  • any time you run C-c ' (org-edit-special) you will get new buffer with this minor-mode (ejc-sql-mode) and all connection-related data.

Is it acceptable behavior?

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

About the first problem, I tried the latest version code. I pull from your master branch. The latest commit is 17b633f7308d1f814eec141f46189e70effb3a5d

Here is my config:

(use-package ejc-sql
  ;; :ensure t
  :load-path "~/Code/Emacs/ejc-sql"
  :load (ejc-interaction)
  :commands (ejc-connect ejc-connect-existing-repl ejc-sql-mode)
  :config
  (defun my-ejc-sql-ac-setup ()
    (ejc-sql-mode 1)
    (auto-complete-mode 1)
    (ejc-ac-setup))
  (add-hook 'sql-mode-hook #'my-ejc-sql-ac-setup)

  ;; (advice-add 'ejc-connect :before
  ;;             #'(lambda (connection-name)
  ;;                 (switch-to-buffer-other-window (format "*ejc-sql %s*" connection-name))))
  
  (ejc-create-connection
   "PostgreSQL-db-postgres"
   :classpath "~/.m2/repository/postgresql/postgresql/9.3-1102.jdbc41/postgresql-9.3-1102.jdbc41.jar"
   :dbtype "postgresql"
   :host "localhost"
   :port "5432"
   :user "postgres"
   :password "password"
   :dbname "postgres")

  (ejc-create-connection
   "MariaDB-db-test"
   :classpath "~/.m2/repository/org/mariadb/jdbc/mariadb-java-client/1.1.7/mariadb-java-client-1.1.7.jar"
   :dbtype "mysql" ; TODO: "mariadb"?
   :host "localhost"
   :port "3306"
   :user "root"
   :password "password"
   :dbname "test")
  
  (ejc-create-connection
   "MySQL-db-test"
   :classpath "~/.m2/repository/mysql/mysql-connector-java/5.1.32/mysql-connector-java-5.1.32.jar"
   :dbtype "mysql"
   :host "localhost"
   :port "3306"
   :user "root"
   :password "password"
   :dbname "test")
  )

And here is my Org file contains steps of reproducing my problem.
I combined two "MySQL/MariaDB" and "PostgreSQL" reproduce steps into one file.
https://gist.github.com/stardiviner/7243e6c4a6ad4843304e796149f32c04

About 2:

Use ejc-sql for block dedicated buffer from org-mode buffer.

I can offer the following behaviour:

run ejc-connet in you org-mode buffer as in sql-mode buffer

in your org-mode buffer, Do you mean the org-mode buffer, or the opened source block dedicate buffer? If org-mode buffer. I think it's the best. But I tested with latest code. After execute command ejc-connect. It still will make major mode org-mode into sql-mode.

the major-mode for the current org-mode buffer persists (as org-mode)
new minor-mode (ejc-sql-mode) will be added to this org-mode buffer
any time you run C-c ' (org-edit-special) you will get new buffer with this minor-mode (ejc-sql-mode) and all connection-related data.

Is it acceptable behavior?

This is what I want. That will be great!!

from ejc-sql.

kostafey avatar kostafey commented on June 28, 2024
  1. Problem - infinite evaluation run of expression.
    I can't reproduce it anyway, BUT...
    I've made some investigation of it. There are 2 probable cases leads to "infinite" evaluation run:
  • An error when Clojure calls to Elisp (to notice Emacs about the end of SQL query evaluation).
  • An error in Java SQL query evaluation thread itself.

So, please update ejc-sq and clomacs packages and try again. You should never fail into
"infinite" evaluation run and see the real problem description in minibuffer, *Messages* and *ejc-sql-output* buffers (depends on the problem origin).

  1. Problem - Use ejc-sql for org-mode.
    It's implemented as discussed above. Furthermore, you can evaluate SQL queries from code snippets
    inside org-mode buffer directly.
    For the detailed description, please read this section of README: https://github.com/kostafey/ejc-sql#use-with-org-mode

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

I have tested the new update, this is great! Thanks for your great work!

I tested following:

  • the org-edit-special ([C-c ']) worked as in ordinary sql-mode buffer.
  • [M-x ejc-connect] works in org-mode buffers whcih persistent the org-mode majro mode.
  • [C-c C-c] to eval sql source block code snippet does not work.

Here is the error backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  insert-file-contents(nil)
  (progn (insert-file-contents ejc-result-file-path) (buffer-string))
  (unwind-protect (progn (insert-file-contents ejc-result-file-path) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert-file-contents ejc-result-file-path) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert-file-contents ejc-result-file-path) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (if ejc-org-mode-show-results (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert-file-contents ejc-result-file-path) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))
  (let* ((beg (save-excursion (goto-char (nth 5 (org-babel-get-src-block-info))) (end-of-line) (right-char 1) (point))) (end (save-excursion (goto-char beg) (+ beg (length body) (skip-chars-forward "\011 "))))) (ejc-eval-user-sql-at-point :beg beg :end end :sync ejc-org-mode-show-results :display-result (not ejc-org-mode-show-results)) (if ejc-org-mode-show-results (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert-file-contents ejc-result-file-path) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))))
  org-babel-execute:sql("CREATE TABLE product (\n  id    INT UNSIGNED  NOT NULL AUTO_INCREMENT,\n  name  VARCHAR(30)   NOT NULL,\n  price DECIMAL(7,2)\n);" ((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . value) (:results . "replace") (:exports . "") (:session . "none") (:noweb . "no") (:hlines . "no") (:tangle . "no") (:comments . "link") (:cache . "yes") (:eval . "never-export")))
  funcall(org-babel-execute:sql "CREATE TABLE product (\n  id    INT UNSIGNED  NOT NULL AUTO_INCREMENT,\n  name  VARCHAR(30)   NOT NULL,\n  price DECIMAL(7,2)\n);" ((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . value) (:results . "replace") (:exports . "") (:session . "none") (:noweb . "no") (:hlines . "no") (:tangle . "no") (:comments . "link") (:cache . "yes") (:eval . "never-export")))
  (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))
  (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r)))
  (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang)))
  (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result)
  (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result)))
  (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (string= "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result))))
  (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babel-process-params (car c)))) (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (string= "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result)))))
  (if (org-babel-check-evaluate info) (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babel-process-params (car c)))) (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (string= "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result))))))
  (let* ((org-babel-current-src-block-location (or org-babel-current-src-block-location (nth 5 info) (org-babel-where-is-src-block-head))) (info (if info (copy-tree info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 info))) (setcar c (org-babel-merge-params (car c) params))) (if (org-babel-check-evaluate info) (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babel-process-params (car c)))) (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (string= "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result)))))))
  (closure (*this* org-babel-confirm-evaluate-answer-no org-src-preserve-indentation org-src-lang-modes org-link-file-path-type org-edit-src-content-indentation org-babel-library-of-babel t) (&optional arg info params) "Execute the current source code block.\nInsert the results of execution into the buffer.  Source code\nexecution and the collection and formatting of results can be\ncontrolled through a variety of header arguments.\n\nWith prefix argument ARG, force re-execution even if an existing\nresult cached in the buffer would otherwise have been returned.\n\nOptionally supply a value for INFO in the form returned by\n`org-babel-get-src-block-info'.\n\nOptionally supply a value for PARAMS which will be merged with\nthe header arguments specified at the front of the source code\nblock." (interactive) (let* ((org-babel-current-src-block-location (or org-babel-current-src-block-location (nth 5 info) (org-babel-where-is-src-block-head))) (info (if info (copy-tree info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 info))) (setcar c (org-babel-merge-params (car c) params))) (if (org-babel-check-evaluate info) (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babel-process-params (car c)))) (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (string= "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result))))))))(nil ("sql" "CREATE TABLE product (\n  id    INT UNSIGNED  NOT NULL AUTO_INCREMENT,\n  name  VARCHAR(30)   NOT NULL,\n  price DECIMAL(7,2)\n);" ((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . value) (:results . "replace") (:exports . "") (:eval . "never-export") (:cache . "yes") (:comments . "link") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:session . "none")) "" nil 8261 "# (ref:%s)") nil)
  ob-async-org-babel-execute-src-block((closure (*this* org-babel-confirm-evaluate-answer-no org-src-preserve-indentation org-src-lang-modes org-link-file-path-type org-edit-src-content-indentation org-babel-library-of-babel t) (&optional arg info params) "Execute the current source code block.\nInsert the results of execution into the buffer.  Source code\nexecution and the collection and formatting of results can be\ncontrolled through a variety of header arguments.\n\nWith prefix argument ARG, force re-execution even if an existing\nresult cached in the buffer would otherwise have been returned.\n\nOptionally supply a value for INFO in the form returned by\n`org-babel-get-src-block-info'.\n\nOptionally supply a value for PARAMS which will be merged with\nthe header arguments specified at the front of the source code\nblock." (interactive) (let* ((org-babel-current-src-block-location (or org-babel-current-src-block-location (nth 5 info) (org-babel-where-is-src-block-head))) (info (if info (copy-tree info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 info))) (setcar c (org-babel-merge-params (car c) params))) (if (org-babel-check-evaluate info) (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babel-process-params (car c)))) (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (string= "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result)))))))) nil ("sql" "CREATE TABLE product (\n  id    INT UNSIGNED  NOT NULL AUTO_INCREMENT,\n  name  VARCHAR(30)   NOT NULL,\n  price DECIMAL(7,2)\n);" ((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . value) (:results . "replace") (:exports . "") (:eval . "never-export") (:cache . "yes") (:comments . "link") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:session . "none")) "" nil 8261 "# (ref:%s)"))
  apply(ob-async-org-babel-execute-src-block (closure (*this* org-babel-confirm-evaluate-answer-no org-src-preserve-indentation org-src-lang-modes org-link-file-path-type org-edit-src-content-indentation org-babel-library-of-babel t) (&optional arg info params) "Execute the current source code block.\nInsert the results of execution into the buffer.  Source code\nexecution and the collection and formatting of results can be\ncontrolled through a variety of header arguments.\n\nWith prefix argument ARG, force re-execution even if an existing\nresult cached in the buffer would otherwise have been returned.\n\nOptionally supply a value for INFO in the form returned by\n`org-babel-get-src-block-info'.\n\nOptionally supply a value for PARAMS which will be merged with\nthe header arguments specified at the front of the source code\nblock." (interactive) (let* ((org-babel-current-src-block-location (or org-babel-current-src-block-location (nth 5 info) (org-babel-where-is-src-block-head))) (info (if info (copy-tree info) (org-babel-get-src-block-info)))) (let* ((c (nthcdr 2 info))) (setcar c (org-babel-merge-params (car c) params))) (if (org-babel-check-evaluate info) (progn (let* ((c (nthcdr 2 info))) (setcar c (org-babel-process-params (car c)))) (let* ((params (nth 2 info)) (cache (let ((c (cdr (assq :cache params)))) (and (not arg) c (string= "yes" c)))) (new-hash (and cache (org-babel-sha1-hash info :eval))) (old-hash (and cache (org-babel-current-result-hash))) (current-cache (and new-hash (equal new-hash old-hash)))) (cond (current-cache (save-excursion (goto-char (org-babel-where-is-src-block-result nil info)) (forward-line) (skip-chars-forward " \011") (let ((result (org-babel-read-result))) (message (replace-regexp-in-string "%" "%%" (format "%S" result))) result))) ((org-babel-confirm-evaluate info) (let* ((lang (nth 0 info)) (result-params (cdr (assq :result-params params))) (body (let ((coderef (nth 6 info)) (expand (if (org-babel-noweb-p params :eval) (org-babel-expand-noweb-references info) (nth 1 info)))) (if (not coderef) expand (replace-regexp-in-string (org-src-coderef-regexp coderef) "" expand nil nil 1)))) (dir (cdr (assq :dir params))) (default-directory (or (and dir (file-name-as-directory (expand-file-name dir))) default-directory)) (cmd (intern (concat "org-babel-execute:" lang))) result) (if (fboundp cmd) nil (error "No org-babel-execute function for %s!" lang)) (message "executing %s code block%s..." (capitalize lang) (let ((name (nth 4 info))) (if name (format " (%s)" name) ""))) (if (member "none" result-params) (progn (funcall cmd body params) (message "result silenced")) (setq result (let ((r (funcall cmd body params))) (if (and (eq (cdr (assq :result-type params)) 'value) (or (member "vector" result-params) (member "table" result-params)) (not (listp r))) (list (list r)) r))) (let ((file (and (member "file" result-params) (cdr (assq :file params))))) (if file (progn (if (and result (not (or (member "link" result-params) (member "graphics" result-params)))) (progn (let ((temp-file file) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (insert (org-babel-format-result result (cdr (assq :sep params))))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (setq result file))) (let ((post (cdr (assq :post params)))) (if post (progn (let ((*this* (if (not file) result (org-babel-result-to-file file (let ((desc (assq :file-desc params))) (and desc (or (cdr desc) result))))))) (setq result (org-babel-ref-resolve post)) (if file (progn (setq result-params (remove "file" result-params)))))))) (org-babel-insert-result result result-params info new-hash lang))) (run-hooks 'org-babel-after-execute-hook) result)))))))) (nil ("sql" "CREATE TABLE product (\n  id    INT UNSIGNED  NOT NULL AUTO_INCREMENT,\n  name  VARCHAR(30)   NOT NULL,\n  price DECIMAL(7,2)\n);" ((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . value) (:results . "replace") (:exports . "") (:eval . "never-export") (:cache . "yes") (:comments . "link") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:session . "none")) "" nil 8261 "# (ref:%s)")))
  org-babel-execute-src-block(nil ("sql" "CREATE TABLE product (\n  id    INT UNSIGNED  NOT NULL AUTO_INCREMENT,\n  name  VARCHAR(30)   NOT NULL,\n  price DECIMAL(7,2)\n);" ((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . value) (:results . "replace") (:exports . "") (:eval . "never-export") (:cache . "yes") (:comments . "link") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:session . "none")) "" nil 8261 "# (ref:%s)"))
  (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-eval-wipe-error-buffer) (org-babel-execute-src-block current-prefix-arg (org-babel-get-src-block-info nil context)))
  (cond ((memq type '(src-block inline-src-block)) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-eval-wipe-error-buffer) (org-babel-execute-src-block current-prefix-arg (org-babel-get-src-block-info nil context)))) ((org-match-line "[ \011]*$") (or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here")))) ((memq type '(inline-babel-call babel-call)) (let ((info (org-babel-lob-get-info context))) (if info (progn (org-babel-execute-src-block nil info))))) ((eq type 'clock) (org-clock-update-time-maybe)) ((eq type 'dynamic-block) (save-excursion (goto-char (org-element-property :post-affiliated context)) (org-update-dblock))) ((eq type 'footnote-definition) (goto-char (org-element-property :post-affiliated context)) (call-interactively 'org-footnote-action)) ((eq type 'footnote-reference) (call-interactively (function org-footnote-action))) ((memq type '(inlinetask headline)) (save-excursion (goto-char (org-element-property :begin context)) (call-interactively (function org-set-tags-command)))) ((eq type 'item) (let* ((box (org-element-property :checkbox context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (parents (org-list-parents-alist struct)) (prevs (org-list-prevs-alist struct)) (orderedp (org-not-nil (org-entry-get nil "ORDERED")))) (org-list-set-checkbox (org-element-property :begin context) struct (cond ((equal arg '(16)) "[-]") ((and (not box) (equal arg '(4))) "[ ]") ((or (not box) (equal arg '(4))) nil) ((eq box 'on) "[ ]") (t "[X]"))) (org-list-struct-fix-ind struct parents 2) (org-list-struct-fix-item-end struct) (org-list-struct-fix-bul struct prevs) (org-list-struct-fix-ind struct parents) (let ((block-item (org-list-struct-fix-box struct parents prevs orderedp))) (if (and box (equal struct old-struct)) (if (equal arg '(16)) (message "Checkboxes already reset") (user-error "Cannot toggle this checkbox: %s" (if (eq box 'on) "all subitems checked" "unchecked subitems"))) (org-list-struct-apply-struct struct old-struct) (org-update-checkbox-count-maybe)) (if block-item (progn (message "Checkboxes were removed due to empty box at line %d" (org-current-line block-item))))))) ((eq type 'keyword) (let ((org-inhibit-startup-visibility-stuff t) (org-startup-align-all-tables nil)) (if (boundp 'org-table-coordinate-overlays) (progn (mapc (function delete-overlay) org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil))) (let* ((--invisible-types '(org-hide-block org-hide-drawer outline)) (--markers\? 'use-markers) (--data (mapcar (function (lambda (o) (let ((beg (overlay-start o)) (end (overlay-end o)) (type (overlay-get o 'invisible))) (and beg end (> end beg) (memq type --invisible-types) (list (if --markers\? (copy-marker beg) beg) (if --markers\? (copy-marker end t) end) type))))) (save-excursion (save-restriction (widen) (overlays-in (point-min) (point-max))))))) (unwind-protect (progn (org-mode-restart)) (save-excursion (save-restriction (widen) (let ((--dolist-tail-- --invisible-types)) (while --dolist-tail-- (let ((type (car --dolist-tail--))) (remove-overlays (point-min) (point-max) 'invisible type) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((--dolist-tail-- (delq nil --data))) (while --dolist-tail-- (let ((x206 (car --dolist-tail--))) (let* ((x207 (car x206)) (x208 (cdr x206)) (x209 (car x208)) (x210 (cdr x208)) (x211 (car x210)) (x212 (cdr x210))) (let ((type x211) (end x209) (beg x207)) (progn (org-flag-region beg end t type) (if --markers\? (progn (set-marker beg nil) (set-marker end nil)))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))))))) (message "Local setup has been refreshed")) ((eq type 'plain-list) (let* ((begin (org-element-property :contents-begin context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (first-box (save-excursion (goto-char begin) (looking-at org-list-full-item-re) (match-string-no-properties 3))) (new-box (cond ((equal arg '(16)) "[-]") ((equal arg '(4)) (if first-box nil "[ ]")) ((equal first-box "[X]") "[ ]") (t "[X]")))) (cond (arg (let ((--dolist-tail-- (org-list-get-all-items begin struct (org-list-prevs-alist struct)))) (while --dolist-tail-- (let ((pos (car --dolist-tail--))) (org-list-set-checkbox pos struct new-box) (setq --dolist-tail-- (cdr --dolist-tail--)))))) ((and first-box (eq (point) begin)) (org-list-set-checkbox begin struct new-box))) (if (equal (org-list-write-struct struct (org-list-parents-alist struct) old-struct) old-struct) (progn (message "Cannot update this checkbox"))) (org-update-checkbox-count-maybe))) ((memq type '(node-property property-drawer)) (call-interactively (function org-property-action))) ((eq type 'radio-target) (call-interactively (function org-update-radio-target-regexp))) ((eq type 'statistics-cookie) (call-interactively (function org-update-statistics-cookies))) ((memq type '(table-row table-cell table)) (if (eq (org-element-property :type context) 'table\.el) (message "%s" (substitute-command-keys "\\<org-mode-map>Use `\\[org-edit-special]' to edit table.el tables")) (if (or (eq type 'table) (and (eq type 'table-row) (= (point) (org-element-property :end context)))) (save-excursion (if (org-at-TBLFM-p) (progn (require 'org-table) (org-table-calc-current-TBLFM)) (goto-char (org-element-property :contents-begin context)) (org-call-with-arg 'org-table-recalculate (or arg t)) (orgtbl-send-table 'maybe))) (org-table-maybe-eval-formula) (cond (arg (call-interactively (function org-table-recalculate))) ((org-table-maybe-recalculate-line)) (t (org-table-align)))))) ((eq type 'timestamp) (funcall pcase-0)) ((eq type 'planning) (cond ((org-at-timestamp-p 'lax) (funcall pcase-0)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) nil) (t (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) ((null type) (cond ((org-at-heading-p) (call-interactively (function org-set-tags-command))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))
  (let* ((pcase-2 (function (lambda nil (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) (pcase-1 (function (lambda nil))) (pcase-0 (function (lambda nil (org-timestamp-change 0 'day))))) (cond ((memq type '(src-block inline-src-block)) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-eval-wipe-error-buffer) (org-babel-execute-src-block current-prefix-arg (org-babel-get-src-block-info nil context)))) ((org-match-line "[ \011]*$") (or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here")))) ((memq type '(inline-babel-call babel-call)) (let ((info (org-babel-lob-get-info context))) (if info (progn (org-babel-execute-src-block nil info))))) ((eq type 'clock) (org-clock-update-time-maybe)) ((eq type 'dynamic-block) (save-excursion (goto-char (org-element-property :post-affiliated context)) (org-update-dblock))) ((eq type 'footnote-definition) (goto-char (org-element-property :post-affiliated context)) (call-interactively 'org-footnote-action)) ((eq type 'footnote-reference) (call-interactively (function org-footnote-action))) ((memq type '(inlinetask headline)) (save-excursion (goto-char (org-element-property :begin context)) (call-interactively (function org-set-tags-command)))) ((eq type 'item) (let* ((box (org-element-property :checkbox context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (parents (org-list-parents-alist struct)) (prevs (org-list-prevs-alist struct)) (orderedp (org-not-nil (org-entry-get nil "ORDERED")))) (org-list-set-checkbox (org-element-property :begin context) struct (cond ((equal arg '(16)) "[-]") ((and (not box) (equal arg '(4))) "[ ]") ((or (not box) (equal arg '(4))) nil) ((eq box 'on) "[ ]") (t "[X]"))) (org-list-struct-fix-ind struct parents 2) (org-list-struct-fix-item-end struct) (org-list-struct-fix-bul struct prevs) (org-list-struct-fix-ind struct parents) (let ((block-item (org-list-struct-fix-box struct parents prevs orderedp))) (if (and box (equal struct old-struct)) (if (equal arg '(16)) (message "Checkboxes already reset") (user-error "Cannot toggle this checkbox: %s" (if (eq box 'on) "all subitems checked" "unchecked subitems"))) (org-list-struct-apply-struct struct old-struct) (org-update-checkbox-count-maybe)) (if block-item (progn (message "Checkboxes were removed due to empty box at line %d" (org-current-line block-item))))))) ((eq type 'keyword) (let ((org-inhibit-startup-visibility-stuff t) (org-startup-align-all-tables nil)) (if (boundp 'org-table-coordinate-overlays) (progn (mapc (function delete-overlay) org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil))) (let* ((--invisible-types '(org-hide-block org-hide-drawer outline)) (--markers\? 'use-markers) (--data (mapcar (function (lambda (o) (let ((beg (overlay-start o)) (end (overlay-end o)) (type (overlay-get o 'invisible))) (and beg end (> end beg) (memq type --invisible-types) (list (if --markers\? (copy-marker beg) beg) (if --markers\? (copy-marker end t) end) type))))) (save-excursion (save-restriction (widen) (overlays-in (point-min) (point-max))))))) (unwind-protect (progn (org-mode-restart)) (save-excursion (save-restriction (widen) (let ((--dolist-tail-- --invisible-types)) (while --dolist-tail-- (let ((type (car --dolist-tail--))) (remove-overlays (point-min) (point-max) 'invisible type) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((--dolist-tail-- (delq nil --data))) (while --dolist-tail-- (let ((x206 (car --dolist-tail--))) (let* ((x207 (car x206)) (x208 (cdr x206)) (x209 (car x208)) (x210 (cdr x208)) (x211 (car x210)) (x212 (cdr x210))) (let ((type x211) (end x209) (beg x207)) (progn (org-flag-region beg end t type) (if --markers\? (progn (set-marker beg nil) (set-marker end nil)))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))))))) (message "Local setup has been refreshed")) ((eq type 'plain-list) (let* ((begin (org-element-property :contents-begin context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (first-box (save-excursion (goto-char begin) (looking-at org-list-full-item-re) (match-string-no-properties 3))) (new-box (cond ((equal arg '(16)) "[-]") ((equal arg '(4)) (if first-box nil "[ ]")) ((equal first-box "[X]") "[ ]") (t "[X]")))) (cond (arg (let ((--dolist-tail-- (org-list-get-all-items begin struct (org-list-prevs-alist struct)))) (while --dolist-tail-- (let ((pos (car --dolist-tail--))) (org-list-set-checkbox pos struct new-box) (setq --dolist-tail-- (cdr --dolist-tail--)))))) ((and first-box (eq (point) begin)) (org-list-set-checkbox begin struct new-box))) (if (equal (org-list-write-struct struct (org-list-parents-alist struct) old-struct) old-struct) (progn (message "Cannot update this checkbox"))) (org-update-checkbox-count-maybe))) ((memq type '(node-property property-drawer)) (call-interactively (function org-property-action))) ((eq type 'radio-target) (call-interactively (function org-update-radio-target-regexp))) ((eq type 'statistics-cookie) (call-interactively (function org-update-statistics-cookies))) ((memq type '(table-row table-cell table)) (if (eq (org-element-property :type context) 'table\.el) (message "%s" (substitute-command-keys "\\<org-mode-map>Use `\\[org-edit-special]' to edit table.el tables")) (if (or (eq type 'table) (and (eq type 'table-row) (= (point) (org-element-property :end context)))) (save-excursion (if (org-at-TBLFM-p) (progn (require 'org-table) (org-table-calc-current-TBLFM)) (goto-char (org-element-property :contents-begin context)) (org-call-with-arg 'org-table-recalculate (or arg t)) (orgtbl-send-table 'maybe))) (org-table-maybe-eval-formula) (cond (arg (call-interactively (function org-table-recalculate))) ((org-table-maybe-recalculate-line)) (t (org-table-align)))))) ((eq type 'timestamp) (funcall pcase-0)) ((eq type 'planning) (cond ((org-at-timestamp-p 'lax) (funcall pcase-0)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) nil) (t (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) ((null type) (cond ((org-at-heading-p) (call-interactively (function org-set-tags-command))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2))))
  (let* ((context (org-element-lineage (org-element-context) '(babel-call clock dynamic-block footnote-definition footnote-reference inline-babel-call inline-src-block inlinetask item keyword node-property paragraph plain-list planning property-drawer radio-target src-block statistics-cookie table table-cell table-row timestamp) t)) (type (org-element-type context))) (if (eq type 'paragraph) (progn (let ((parent (org-element-property :parent context))) (if (and (eq (org-element-type parent) 'item) (= (line-beginning-position) (org-element-property :begin parent))) (progn (setq context parent) (setq type 'item)))))) (let* ((pcase-2 (function (lambda nil (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) (pcase-1 (function (lambda nil))) (pcase-0 (function (lambda nil (org-timestamp-change 0 'day))))) (cond ((memq type '(src-block inline-src-block)) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-eval-wipe-error-buffer) (org-babel-execute-src-block current-prefix-arg (org-babel-get-src-block-info nil context)))) ((org-match-line "[ \011]*$") (or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here")))) ((memq type '(inline-babel-call babel-call)) (let ((info (org-babel-lob-get-info context))) (if info (progn (org-babel-execute-src-block nil info))))) ((eq type 'clock) (org-clock-update-time-maybe)) ((eq type 'dynamic-block) (save-excursion (goto-char (org-element-property :post-affiliated context)) (org-update-dblock))) ((eq type 'footnote-definition) (goto-char (org-element-property :post-affiliated context)) (call-interactively 'org-footnote-action)) ((eq type 'footnote-reference) (call-interactively (function org-footnote-action))) ((memq type '(inlinetask headline)) (save-excursion (goto-char (org-element-property :begin context)) (call-interactively (function org-set-tags-command)))) ((eq type 'item) (let* ((box (org-element-property :checkbox context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (parents (org-list-parents-alist struct)) (prevs (org-list-prevs-alist struct)) (orderedp (org-not-nil (org-entry-get nil "ORDERED")))) (org-list-set-checkbox (org-element-property :begin context) struct (cond ((equal arg '(16)) "[-]") ((and (not box) (equal arg '(4))) "[ ]") ((or (not box) (equal arg '(4))) nil) ((eq box 'on) "[ ]") (t "[X]"))) (org-list-struct-fix-ind struct parents 2) (org-list-struct-fix-item-end struct) (org-list-struct-fix-bul struct prevs) (org-list-struct-fix-ind struct parents) (let ((block-item (org-list-struct-fix-box struct parents prevs orderedp))) (if (and box (equal struct old-struct)) (if (equal arg '(16)) (message "Checkboxes already reset") (user-error "Cannot toggle this checkbox: %s" (if (eq box 'on) "all subitems checked" "unchecked subitems"))) (org-list-struct-apply-struct struct old-struct) (org-update-checkbox-count-maybe)) (if block-item (progn (message "Checkboxes were removed due to empty box at line %d" (org-current-line block-item))))))) ((eq type 'keyword) (let ((org-inhibit-startup-visibility-stuff t) (org-startup-align-all-tables nil)) (if (boundp 'org-table-coordinate-overlays) (progn (mapc (function delete-overlay) org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil))) (let* ((--invisible-types '(org-hide-block org-hide-drawer outline)) (--markers\? 'use-markers) (--data (mapcar (function (lambda (o) (let ((beg (overlay-start o)) (end (overlay-end o)) (type (overlay-get o 'invisible))) (and beg end (> end beg) (memq type --invisible-types) (list (if --markers\? (copy-marker beg) beg) (if --markers\? (copy-marker end t) end) type))))) (save-excursion (save-restriction (widen) (overlays-in (point-min) (point-max))))))) (unwind-protect (progn (org-mode-restart)) (save-excursion (save-restriction (widen) (let ((--dolist-tail-- --invisible-types)) (while --dolist-tail-- (let ((type (car --dolist-tail--))) (remove-overlays (point-min) (point-max) 'invisible type) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((--dolist-tail-- (delq nil --data))) (while --dolist-tail-- (let ((x206 (car --dolist-tail--))) (let* ((x207 (car x206)) (x208 (cdr x206)) (x209 (car x208)) (x210 (cdr x208)) (x211 (car x210)) (x212 (cdr x210))) (let ((type x211) (end x209) (beg x207)) (progn (org-flag-region beg end t type) (if --markers\? (progn (set-marker beg nil) (set-marker end nil)))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))))))) (message "Local setup has been refreshed")) ((eq type 'plain-list) (let* ((begin (org-element-property :contents-begin context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (first-box (save-excursion (goto-char begin) (looking-at org-list-full-item-re) (match-string-no-properties 3))) (new-box (cond ((equal arg '(16)) "[-]") ((equal arg '(4)) (if first-box nil "[ ]")) ((equal first-box "[X]") "[ ]") (t "[X]")))) (cond (arg (let ((--dolist-tail-- (org-list-get-all-items begin struct (org-list-prevs-alist struct)))) (while --dolist-tail-- (let ((pos (car --dolist-tail--))) (org-list-set-checkbox pos struct new-box) (setq --dolist-tail-- (cdr --dolist-tail--)))))) ((and first-box (eq (point) begin)) (org-list-set-checkbox begin struct new-box))) (if (equal (org-list-write-struct struct (org-list-parents-alist struct) old-struct) old-struct) (progn (message "Cannot update this checkbox"))) (org-update-checkbox-count-maybe))) ((memq type '(node-property property-drawer)) (call-interactively (function org-property-action))) ((eq type 'radio-target) (call-interactively (function org-update-radio-target-regexp))) ((eq type 'statistics-cookie) (call-interactively (function org-update-statistics-cookies))) ((memq type '(table-row table-cell table)) (if (eq (org-element-property :type context) 'table\.el) (message "%s" (substitute-command-keys "\\<org-mode-map>Use `\\[org-edit-special]' to edit table.el tables")) (if (or (eq type 'table) (and (eq type 'table-row) (= (point) (org-element-property :end context)))) (save-excursion (if (org-at-TBLFM-p) (progn (require 'org-table) (org-table-calc-current-TBLFM)) (goto-char (org-element-property :contents-begin context)) (org-call-with-arg 'org-table-recalculate (or arg t)) (orgtbl-send-table 'maybe))) (org-table-maybe-eval-formula) (cond (arg (call-interactively (function org-table-recalculate))) ((org-table-maybe-recalculate-line)) (t (org-table-align)))))) ((eq type 'timestamp) (funcall pcase-0)) ((eq type 'planning) (cond ((org-at-timestamp-p 'lax) (funcall pcase-0)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) nil) (t (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) ((null type) (cond ((org-at-heading-p) (call-interactively (function org-set-tags-command))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))))
  (cond ((or (and (boundp 'org-clock-overlays) org-clock-overlays) org-occur-highlights) (if (boundp 'org-clock-overlays) (progn (org-clock-remove-overlays))) (org-remove-occur-highlights) (message "Temporary highlights/overlays removed from current buffer")) ((and (local-variable-p 'org-finish-function) (fboundp org-finish-function)) (funcall org-finish-function)) ((org-babel-hash-at-point)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-hook)) (t (let* ((context (org-element-lineage (org-element-context) '(babel-call clock dynamic-block footnote-definition footnote-reference inline-babel-call inline-src-block inlinetask item keyword node-property paragraph plain-list planning property-drawer radio-target src-block statistics-cookie table table-cell table-row timestamp) t)) (type (org-element-type context))) (if (eq type 'paragraph) (progn (let ((parent (org-element-property :parent context))) (if (and (eq (org-element-type parent) 'item) (= (line-beginning-position) (org-element-property :begin parent))) (progn (setq context parent) (setq type 'item)))))) (let* ((pcase-2 (function (lambda nil (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) (pcase-1 (function (lambda nil))) (pcase-0 (function (lambda nil (org-timestamp-change 0 'day))))) (cond ((memq type '(src-block inline-src-block)) (if org-babel-no-eval-on-ctrl-c-ctrl-c nil (org-babel-eval-wipe-error-buffer) (org-babel-execute-src-block current-prefix-arg (org-babel-get-src-block-info nil context)))) ((org-match-line "[ \011]*$") (or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here")))) ((memq type '(inline-babel-call babel-call)) (let ((info (org-babel-lob-get-info context))) (if info (progn (org-babel-execute-src-block nil info))))) ((eq type 'clock) (org-clock-update-time-maybe)) ((eq type 'dynamic-block) (save-excursion (goto-char (org-element-property :post-affiliated context)) (org-update-dblock))) ((eq type 'footnote-definition) (goto-char (org-element-property :post-affiliated context)) (call-interactively 'org-footnote-action)) ((eq type 'footnote-reference) (call-interactively (function org-footnote-action))) ((memq type '(inlinetask headline)) (save-excursion (goto-char (org-element-property :begin context)) (call-interactively (function org-set-tags-command)))) ((eq type 'item) (let* ((box (org-element-property :checkbox context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (parents (org-list-parents-alist struct)) (prevs (org-list-prevs-alist struct)) (orderedp (org-not-nil (org-entry-get nil "ORDERED")))) (org-list-set-checkbox (org-element-property :begin context) struct (cond ((equal arg '(16)) "[-]") ((and (not box) (equal arg '(4))) "[ ]") ((or (not box) (equal arg '(4))) nil) ((eq box 'on) "[ ]") (t "[X]"))) (org-list-struct-fix-ind struct parents 2) (org-list-struct-fix-item-end struct) (org-list-struct-fix-bul struct prevs) (org-list-struct-fix-ind struct parents) (let ((block-item (org-list-struct-fix-box struct parents prevs orderedp))) (if (and box (equal struct old-struct)) (if (equal arg '(16)) (message "Checkboxes already reset") (user-error "Cannot toggle this checkbox: %s" (if (eq box 'on) "all subitems checked" "unchecked subitems"))) (org-list-struct-apply-struct struct old-struct) (org-update-checkbox-count-maybe)) (if block-item (progn (message "Checkboxes were removed due to empty box at line %d" (org-current-line block-item))))))) ((eq type 'keyword) (let ((org-inhibit-startup-visibility-stuff t) (org-startup-align-all-tables nil)) (if (boundp 'org-table-coordinate-overlays) (progn (mapc (function delete-overlay) org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil))) (let* ((--invisible-types '(org-hide-block org-hide-drawer outline)) (--markers\? 'use-markers) (--data (mapcar (function (lambda (o) (let ((beg (overlay-start o)) (end (overlay-end o)) (type (overlay-get o 'invisible))) (and beg end (> end beg) (memq type --invisible-types) (list (if --markers\? (copy-marker beg) beg) (if --markers\? (copy-marker end t) end) type))))) (save-excursion (save-restriction (widen) (overlays-in (point-min) (point-max))))))) (unwind-protect (progn (org-mode-restart)) (save-excursion (save-restriction (widen) (let ((--dolist-tail-- --invisible-types)) (while --dolist-tail-- (let ((type (car --dolist-tail--))) (remove-overlays (point-min) (point-max) 'invisible type) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((--dolist-tail-- (delq nil --data))) (while --dolist-tail-- (let ((x206 (car --dolist-tail--))) (let* ((x207 (car x206)) (x208 (cdr x206)) (x209 (car x208)) (x210 (cdr x208)) (x211 (car x210)) (x212 (cdr x210))) (let ((type x211) (end x209) (beg x207)) (progn (org-flag-region beg end t type) (if --markers\? (progn (set-marker beg nil) (set-marker end nil)))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))))))) (message "Local setup has been refreshed")) ((eq type 'plain-list) (let* ((begin (org-element-property :contents-begin context)) (struct (org-element-property :structure context)) (old-struct (copy-tree struct)) (first-box (save-excursion (goto-char begin) (looking-at org-list-full-item-re) (match-string-no-properties 3))) (new-box (cond ((equal arg '(16)) "[-]") ((equal arg '(4)) (if first-box nil "[ ]")) ((equal first-box "[X]") "[ ]") (t "[X]")))) (cond (arg (let ((--dolist-tail-- (org-list-get-all-items begin struct (org-list-prevs-alist struct)))) (while --dolist-tail-- (let ((pos (car --dolist-tail--))) (org-list-set-checkbox pos struct new-box) (setq --dolist-tail-- (cdr --dolist-tail--)))))) ((and first-box (eq (point) begin)) (org-list-set-checkbox begin struct new-box))) (if (equal (org-list-write-struct struct (org-list-parents-alist struct) old-struct) old-struct) (progn (message "Cannot update this checkbox"))) (org-update-checkbox-count-maybe))) ((memq type '(node-property property-drawer)) (call-interactively (function org-property-action))) ((eq type 'radio-target) (call-interactively (function org-update-radio-target-regexp))) ((eq type 'statistics-cookie) (call-interactively (function org-update-statistics-cookies))) ((memq type '(table-row table-cell table)) (if (eq (org-element-property :type context) 'table\.el) (message "%s" (substitute-command-keys "\\<org-mode-map>Use `\\[org-edit-special]' to edit table.el tables")) (if (or (eq type 'table) (and (eq type 'table-row) (= (point) (org-element-property :end context)))) (save-excursion (if (org-at-TBLFM-p) (progn (require 'org-table) (org-table-calc-current-TBLFM)) (goto-char (org-element-property :contents-begin context)) (org-call-with-arg 'org-table-recalculate (or arg t)) (orgtbl-send-table 'maybe))) (org-table-maybe-eval-formula) (cond (arg (call-interactively (function org-table-recalculate))) ((org-table-maybe-recalculate-line)) (t (org-table-align)))))) ((eq type 'timestamp) (funcall pcase-0)) ((eq type 'planning) (cond ((org-at-timestamp-p 'lax) (funcall pcase-0)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) nil) (t (user-error (substitute-command-keys "`\\[org-ctrl-c-ctrl-c]' can do nothing useful here"))))) ((null type) (cond ((org-at-heading-p) (call-interactively (function org-set-tags-command))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook) (funcall pcase-1)) (t (funcall pcase-2)))))))
  org-ctrl-c-ctrl-c(nil)
  funcall-interactively(org-ctrl-c-ctrl-c nil)
  call-interactively(org-ctrl-c-ctrl-c nil nil)
  command-execute(org-ctrl-c-ctrl-c)

from ejc-sql.

stardiviner avatar stardiviner commented on June 28, 2024

With this latest fix commit, [C-c C-c] works now. Thanks for quick fix @kostafey .

from ejc-sql.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.