complete-computing-environment/programming_common_lisp_in_...

2.8 KiB

Programming Common Lisp in Emacs

(provide 'cce/common-lisp)

My roommate Tor and I are exploring some simple shared projects in 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 org-mode notebooks as Literate Programs, but for now I am just going to use Quicklisp to keep it easy to collaborate with my roommate.

- 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
(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)

DONE debug breakage in nix-community/emacs-overlay

SCHEDULED: <2022-07-30 Sat>

  • State "DONE" from "NEXT" [2022-09-21 Wed 00:30]
  • State "DONE" from "NEXT" [2022-06-29 Wed 15:09]