realgud pdb mit .dir-Locations.el

Nov 10 2020

Ich versuche, lokale Verzeichnisvariablen zu verwenden, damit mein realgud:pdbAufruf wie folgt lauten kann:

Run pdb (like this): /home/username/work/place/environments/default/bin/python -m pdb /home/username/work/place/scratch.py

Anstatt von :

Run pdb (like this): python -m pdb /home/username/work/place/scratch.py

wie hier vorgeschlagen .

.dir-locals.elIch verstehe jedoch, dass ich für diese Antwort nil und eval verwenden muss, um den dortigen Vorschlag so zu transformieren, dass er kompatibel ist .

Also bleibt mir folgendes übrig:

;; .dir-locals.el
;; set the test runner
((nil . ((eval . (add-hook 'python-mode-hook
  (function (lambda ()
              (let* ((conda-python (format "%/envs/default/bin/python -m pdb" (projectile-project-root))))
                (setq-local realgud:pdb-command-name conda-python))
              )))
         ))
      ))

Dies beschwert sich nicht oder schlägt fehl, außer dass ich gefragt werde, ob ich den Bewertungsparametern vertraue. Es scheint jedoch nicht zu funktionieren, da mein M-x realgud:pdbAufruf immer noch lautet:

Run pdb (like this): python -m pdb /home/username/work/place/scratch.py

Mein init.elenthält:

(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.
 '(column-number-mode t)
 '(conda-anaconda-home (expand-file-name "~/anaconda3"))
 '(elpy-test-pytest-runner-command '("py.test"))
 '(elpy-test-runner 'elpy-test-pytest-runner)

... was meiner Meinung nach nicht stört, sondern der Vollständigkeit halber enthält.

Was muss ich ändern, damit ich .dir-local.elden richtigen Testläufer für pdb auswähle? Im Wesentlichen versuche ich, den Vorschlag der verknüpften Antwort zu kombinieren, um meine zu ändern init.el, jedoch auf Verzeichnisbasis, indem .dir-locals.elich verwende , da meine Projekte unterschiedliche Umgebungsnamen haben und ich keine pro Projekt mehr habe.

Antworten

1 f-sasa Nov 12 2020 at 13:12

Ich habe versucht, anstatt einen Hook zu setzen, nur die Variable mit der python-modeZuordnung auszuwerten und scheint gut zu funktionieren. Hier ist der Code:

((python-mode . ((eval .
           (setq-local realgud:pdb-command-name (concat
                             (projectile-project-root)
                             "envs/default/bin/python -m pdb"))))))