CATS is an IDE for the TypeScript developer. CATS is open source software released under the Apache 2.0 license and runs on Linux, Windows and OS X. CATS itself is written in TypeScript and even being developed using CATS as the IDE.
Right now CATS already has built-in support for the following features:
- Intelligent code editor and code completion for TypeScript sources.
- Syntax highlighting for over 110 languages (TextMate/Sublime Text.tmlanguage files can be imported)
- Support for refactoring and smart navigation.
- Validation of the source code while you are typing.
- Generate API documentation based on the comments in the source code.
- Editing features like folding and indentation.
- Running your application from within IDE and using the WebKit debugger to debug.
- Support for external build systems like Grunt, Jake and Makefiles.
Clone a copy of the CATS repo:
git clone https://github.com/jbaron/cats.git
Change to the cats directory:
Install Nodewebkit, TypeScript, Jake and the module dependencies:
npm install -g nodewebkit npm install -g typescript npm install -g jake npm install
Use one of the following to build:
jake lib/main.js # Builds the main frontend module for CATS jake lib/tsworker.js # Builds the Web workers module jake clean # Cleans the compiler output, declare files, and tests jake default # Builds the full CATS application jake -T # List the above commands.
From the cats directory run
There are some option you can use. For example to open CATS with a specific project, use:
nodewebkit --project </path/projectDirectory>
Although you can use a relative path for specifying the project directory, please notice it is relative to the CATS installation directory and not the directory you are currently in. So normally better to use a full path.
To open CATS with the same project as last time use the --restore option:
With CATS you also get a samples directory with some small projects you can try out. Of course you can also open a directory that contains your own project.
nodewebkit --project samples/greeter
CATS will look for a file in the project directory called: ".settings/config.json". If found, CATS will use the values configured in this file, otherwise it will use some sensible default values. You can edit this file (or the default values if you don't have this file yet) from the main menu.
One of the main goals of CATS is to make the developer that is used to IDE's like Eclipse, NetBeans, Visual Studio or IntelliJ, feel right at home. So the same support you got from your IDE when you developed in Java or C#, is now available for TypeScript projects.
However a lot of effort is spent to assure CATS deosn't become a resource hog. So while designing and developing CATS, performance is one of the key aspects. In fact, CATS runs fine on older hardware.
In case you encounter an issue, you can open a ticket on Github. Also enhancement requests can be entered here: Github issue tracker
There is not a lot of documentation yet explaining the structure of CATS and how the different parts work together. So the more surprised we were when we received some pull request that added functionality or fixed some bugs. So thanks to everyone who already contributed to this project.
And of course some of the main 3rd party components that we have used within CATS and couldn't have done without:
- TypeScript (of course), developed by Microsoft.
- Node-webkit. This is a great initiative from Intel to allow Node libraries to be used within a web page. CATS use this to read and write local files without the need for a server-side component.
- TSLint. A linter for the TypeScript language that help to improve yuor code base even further.
- TypeDoc. This is a documentation generator for TypeScript projects that supports theming and a lot of other very impressive features.
The todo list items are tracked as enhancement requests on GitHub. You can check them out at:
There is also a milestone planning in there when some enhancements should be delivered.