Skip to main content
 首页 » 编程设计

ide之适用于 Windows 或 Linux 或 Mac 的 ML IDE 和编译器

2024年10月25日20cloudgamer

我必须用 ML 编写一些代码,这是我第一次使用该语言。
是否有标准 ML 的开发环境? (最好在 Windows 下)。我尝试使用谷歌搜索(和 stackOverFlowing !),但我发现的只是 Linux 的普通编译器(最多带有交互式控制台),但没有 IDE 或 Eclipse/NetBeans 插件。
有什么建议 ?

请您参考如下方法:

如何使用 Sublime Text 2 配置 SML

对于那些更喜欢 Sublime Text 而不是 Emacs 作为编程 SML 的首选编辑器的人,以下指南描述了如何配置 Sublime Text 以使用 SML。

要使本指南对您有用,您必须已经安装 smlnj .

第 1 步:安装 Sublime Text 和 Package Control

Downloading Sublime Text 2 开始.确保下载第 2 版,因为 SML 语法支持不适用于第 3 版。

Sublime Text 支持一组惊人的软件包(即插件),您可以单独安装它们。这些包之一称为包控制。您必须先Install Package Control能够直接从编辑器安装其他软件包。提供的链接解释了安装此软件包所需的操作。

第 2 步:安装 SML 和 Sublime REPL

现在您已经安装了包控制,安装其他包将变得非常容易。我们现在必须安装两个包:支持编程语言语法高亮功能的 SML 和 SublimeREPL,正如您可能猜到的,它是一个包,它为 Sublime Text 添加了许多不同编程语言的 REPL 功能。

要安装这些软件包,您必须转到菜单并查找工具 -> 命令面板并键入“安装软件包”。在搜索框中,输入要安装的软件包的名称,从找到的列表中选择您的软件包,然后按 Enter 以安装它。对上面提到的两个包执行此操作:“SML”和“SublimeREPL”

一旦您安装了 SML 包,如果您打开一个 SML 文件,您应该在编辑器中获得语法高亮功能。它甚至提供了一个名为 Son of Obsidian 的 Sublime Text 主题,您可以在 Preferences -> Color Scheme -> SML -> Son of Obsidian 中启用它。但是您不需要启用主题以使用 SML,这只是一个偏好。

安装 SublimeREPL 包后,您将能够转到菜单 Tools -> SublimeREPL -> SML 并打开 SML REPL session ,该 session 将支持使用 SML 包的语法突出显示、命令历史记录、行编辑和自动完成。如果您打开两个并排选项卡,您可以让您的生活变得非常轻松,在您的左侧选项卡中,您可以拥有 SML 代码文件,而在右侧,您可以拥有 SML REPL session 。您可以通过使用 View -> Layout 选项来做到这一点。

第 3 步:键盘快捷键

现在让我们添加一些键盘快捷键来使用 REPL。 SublimeREPL 包提供的键盘配置很少,而且所提供的配置可能无法与 SML REPL 配合使用。所以这就是我通常所做的。

  • 首先进入首选项 -> 浏览包
  • 进入 SublimeREPL/config/SML 子文件夹。
  • 编辑文件 Default.sublime-commands在 Sublime Text 本身。该文件包含 Tools -> SublimeREPL 菜单中的当前 SML 菜单选项。因此,我们现在将更改它以创建第二个选项,该选项可以在新的 SML REPL session 中运行现有文件。我编辑的文件如下所示。注意“id”字段。我们可以根据需要定义任意数量的不同命令,给它们一个不同的 ID。在下一步中,我们将定义每个命令的作用。
    [ 
        { 
            "caption": "SublimeREPL: SML", 
            "command": "run_existing_window_command", "args": 
            { 
                "id": "repl_sml", 
                "file": "config/SML/Main.sublime-menu" 
            } 
        }, 
        { 
            "caption": "SublimeREPL: SML - Run File", 
            "command": "run_existing_window_command", "args": 
            { 
                "id": "repl_sml_run", 
                "file": "config/SML/Main.sublime-menu" 
            } 
        }     
    ] 
    
  • 现在,在与上一个文件相同的目录中,编辑 Main.sublime-menu文件。该文件包含上面定义的每个命令应该做什么的详细信息。我编辑的文件定义了上面描述的两个命令,一个是简单地打开 REPL,另一个是在 REPL 中打开当前文件。它看起来如下:
    [ 
         { 
            "id": "tools",         
            "children": 
            [{ 
                "caption": "SublimeREPL", 
                "mnemonic": "r", 
                "id": "SublimeREPL", 
                "children": 
                [{ 
                    "caption": "SML", 
                    "id": "SML", 
                    "children": [ 
                        {"command": "repl_open", 
                         "caption": "SML", 
                         "id": "repl_sml", 
                         "args": { 
                            "type": "subprocess", 
                            "encoding": "utf8", 
                            "cmd": ["sml"], 
                            "cwd": "$file_path", 
                            "external_id": "sml", 
                            "syntax": "Packages/SML (Standard ML)/sml.tmLanguage" 
                            } 
                        }, 
                        {"command": "repl_open", 
                         "caption": "SML - Run Current File", 
                         "id": "repl_sml_run", 
                         "args": { 
                            "type": "subprocess", 
                            "encoding": "utf8", 
                            "cmd": ["sml", "$file_basename"], 
                            "cwd": "$file_path", 
                            "external_id": "sml", 
                            "syntax": "Packages/SML (Standard ML)/sml.tmLanguage" 
                            } 
                        } 
                    ]                                 
                }] 
            }] 
        } 
    ] 
    
  • 最后一步是为这两个命令添加键盘快捷键。转到 Preferences -> Key Bindings User 并使用以下两个附加命令编辑文件。随意更改我的键并使用您认为合适的任何其他快捷键,前提是它们不用于其他功能。
    [ 
        {   
          "keys":["ctrl+alt+j","k"],    
          "command": "repl_open",       
          "args": {   
               "type": "subprocess",   
               "encoding": "utf8",   
               "cmd": ["sml"],   
               "cwd": "$file_path",   
               "syntax": "Packages/SML (Standard ML)/sml.tmLanguage", 
               "external_id": "sml" 
          }   
        } , 
        {   
          "keys":["ctrl+alt+j","m"],    
          "command": "repl_open",       
          "args": {   
               "type": "subprocess",   
               "encoding": "utf8",   
               "cmd": ["sml", "$file_basename"],   
               "cwd": "$file_path",   
               "syntax": "Packages/SML (Standard ML)/sml.tmLanguage", 
               "external_id": "sml" 
          }   
        }   
    ] 
    

  • 我们已经完成了。现在,您只需按 CTRL+J,K(即按 Ctrl+Alt+J,然后松开键并按 K)即可打开 SML REPL。如果您当前正在处理 SML 文件,则可以按 CTRL+J,M 将其发送到新的 SML REPL session 。

    第 4 步:构建系统

    Sublime Text 提供的配置允许您解析代码文件并确定是否有问题,并让您确切知道问题出在哪里。为了做到这一点,我们必须配置一个“构建系统”。配置只是一个文件,告诉 sublime text 要运行什么命令以及如何解释输出。如果 sml 解析器无法解析或执行您的程序,则输出会告诉您问题出在哪里。构建系统让我们定义一个正则表达式来解析这样的输出并帮助 Sublime text 找到包含问题的行和列。

    转到 Preferences -> Browse Packages 并在 User 文件夹下创建一个名为 SML.sublime-build 的新文件。并定义文件如下:
    {   
      "cmd": ["/usr/local/bin/sml","$file"],   
      "selector": "source.sml",   
      "working_dir": "$file_path", 
      "file_regex": "^(.*\\.sml):(\\d+)\\.(\\d+)(\\-(\\d+)\\.(\\d+))?\\s(.*)$" 
     }  
    

    确保用系统中的有效路径替换命令路径。保存文件后,您可以转到菜单并选择工具 -> 构建系统 -> SML。然后,要检查您的文件,您可以执行 Tools -> Build 来解析您的文件并查找任何错误。通过使用菜单选项 Tools -> Build Result -> Next Result 和 Previous Result 您可以在构建系统选项检测到的错误之间导航,Sublime Text 会将光标定位在 SML 编译器报告的错误的确切位置.

    我上面的正则表达式可能不是最好的,所以请随时根据您的需要改进它。

    就是这样。您已经准备好开始使用 SML 和 Sublime Text 进行编码了。