我在 Emacs elisp 中连接路径的方式有什么问题

问题描述 投票:0回答:1

我的项目中有一个 .dir-locals.el 文件,我在其中配置我的项目,以便使用 Emacs 中的 dap-debug 和 debugpy 进行调试。

我有 .dir-locals.el 文件的这个变体,工作得很好:

((nil . ((eval . (progn
                   (setq-local my-local-root (projectile-project-root))
                   (setq-local my-local-path (expand-file-name "linux-application/my_app" my-local-root))
                   (message "Project root is: %s" my-local-root)
                   (message "Concatenated path: %s" my-local-path)))
         (dap-debug-template-configurations
          . (("Docker Pytest Debug"
              :type "python"
              :request "attach"
              :hostName "localhost"
              :port 5678
              :name "Docker Pytest Debug"
              :pathMappings ((
                              ( :localRoot .  "/home/my_user/projects/our-gateway/linux-application/my_app")
                              ( :remoteRoot . "/usr/src/app/linux-application/my_app")
                              ))))))))

现在,为了让事情更通用一些,我想替换:

 ( :localRoot .  "/home/my_user/projects/our-gateway/linux-application/my_app")

像这样:

( :localRoot . my-local-path)

但这不起作用。进行更改时,调试器找不到源代码。

这让我相信路径“my-local-path”与我的工作变体中的字符串不同。当我查看 Emacs 消息缓冲区中变量“my-local-path”的打印时,它看起来是相同的。我还检查过它们都是字符串。文件 .dir-local.el 位于文件夹 /home/my_user/projects/our-gateway 中。

我也尝试过使用“concat”进行串联,但这会产生相同的问题。

debugging emacs elisp remote-debugging
1个回答
0
投票

谢谢tripleee,你是对的。这是我的工作文件:

((nil . ((eval . (progn
               (setq-local my-local-root (projectile-project-root))
               (setq-local my-local-path (expand-file-name "linux-application/my_app" my-local-root))
               (message "Project root is: %s" my-local-root)
               (message "Concatenated path: %s" my-local-path)
               (setq dap-debug-template-configurations
                     `(("Docker Pytest Debug"
                        :type "python"
                        :request "attach"
                        :hostName "localhost"
                        :port 5678
                        :name "Docker Pytest Debug"
                        :pathMappings (((:localRoot . ,my-local-path)
                                        (:remoteRoot . "/usr/src/app/linux-application/my_app")))))))))))
© www.soinside.com 2019 - 2024. All rights reserved.