88 lines
2.8 KiB
Org Mode
88 lines
2.8 KiB
Org Mode
:PROPERTIES:
|
|
:ID: cce/programming_common_lisp_in_emacs
|
|
:END:
|
|
#+TITLE: Programming Common Lisp in Emacs
|
|
#+filetags: :Emacs:Tool:Coding:
|
|
|
|
#+PROPERTY: header-args :mkdirp yes :results none
|
|
#+PROPERTY: header-args:emacs-lisp :tangle common-lisp.el
|
|
#+PROPERTY: header-args:yaml :tangle roles/endpoint/tasks/common-lisp.yml
|
|
|
|
#+ARROYO_EMACS_MODULE: common-lisp
|
|
#+ARCOLOGY_KEY: cce/common-lisp
|
|
#+ARROYO_MODULE_WANTS: cce/programming_lisp_in_emacs.org
|
|
#+ARCOLOGY_ALLOW_CRAWL: t
|
|
|
|
#+begin_src emacs-lisp
|
|
(provide 'cce/common-lisp)
|
|
#+end_src
|
|
|
|
My roommate [[id:f4d0be16-1f68-4598-a02c-0327759e034c][Tor]] and I are exploring some simple shared projects in [[id:1ecf962e-8ff0-4da0-9946-341eef37169a][Common Lisp]]. We're developing a simple TV remote control, a simple web app running on an Intel NUC to play videos on our TV without having to fight the frankly awful Google Chromecast product.
|
|
|
|
I use SBCL and quicklisp for managing my projects. I want to eventually do my Common Lisp development in [[id:1fb8fb45-fac5-4449-a347-d55118bb377e][org-mode]] notebooks as [[id:cce/literate_programming][Literate Programs]], but for now I am just going to use Quicklisp to keep it easy to collaborate with my roommate.
|
|
|
|
#+begin_src yaml
|
|
- name: sbcl installed
|
|
dnf:
|
|
state: installed
|
|
name: sbcl
|
|
when: "ansible_pkg_mgr=='dnf'"
|
|
tags:
|
|
- common-lisp
|
|
|
|
- name: sbcl installed
|
|
apt:
|
|
state: present
|
|
name: sbcl
|
|
when: "ansible_pkg_mgr=='apt'"
|
|
tags:
|
|
- common-lisp
|
|
|
|
- name: download directory exists
|
|
file:
|
|
state: directory
|
|
path: /tmp/quicklisp
|
|
tags:
|
|
- common-lisp
|
|
|
|
- name: quicklisp downloaded
|
|
get_url:
|
|
url: "{{item}}"
|
|
dest: /tmp/quicklisp/
|
|
with_items:
|
|
- https://beta.quicklisp.org/quicklisp.lisp
|
|
tags:
|
|
- common-lisp
|
|
|
|
- name: quicklisp installed in sbcl
|
|
become: yes
|
|
become_user: '{{local_account}}'
|
|
shell:
|
|
cmd: sbcl --load /tmp/quicklisp/quicklisp.lisp --eval '(progn (quicklisp-quickstart:install) (ql:add-to-init-file))'
|
|
creates: '/home/{{local_account}}/quicklisp/setup.lisp'
|
|
tags:
|
|
- common-lisp
|
|
#+end_src
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package slime
|
|
:commands slime-mode
|
|
:init
|
|
(setq inferior-lisp-program "sbcl")
|
|
(setq slime-contribs '(slime-fancy
|
|
slime-indentation
|
|
slime-sbcl-exts
|
|
slime-scratch)
|
|
slime-complete-symbol-function 'slime-fuzzy-complete-symbol
|
|
slime-net-coding-system 'utf-8-unix))
|
|
(use-package slime-company
|
|
:after slime)
|
|
#+end_src
|
|
|
|
* DONE debug breakage in [[id:nix_community_emacs_overlay][nix-community/emacs-overlay]]
|
|
SCHEDULED: <2022-07-30 Sat>
|
|
:LOGBOOK:
|
|
- State "DONE" from "NEXT" [2022-09-21 Wed 00:30]
|
|
- State "DONE" from "NEXT" [2022-06-29 Wed 15:09]
|
|
:END:
|