zoukankan      html  css  js  c++  java
  • windows配置cider和clojure clj

    windows配置cider和clojure clj

    windows配置cider和clojure clj

    1 clj windows

    因为leiningen 启动速度太慢了,linux下的clj启动速度挺好的,就是clj命令行对windows支持还在测试中,有一个第三方实现的clj windows项目,用于支持windows下的clojure cli。项目地址clj-windows。不过在配合cider的过程中有命令行启动参数的问题,需要修改cider的代码,在此记录下,用于备忘。

    linux的启动命令:

    clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.20.0"} }}' -e '(require (quote cider-nrepl.main)) (cider-nrepl.main/init ["cider.nrepl/cider-middleware"])'
    

    Windows的启动命令:

    clj -Sdeps "{:deps {cider/cider-nrepl {:mvn/version "0.20.0"} }}" -e "(require (quote cider-nrepl.main)) (cider-nrepl.main/init ["cider.nrepl/cider-middleware"])"
    

    主要是把单引号改为双引号,嵌套的双引号进行转义。

    2 cider.el的修改

    首先是cider-jack-in-params函数:

    ('clojure-cli (format cider-clojure-cli-parameters
                          (concat
                           "["
                           (mapconcat
                            (apply-partially #'format ""%s"") ;; 改这里
                            (cider-jack-in-normalized-nrepl-middlewares)
                            ", ")
                           "]")))
    
    ;; 改为
    (apply-partially #'format "\"%s\"")
    

    然后是 cider-clojure-cli-jack-in-dependencies函数:

    (concat
     global-opts
     (unless (seq-empty-p global-opts) " ")
     "-Sdeps '{:deps {" ;; 修改这里和下面的引号
     (mapconcat #'identity
                (seq-map (lambda (dep) (format "%s {:mvn/version "%s"}" (car dep) (cadr dep))) dependencies)
                " ")
     "}}' "
     params)
    
    ;; ---> 改引号为下面的形式
    "-Sdeps "{:deps {"
    (mapconcat #'identity
               (seq-map (lambda (dep) (format "%s {:mvn/version \"%s\"}" (car dep) (cadr dep))) dependencies)
               " ")
    "}}" "
    
    

    修改上面两个地方后,cider就可以启动clj cli了,可以正确解析deps.edn依赖。

    作者: ntestoc

    Created: 2019-03-16 周六 19:57

  • 相关阅读:
    hdu1124 Factorial (求解一个数的阶乘中出现多少个0)
    SQL on Linux: Erro Unable to read instance id from /var/opt/mssql/.system/instance_id
    Error during WebSocket handshake: Unexpected response code: 200 问题处理
    CUP计算资源争抢通过IIS启用处理器关联解决
    ABP在MultipleDbContext也就是多库的场景下发布后异常“Could not find content root folder”问题处理
    ABP运行Login failed for user 'IIS APPPOOL XXXXX Reason: Could not find a login matching the name provided问题解决
    vs2017cpu占用过高解决方案
    docker查看挂载目录Volume
    windows 10安装docker一直挂起在Installing Components and Removing Files
    ABP vue+asp.net core yarn serve报 Cannot find module 'typescript/package.json错误
  • 原文地址:https://www.cnblogs.com/ntestoc/p/10544064.html
Copyright © 2011-2022 走看看