Facebook has released the source code for Nuclide, its open IDE for React Native, Web and mobile development atop GitHub’s open-source Atom code editor.
Among the many announcements made at Facebook’s F8 developer conference back in March, the company debuted Nuclide for unifying its internal development between native iOS apps, React and React Native code, its Hack programming language and its HHVM Web server runtime. Nuclide is essentially a suite of packages of Atom, providing a native shell for local mobile compiler, language and key-binding integrations. The packages also include an extensible API for developing Nuclide-specific functionality.
Facebook developer Michael Bolin announced the source code release in a blog post, explaining why it made sense to build on Facebook’s investments in React and JavaScript by creating Nuclide atop Atom, and why open-sourcing Nuclide’s codebase is only the beginning.
“Our vision of a unified cross-platform developer experience is far from complete,” wrote Bolin. “Support for the iOS, React and React Native use cases are all on the near-term package road map. We know debugging is important on both the server and mobile sides, and Nuclide will automatically grow in functionality as the underlying tools like Buck and Infer do. Finally, we are also excited to start supporting forthcoming patterns like Relay and GraphQL as important first-class citizens in the suite.”
Some of Nuclide’s main features include:
- Remote development: A pair of packages allowing connections over SSH to a lightweight node daemon on the server, enabling remote file editing and syntax/type validation on VMs and local Hack/HHVM development.
- Hack language support: Support including syntax highlighting, type-checking, autocomplete, and click-to-symbol features for Facebook’s Hack language.
- Flow support: Local and remote Flow support for JavaScript development, including quick refactoring on React components and apps. Nuclide supports Flow-specific decorations and editor features in @flow-annotated files.
- Mercurial support: Facebook now uses Mercurial as its primary source-control platform, including Nuclide support for change highlighting in the file tree, bookmark labeling, and a read-only diff viewer.
- Omni-search: Facebook’s universal search tool package for finding files and symbols quickly and efficiently.