SnapCode :一个真正的 Web Java IDE


SnapCode 让您能够快速轻松地在任何现代浏览器中开始编写 Java 代码。SnapCode 提供现代编码功能、对 Java REPL(读取-求值-打印-循环)的支持以及对 UI、图形、图表、3D 等的全功能库支持。所有这些使 SnapCode 能够有效用于从教育到工程和数据科学的广泛用途。SnapCode 借助以下功能快速开始工作:

现代 IDE 功能
SnapCode 拥有您对现代 IDE 所期望的一切,使编写代码变得快速而简单:

  • 语法高亮
  • 代码完成(接收类/类型感知)
  • 匹配符号突出显示
  • 括号/方括号的平衡字符对处理
  • 输入时内联警告和错误
  • 项目级搜索(字符串或符号、引用和声明)
  • 单击即可跳转到符号声明、超级声明、JavaDocs 和源代码
  • 编辑器显示所选符号的 AST 层次结构

Java REPL(读取-求值-打印-循环)
SnapCode 允许您避免使用样板代码,并在您键入时评估代码片段以获得即时反馈。

  • 隐式类和主要方法声明 - 只需开始输入代码
  • 变量类型“var”用于隐式变量类型声明
  • 语句终止符(分号)是可选的
  • 直接访问常见的系统方法(无需前言)(print()、println() 等)
  • REPL 样式输出(将堆叠输出显示为丰富的交互式视图)

Java REPL 支持是可选的 - 支持完整的 Java,并且可以自动生成,适用于代码需要可移植和兼容的情况。

全功能库支持
SnapCode 使用 SnapKit 和 SnapCharts 库构建,可以访问高级应用程序功能。

  • 使用SnapKit完成 UI 编程
    • 标签、按钮、滑块、文本字段
    • ListView、TableView、TreeView、TabView、浏览器
    • SplitView、ScrollView、DrawerView
    • 矢量图形形状、任意变换、图像效果、渐变、纹理
    • 支持 OpenGL/WebGL 的 3D 库(CameraView、VertexArray、Scene、Shape3D、Texture)
    • UI 动画使物体发出嘶嘶声、滑动、摇晃和弹跳
  • SnapCharts提供完整的图表支持
    • 酒吧,馅饼
    • 散点图、面积图、线图
    • 轮廓线、极坐标轮廓线、3D轮廓线
    • 对数轴、多 Y 轴
    • 平移、缩放、鼠标悬停标签

Java Markdown
Java Markdown (JMD) 是标准 Markdown 的简单扩展 ,它添加了一个新的“可运行块”。只需用分隔符“~”将标准 Markdown 文件中的 Java 代码括起来,该块内的代码就会被编译、执行和显示。它支持一种简单的show(anything)方法,该方法告诉查看器要在块中显示什么。参数可以是任何内容:文本、图像、视图、UI 组件、图表等。


Java Markdown - run live Java code in a document

~
show("Hello World");
~~~

Java Markdown 文件在 SnapCode 中编辑,可以作为完整 Java 项目的一部分,以从支持类、包和外部库依赖项中提取。JMD 可以作为独立的浏览器页面或在 SnapCode 内部查看。此功能仍在开发中,未来将有许多改进。

交互式帮助系统
SnapCode 还具有集成的帮助系统,可以快速找到几乎任何类型代码的模板。

即将推出
近期的规划中有许多功能:

  • 浏览器版本中的可视化调试器
  • 支持 Java 11 及更高版本
  • 拼图块编码
  • Github 支持

技术
该项目使用以下工具构建:

  • SnapCode - SnapCode 的源代码(Github)
  • SnapKit -Java UI 工具包(Github)
  • SnapCharts ——Java 图表库(Github)
  • CheerpJ - 浏览器中的 Java JVM