Clisp + Emacs compile-and-load-file - emacs

Starting to learn Common lisp. Instal in my debian 5.03 clisp, emacs-23.1 and slime.
Write in .emacs:
(setq inferior-lisp-program "/usr/bin/clisp") ; your Lisp system
(add-to-list 'load-path "/home/slime/") ; your SLIME directory
(require 'slime)
(slime-setup '(slime-scratch slime-editing-commands slime-repl))
(global-font-lock-mode t)
(show-paren-mode 1)
(add-hook 'lisp-mode-hook '(lambda ()
(local-set-key (kbd "RET") 'newline-and-indent)))
Then create in emacs new lisp file: test.lisp write simple lisp expression:
(defun square(x)
(* x x))
Then try to compile this code C-c C-k and see in minibuffer: Not connected
p.s. Now i try to click in eval defun in emacs main menu: and see in minibuffer: Process lisp does not exist
What's wrong?
Thank you.

What happens if you do M-x slime ?
I looks like you don't have slime started.

Related

How to use Cider's built-in autocompletion in Clojure?

According to this:
The built-in completion logic in CIDER relies on the library clojure-complete, so you'll have to have it your classpath for completion to work. If you're connecting to an nREPL server started from lein (e.g. you invoked M-x cider-jack-in) - there's nothing for you to do.
So -- I'm using an nREPL jack in with Emacs 24.3, so I would guess that there is "nothing for me to do." However, I am not getting any autocompletion in my Clojure source files.
I uninstalled and reinstalled Cider via Elpa to be safe. Apparently it is not necessary to manually install any other autocompletion packages from what I've read, but I must admit that getting autocompletion to work seems to be quite a task, can anyone point out what I'm missing?
Here's my old config. I haven't been using Clojure for a while, but
I've checked that it still works:
(require 'ac-nrepl)
(defun clojure-auto-complete ()
(interactive)
(let ((ac-sources
`(ac-source-nrepl-ns
ac-source-nrepl-vars
ac-source-nrepl-ns-classes
ac-source-nrepl-all-classes
ac-source-nrepl-java-methods
ac-source-nrepl-static-methods
,#ac-sources)))
(auto-complete)))
(defun my-clojure-hook ()
(auto-complete-mode 1)
(define-key clojure-mode-map
(kbd "β") 'clojure-auto-complete))
(add-hook 'clojure-mode-hook 'my-clojure-hook)
I'm pretty sure that I went for the separate function instead of modifying
ac-sources for performance reasons (I have ac-delay at 0.4).
Confirmation:
abo-abo answer of Apr 23 at 6:57 works.
Just change "ac-nrepl" into "ac-cider" of course.
(GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.9)
of 2014-06-06 on brownie, modified by Debian)
(require 'auto-complete-config)
(require 'clojure-mode)
(require 'cider-mode)
(require 'ac-cider)
(ac-config-default)
;(add-hook 'cider-repl-mode-hook 'ac-cider-setup)
(add-hook 'cider-mode-hook 'ac-cider-setup)
(eval-after-load "auto-complete"
'(add-to-list 'ac-modes 'cider-repl-mode))
(add-hook 'clojure-mode-hook 'paredit-mode)
;(add-hook 'clojurescript-mode-hook 'paredit-mode)
(add-hook 'clojure-mode-hook 'rainbow-delimiters-mode)
(setq cider-repl-pop-to-buffer-on-connect nil)
(require 'highlight-parentheses)
(add-hook 'clojure-mode-hook
(lambda ()
(highlight-parentheses-mode t)))
(defun set-auto-complete-as-completion-at-point-function ()
(setq completion-at-point-functions '(auto-complete)))
(add-hook 'auto-complete-mode-hook 'set-auto-complete-as-completion-at-point-function)
;(add-hook 'cider-repl-mode-hook 'set-auto-complete-as-completion-at-point-function)
(add-hook 'cider-mode-hook 'set-auto-complete-as-completion-at-point-function)
(eval-after-load "cider"
'(define-key cider-mode-map (kbd "C-c C-d") 'ac-cider-popup-doc))
My packages are:
ac-cider
auto-complete
auto-indent
cider
clojure-mode
highlight-parentheses
parendit
popup
rainbow-delimiters
I do not want to use auto-completion for repl and script so I commented them.
You may not need them all but they are all useful. If you do not want to change the init.el file, you would better go with all packages listed.
Once you're done, make a project with Lein, then add
:plugins [[cider/cider-nrepl "0.8.2"]]
to project.clj file.
Now, it is almost done.
Open a sourcefile with Emacs, then run
M-x cider-jack-in
Then you must be able to use auto-completion feature for code!

compile package is not loaded in chez scheme

I have installed petite chez scheme and used a .el config file as follows- my .emacs file:
(add-to-list 'load-path "/home/lambda/slime-2013-04-05") ; your SLIME directory
(setq inferior-lisp-program "/usr/bin/clisp") ; your Lisp system
(require 'slime)
(slime-setup)
(setq slime-protocol-version 'ignore)
;;petite scheme setup
(setq scheme-program-name "/home/lambda/csv8.4/custom/petite")
(load-file "/home/lambda/.emacs.d/scheme-setup.el")
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-enabled-themes (quote (tango-dark))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(add-hook 'lisp-mode-hook '(lambda ()
(local-set-key (kbd "RET") 'newline-and-indent)))
(if (fboundp 'global-font-lock-mode)
(global-font-lock-mode 1) ; GNU Emacs
(setq font-lock-auto-fontify t)) ; XEmacs
and the scheme-setup.el file I'm using is here:
https://github.com/tiljeset/emacs/blob/master/scheme-setup.el
Now, when I do
$ emacs -nw -f run-scheme
and compile with C-c C-k, I get the error:
Exception in compile-file: compile package is not loaded
Type (debug) to enter the debugger.
in the REPL. May I ask what is causing this problem?
(compile-file filename.ss)
gives the same error.
You have to buy the compile package. Instructions at www.scheme.com.

How to set up emacs for clojure, evil, hinting, paren highlighting?

I'm brand-new to both Emacs and Clojure and would like to set up hinting and syntax highlighting somehow similar to the video here. I have installed:
Emacs 24.x
Leiningen 2.x
Marmalade
...Then within Emacs and via Marmalade, installed the following packages:
Evil
clojure-mode
nrepl
My big-idea question is how do these major/minor modes interact and is there a "right" way to set these things up?
My smaller-idea question is how do I get the pretty syntax highlighting and code-hinting?
Thanks!
Check out Emacs Live, its a full emacs configuration created by Sam Aaron. He codes allot of Clojure so this "battery included" setup works great for Clojure coding.
https://github.com/overtone/emacs-live
Once you have cloned this and follow the instructions you are up and running with
Clojure, nrepl, git and much more.
I list my setup. Some of the stuff is redundant, since I haven't
written in Clojure for a while, but I checked and it still works.
Use clojure to start nrepl.
You might have some issue with project.clj being in the appropriate directory,
but you should figure this out.
Open a source file e.g. foo.clj.
Use C-c C-l to call nrepl-load-file
By the way, it's the canonical shortcut to load the file into inferior process.
It will work for Common Lisp, Python etc.
Use C-c C-z to switch to repl.
This again is the canonical shortcut that works for many languages.
Here's the setup code:
(require 'clojure-mode)
(defun set-syntax-parens ()
"highlight []{} etc."
(interactive)
(modify-syntax-entry ?[ "(]")
(modify-syntax-entry ?] ")[")
(modify-syntax-entry ?{ "(}")
(modify-syntax-entry ?} "){"))
(defvar clojure.jars '("clojure-1.3.0.jar"
"swank-clojure-1.4.2.jar"
"clojure-contrib-1.2.0.jar"))
(defvar clojure.jars.d (concat dropbox.d "source/clojure/lib/"))
(defvar clojure.classpath
(apply #'concat
(mapcar (lambda (jar) (concat clojure.jars.d jar path-separator))
clojure.jars)))
(setq clojure.classpath
(concat clojure.classpath
dropbox.d "source/clojure/include/"
path-separator))
;;;###autoload
(defun clojure ()
(interactive)
(nrepl-jack-in))
(defvar clojure-server-cmd
(concat "java -Xss4096k -cp " clojure.classpath " clojure.main &"))
(add-hook 'clojure-mode-hook
(lambda()
(set-syntax-parens)))
(require 'nrepl)
(add-hook 'nrepl-mode-hook
(lambda()
(define-key nrepl-mode-map (kbd "C-l") 'nrepl-clear-buffer)))
here is the operative section from my favorite emacs config:
(when (not package-archive-contents)
(package-refresh-contents))
;; Add in your own as you wish:
(defvar my-packages '(starter-kit starter-kit-lisp starter-kit-bindings clojure-mode
nrepl auto-complete ac-nrepl org rainbow-delimiters)
"A list of packages to ensure are installed at launch.")
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))
(require 'ac-nrepl)
(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)
(add-hook 'nrepl-interaction-mode-hook 'ac-nrepl-setup)
(eval-after-load "auto-complete"
'(add-to-list 'ac-modes 'nrepl-mode))
(defun set-auto-complete-as-completion-at-point-function ()
(setq completion-at-point-functions '(auto-complete)))
(add-hook 'auto-complete-mode-hook 'set-auto-complete-as-completion-at-point-function)
(add-hook 'nrepl-mode-hook 'set-auto-complete-as-completion-at-point-function)
(add-hook 'nrepl-interaction-mode-hook 'set-auto-complete-as-completion-at-point-function)
(define-key nrepl-interaction-mode-map (kbd "C-c C-d") 'ac-nrepl-popup-doc)
(add-hook 'prog-mode-hook 'auto-complete-mode)
(add-hook 'nrepl-interaction-mode-hook
'nrepl-turn-on-eldoc-mode)
(add-hook 'nrepl-mode-hook 'paredit-mode)
This turns on paredit-mode everywhere, which takes a bit of getting used to though it's entirely worth it because paredit and makes using Clojure much more fun. At least once you get a handle on slurping and barfing

swank-clojure and slime no longer co-operating in emacs

I made the mistake of updating my existing ports with MacPorts -- now slime and swank-clojure no longer work. I get the following message when I invoke clojure-jack-in within emacs:
Versions differ: 2011-04-16 (slime) vs. 20100404 (swank). Continue? (y or n)
Entering y will bring up the slime REPL, but then when I try to evaluate an expression in the REPL, I get another message:
Not connected. Use `M-x slime' to start a Lisp.
What is going on here?
Here are the relevant portions of my init.el file:
;; slime
(setq inferior-lisp-program "/opt/local/bin/sbcl")
(add-to-list 'load-path
"/opt/local/share/emacs/site-lisp/slime"
"/opt/local/share/emacs/site-lisp/slime/contrib")
(add-hook 'slime-repl-mode-hook
(defun clojure-mode-slime-font-lock()
(require 'clojure-mode)
(let (font-lock-mode)
(clojure-mode-font-lock-setup))))
(require 'slime)
(slime-setup '(slime-repl))
(eval-after-load "slime" '(slime-setup '(slime-fancy slime-banner)))
;; clojure
(add-to-list 'load-path
"~/.emacs.d/elpa/clojure-mode-el"
"~/.emacs.d/elpa/paredit-22")
(require 'clojure-mode)
(defun turn-on-paredit () (paredit-mode 1))
(add-hook 'clojure-mode-hook 'turn-on-paredit)
swank-clojure only works with slime version 20100404:
https://github.com/technomancy/swank-clojure/issues/120#issuecomment-4862556
only option at this point is to downgrade version of slime.

Emacs auto-completion mode

New with emacs. I'm not able to implement auto-completion for Gtk+3. I'm using CEDET and Auto Complete Mode as UI. Semantic is unable to find include files ( ), but it can parse the tags of the code in the open buffers.
Here my .emacs conf
;;----------------------------------------------------------------------------------
(load-file "~/.emacs.d/cedet-1.0/common/cedet.el")
(global-ede-mode 1)
(semantic-load-enable-excessive-code-helpers)
;;(semantic-load-enable-semantic-debugging-helpers)
;; ede customization
(require 'semantic-lex-spp)
(ede-enable-generic-projects)
(setq senator-minor-mode-name "SN")
(setq semantic-imenu-auto-rebuild-directory-indexes nil)
(global-srecode-minor-mode 1)
(global-semantic-mru-bookmark-mode 1)
(require 'semantic-decorate-include)
;; gcc setup
(require 'semantic-gcc)
;; smart completions
(require 'semantic-ia)
(setq-mode-local c-mode semanticdb-find-default-throttle
'(project unloaded system recursive))
(setq-mode-local c++-mode semanticdb-find-default-throttle
'(project unloaded system recursive))
(setq-mode-local erlang-mode semanticdb-find-default-throttle
'(project unloaded system recursive))
(require 'eassist)
(require 'semanticdb)
(global-semanticdb-minor-mode 1)
;; gnu global support
(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)
;; ctags
(require 'semanticdb-ectag)
;;(semantic-load-enable-primary-exuberent-ctags-support)
(global-semantic-tag-folding-mode)
(defun my-cedet-hook ()
(local-set-key [(control return)] 'semantic-ia-complete-symbol)
(local-set-key "\C-c?" 'semantic-ia-complete-symbol-menu)
(local-set-key "\C-c>" 'semantic-complete-analyze-inline)
(local-set-key "\C-cp" 'semantic-analyze-proto-impl-toggle))
(add-hook 'c-mode-common-hook 'my-cedet-hook)
;;semantic gtk gdk
(defun my-semantic-hook ()
(semantic-add-system-include "/usr/include/gtk-3.0/gtk/" 'c-mode)
(semantic-add-system-include "/usr/include/gtk-3.0/gdk/" 'c-mode))
(add-hook 'semantic-init-hooks 'my-semantic-hook)
;; END CEDET
;;----------------------------------------------------------------------------
Any suggestions? Thanks.
Your setup looks OK to me; I wonder if the extra "gtk/" and "gdk/" in your add-system-includes might be the problem. I just got this working with gtk-3.0 using:
(semantic-add-system-include "/usr/include/gtk-3.0" 'c-mode)
Then in your source file,
#include <gtk/gtk.h>
Followed by:
gtk_[C-c ?]
spends a minute or so processing all the header files, but it does return the completion menu as expected.
If this doesn't work for you, I notice you might be using an older version of CEDET. I use the latest dev version from the bazaar repository; I highly recommend you do the same.