gpt4 book ai didi

c# - 面向 C# 开发人员的 Common Lisp IDE?

转载 作者:太空狗 更新时间:2023-10-29 19:55:12 27 4
gpt4 key购买 nike

更新

我决定暂时使用 Clojure。

LispDev 还没有准备好,Eclipse/cusp 还不够稳定,让我感到不舒服。

至于 Clojure,在尝试让 Eclipse/CCW、Netbeans/Enclojure 和 IntelliJ/La Clojure 工作的漫长、非常令人沮丧、非常烦人的过程之后,我终于让 Eclipse/CCW 工作了。其余的仍处于大部分损坏的状态。

(如果我有空,我将记录让 Eclipse/CCW 工作所花费的时间。)

所以现在,我将使用它。我可能会重新使用 CL,并查看 LispWorks 和 AllegroLisp 的免费版本,但 Clojure 感觉对我来说更像是在 Microsoft CLR 环境中工作的更自然的一步。

感谢大家的帮助。


原始问题

我是一名 C# 开发人员,非常熟悉 Visual Studio(使用 Resharper)。

我是 Lisp 的新手。我最近对 ​​Common Lisp 和 Clojure 都感兴趣,并且发现了很多关于它们的好资料。

我试过 Emacs + Slime,但感觉这是一个非常落后、过时的解决方案。我对它的功能毫不怀疑,但它的可用性与我习惯的完全不同。除了语言之外,我不想为 IDE 而苦恼。

Clojure 和 CL 都有 Eclipse 插件。我还看到了更多 Clo​​jure 选项。由于我不是 Java 开发人员,所以我对这些 IDE 一无所知。

Eclipse 是一个好的起点吗?还有其他好的选择吗?

编辑:

这是我习惯的功能:

  • 语法高亮和自动缩进(每个人都有这个,所以这是一个有争议的问题)
  • 自动完成函数和变量名
  • 实时显示所有函数重载和参数,以及在输入参数时向上/向下箭头浏览列表的能力
  • 用于代码改进的语法建议,能够为您提供这些建议(“使用常量”、“转换为 LINQ 表达式 (FP)”、“永远不会分配给变量”、“永远不会使用变量” 、“变量可能为空”、“永远不会使用函数”等)
  • Extract Method/Function refactoring:选择一段文本,可以将其提取到一个新的函数中
  • 创建变量重构:选择一段文本并创建一个变量(例如,一个 let)
  • 重命名重构:重命名一个函数或变量声明,所有其他使用它的函数将被更新(自动搜索/替换)
  • 转到方法/函数、变量的定义
  • 查找对特定方法/函数、变量的用法/引用
  • 基于文件夹的集成项目管理工具和构建工具
  • “将类移动到新文件”,它根据类名创建一个新文件,并包含其所有方法
  • “根据类类型重命名文件”,如果您更改类名,它会重命名文件
  • F9/点击行左侧添加/删除断点
  • F10/F11 在调试时单步执行或越过代码,以及一个箭头和高亮显示当前正在执行的代码(单步执行 func,或只是在此处执行)

大多数内容都可以在右键单击上下文菜单中使用,或者在您输入时作为悬停组合框或文本框使用。

我并不是说 emacs/slime 不能做到这一点,但即使可以,它也没有使用任何类似的可用性技术。

最佳答案

如果您习惯了 Visual Studio 并且想要一个类似的 Lisp 产品,那么等效的可能是一个类似的商业 IDE。我知道的大的是AllegroLispworks .

虽然我尝试过演示,但我个人并没有在实际工作(即大型项目)中使用过任何一个。它们看起来还不错,虽然有点复杂,而且 UI 很奇怪,但对我来说并没有比 Slime 好到物有所值。但是,如果您想要像 VS 这样的东西,它们可能正是您要找的东西。

FWIW,我在 Emacs 中同时使用 C# 和 Common Lisp,我发现 Slime 比我迄今为止发现的用于编辑 C# 的任何模式集都要好 10 倍。想想看,我不知道有哪一种开发环境适合我更愿意使用的任何语言或平台——就是这么好。

您可能遇到的一个问题是,Lisp 本身是一种与您习惯的语言完全不同的语言,旧的做事方式不再适用,因此任何 IDE 似乎“倒退”到你。 (我在 C# 之前很久就学会了 Lisp,而 C# 对我来说似乎是倒退和过时的!)因此,与其学习一些 Slime 命令(你真正需要的并不多),不如学习 IDE 命令,这对于你,因为概念是相同的,不一定映射到类似 VS 的 IDE 功能。

但无论您选择什么,都祝您好运!

关于c# - 面向 C# 开发人员的 Common Lisp IDE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5042601/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com