Auto CompletionProblems

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Auto CompletionProblems

chicken-users mailing list
Hi,
So I'm working on a small project to learn Chicken Scheme. I'm using Emacs + Geiser.
1. I have an issue that when using coops's classes, I don't get auto-completion to classes varibles, for example:

(define-class <class> () [(var 0)])
(define-method (method (class <class>))
  ;; When typing here (slot-value class 'var) the var won't autocomplete
)

2. When importing eggs, I don't get any completion. For example after importing coops, define-class and slot-value won't auto-complete. (I believe that if I were to import my own files, it would still won't work)

3. In the Geiser REPL itself, I have no auto-complete at all.

I'm using company and jedi as my auto-completion tools, does anyone know how to fix this? Thanks!

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: Auto CompletionProblems

chicken-users mailing list
On Friday, August 2, 2019 11:17 AM, EfraimVagner via Chicken-users <[hidden email]> wrote:

Hi,
So I'm working on a small project to learn Chicken Scheme. I'm using Emacs + Geiser.
1. I have an issue that when using coops's classes, I don't get auto-completion to classes varibles, for example:

(define-class <class> () [(var 0)])
(define-method (method (class <class>))
  ;; When typing here (slot-value class 'var) the var won't autocomplete
)

2. When importing eggs, I don't get any completion. For example after importing coops, define-class and slot-value won't auto-complete. (I believe that if I were to import my own files, it would still won't work)

3. In the Geiser REPL itself, I have no auto-complete at all.

I'm using company and jedi as my auto-completion tools, does anyone know how to fix this? Thanks!

I forgot 4. No auto completion to built in functions, like print, lambda and etc.

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: Auto CompletionProblems

ipcore
Hi,

Geiser+company should work fine (though it can be very slow with a busy
namespace), so I assume something isn't correct in your setup. A couple
of things to check/note:

1) You only ever get auto-completion for the things you have
loaded/imported in the geiser repl.

2) Is company mode active?

3) Did you install apropos and chicken-doc, and populated the
documentation database with
> $ cd `csi -R chicken.platform -p '(chicken-home)'`
> $ curl https://3e8.org/pub/chicken-doc/chicken-doc-repo-5.tgz | sudo tar zx
4) Not sure why you need jedi? That's for python, no?


On 8/2/19 10:19 AM, EfraimVagner via Chicken-users wrote:

> On Friday, August 2, 2019 11:17 AM, EfraimVagner via Chicken-users <[hidden email]> wrote:
>
>> Hi,
>> So I'm working on a small project to learn Chicken Scheme. I'm using Emacs + Geiser.
>> 1. I have an issue that when using coops's classes, I don't get auto-completion to classes varibles, for example:
>>
>> (define-class <class> () [(var 0)])
>> (define-method (method (class <class>))
>>    ;; When typing here (slot-value class 'var) the var won't autocomplete
>> )
>>
>> 2. When importing eggs, I don't get any completion. For example after importing coops, define-class and slot-value won't auto-complete. (I believe that if I were to import my own files, it would still won't work)
>>
>> 3. In the Geiser REPL itself, I have no auto-complete at all.
>>
>> I'm using company and jedi as my auto-completion tools, does anyone know how to fix this? Thanks!
>
> I forgot 4. No auto completion to built in functions, like print, lambda and etc.
>
>
> _______________________________________________
> Chicken-users mailing list
> [hidden email]
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: Auto CompletionProblems

chicken-users mailing list

> 1.  You only ever get auto-completion for the things you have
>     loaded/imported in the geiser repl.
>

I know that what should happen, but is isn't what happaning.


> 2.  Is company mode active?

Yes, it works for some things (functions defines with define, for example)


> 3.  Did you install apropos and chicken-doc, and populated the
>     documentation database with
>
>
> > $ cd `csi -R chicken.platform -p '(chicken-home)'`
> > $ curl https://3e8.org/pub/chicken-doc/chicken-doc-repo-5.tgz | sudo tar zx
>

No, I didn't do it before, but I tried it now and didn't change anything...


> 4.  Not sure why you need jedi? That's for python, no?
>
>     On 8/2/19 10:19 AM, EfraimVagner via Chicken-users wrote:
>
I'm actually not sure, I don't really know what does what, so I just said what I installed.

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: Auto CompletionProblems

ipcore
If you like, pastebin your init.el somewhere, then I'll check if I can
spot any glaring errors.
Other than that, I'm afraid I cannot help you. Maybe better ask the
geiser folks.

On 8/3/19 4:47 PM, EfraimVagner via Chicken-users wrote:

>
>> 1.  You only ever get auto-completion for the things you have
>>      loaded/imported in the geiser repl.
>>
>
> I know that what should happen, but is isn't what happaning.
>
>
>> 2.  Is company mode active?
>
> Yes, it works for some things (functions defines with define, for example)
>
>
>> 3.  Did you install apropos and chicken-doc, and populated the
>>      documentation database with
>>
>>
>>> $ cd `csi -R chicken.platform -p '(chicken-home)'`
>>> $ curl https://3e8.org/pub/chicken-doc/chicken-doc-repo-5.tgz | sudo tar zx
>>
>
> No, I didn't do it before, but I tried it now and didn't change anything...
>
>
>> 4.  Not sure why you need jedi? That's for python, no?
>>
>>      On 8/2/19 10:19 AM, EfraimVagner via Chicken-users wrote:
>>
> I'm actually not sure, I don't really know what does what, so I just said what I installed.
>
> _______________________________________________
> Chicken-users mailing list
> [hidden email]
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: Auto CompletionProblems

ipcore
In reply to this post by chicken-users mailing list
Hey, do you use helm by any chance? Then this might be related:

https://gitlab.com/jaor/geiser/issues/271

Also if you haven't done so already, try running emacs with only the
necessary packages enabled.


On 8/3/19 4:47 PM, EfraimVagner via Chicken-users wrote:

>
>> 1.  You only ever get auto-completion for the things you have
>>      loaded/imported in the geiser repl.
>>
>
> I know that what should happen, but is isn't what happaning.
>
>
>> 2.  Is company mode active?
>
> Yes, it works for some things (functions defines with define, for example)
>
>
>> 3.  Did you install apropos and chicken-doc, and populated the
>>      documentation database with
>>
>>
>>> $ cd `csi -R chicken.platform -p '(chicken-home)'`
>>> $ curl https://3e8.org/pub/chicken-doc/chicken-doc-repo-5.tgz | sudo tar zx
>>
>
> No, I didn't do it before, but I tried it now and didn't change anything...
>
>
>> 4.  Not sure why you need jedi? That's for python, no?
>>
>>      On 8/2/19 10:19 AM, EfraimVagner via Chicken-users wrote:
>>
> I'm actually not sure, I don't really know what does what, so I just said what I installed.
>
> _______________________________________________
> Chicken-users mailing list
> [hidden email]
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: Auto CompletionProblems

Dan Leslie
It sounds like the implementation is not set.

Try putting this as the first line in your source file:

;;; -*- mode: scheme; geiser-scheme-implementation: chicken -*-

If that fixes your problems, then you'll probably want to limit Geiser to the one implementation, globally, or add that to all your chicken files.

-Dan

Sent from ProtonMail mobile



-------- Original Message --------
On Aug. 7, 2019, 8:40 a.m., < [hidden email]> wrote:

Hey, do you use helm by any chance? Then this might be related:

https://gitlab.com/jaor/geiser/issues/271

Also if you haven't done so already, try running emacs with only the
necessary packages enabled.

On 8/3/19 4:47 PM, EfraimVagner via Chicken-users wrote:
>
>> 1. You only ever get auto-completion for the things you have
>> loaded/imported in the geiser repl.
>>
>
> I know that what should happen, but is isn't what happaning.
>
>
>> 2. Is company mode active?
>
> Yes, it works for some things (functions defines with define, for example)
>
>
>> 3. Did you install apropos and chicken-doc, and populated the
>> documentation database with
>>
>>
>>> $ cd `csi -R chicken.platform -p '(chicken-home)'`
>>> $ curl https://3e8.org/pub/chicken-doc/chicken-doc-repo-5.tgz | sudo tar zx
>>
>
> No, I didn't do it before, but I tried it now and didn't change anything...
>
>
>> 4. Not sure why you need jedi? That's for python, no?
>>
>> On 8/2/19 10:19 AM, EfraimVagner via Chicken-users wrote:
>>
> I'm actually not sure, I don't really know what does what, so I just said what I installed.
>
> _______________________________________________
> Chicken-users mailing list
> [hidden email]
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>

_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users


_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users
Reply | Threaded
Open this post in threaded view
|

Re: Auto CompletionProblems

chicken-users mailing list
Hi and thanks for all the help!

I tried what was suggested, but nothing worked... My init.el file is (including other, non related, packages):


```
(require 'package)

;;; Code:
(add-to-list 'package-archives '("elpa" . "https://elpa.org/packages/"))
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
(package-initialize)


;; bootstrap use-package
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))
(require 'use-package)

; (setq evil-want-keybinding nil)

(use-package python-environment :ensure t)


(use-package evil
  :ensure t
  :init
  (setq evil-want-integration t) ;; This is optional since it's already set to t by default.
  (setq evil-want-keybinding nil)
  :config
  (evil-mode 1))

(use-package evil-collection
  :after evil
  :ensure t
  :config
  (evil-collection-init))


(use-package company
  :ensure t
  :config
  (add-to-list 'company-backends 'company-files)
  (add-hook 'after-init-hook 'global-company-mode)
  (setq company-minimum-prefix-length 1)
  (setq company-idle-delay 0)
  (company-quickhelp-mode)
  )


(use-package company-jedi             ;;; company-mode completion back-end for Python JEDI
  :ensure t
  :config
  (setq jedi:environment-virtualenv (list (expand-file-name "~/.emacs.d/.python-environments/")))
  (add-hook 'python-mode-hook 'jedi:setup)
  (setq jedi:complete-on-dot t)
  (setq jedi:use-shortcuts t)
  (defun config/enable-company-jedi ()
    (add-to-list 'company-backends 'company-jedi))
  (add-hook 'python-mode-hook 'config/enable-company-jedi))


(use-package projectile
  :ensure t
  :bind-keymap ("C-c p" . projectile-command-map)
  )


(use-package multiple-cursors
  :ensure t
  :config
  (global-set-key (kbd "C-x c") 'mc/edit-lines)
  (global-set-key (kbd "C-x x") 'mc/mark-all-like-this)
  (global-set-key (kbd "M-p") 'mc/mark-previous-like-this)
  (global-set-key (kbd "M-n") 'mc/mark-next-like-this))


(use-package flycheck
  :ensure t
  :config
  (global-flycheck-mode))

(use-package yasnippet
  :ensure t
  :defer 2
  :diminish yas-minor-mode
  :config
  (setq yas-snippet-dirs
        '("~/.emacs.d/yasnippet-snippets"))
  (yas-global-mode 1))

(setq geiser-active-implementations '(chicken))
(setq geiser-scheme-implementation "/home/vag/chicken-scheme/bin/csi")


(define-key global-map (kbd "C-c C-f") 'ace-jump-char-mode)

(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 (wombat)))
'(package-selected-packages
   (quote
    (neotree yasnippet flycheck multiple-cursors ace-jump-mode company-quickhelp ace-isearch paredit quack ac-geiser scheme-complete geiser chicken-scheme ycm company-jedi python-environment epc projectile racket-mode use-package evil-collection slime evil))))
(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.
)

(set-face-attribute 'default nil :height 150)
(setq inferior-lisp-program "/usr/bin/sbcl")
(setq scheme-program-name "/home/vag/chicken-scheme/bin/csi -:c")

(autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t)
(add-hook 'emacs-lisp-mode-hook       #'enable-paredit-mode)
(add-hook 'eval-expression-minibuffer-setup-hook #'enable-paredit-mode)
(add-hook 'ielm-mode-hook             #'enable-paredit-mode)
(add-hook 'lisp-mode-hook             #'enable-paredit-mode)
(add-hook 'lisp-interaction-mode-hook #'enable-paredit-mode)
(add-hook 'scheme-mode-hook           #'enable-paredit-mode)

(global-linum-mode t)

(provide 'init)
;;; Init.el ends here

```
_______________________________________________
Chicken-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/chicken-users