complete-computing-environment/programming_common_lisp_in_...

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: