Just curious what others are using for IDE's to do Smart UI development in. The OT documentation mentions webStorm, but I'm looking at free IDE's if possible.
-Hugh
The reason for recommending WebStorm is the superior Require.js plugin, which allows completion of module names and navigation to function implementation.
https://plugins.jetbrains.com/plugin/7337-require-js-pluginhttps://github.com/Fedott/WebStormRequireJsPluginhttp://stackoverflow.com/a/21954895/623816
An example of "Require.js config file" for the editor plugin, which expects "Path to script root" set to ".":
require.config({ paths: { // Path to your source modules yourprefix: 'src', // Paths to CS UI SDK source modules csui: 'lib/src/csui', esoc: 'lib/src/esoc', webreports: 'lib/src/webreports', // Paths to Require.js plugins used by aliases css: 'lib/src/csui/lib/css', 'csui-ext': 'lib/src/csui/utils/load-extensions/load-extensions', hbs: 'lib/src/csui/lib/hbs', i18n: 'lib/src/csui/lib/i18n', json: 'lib/src/csui/lib/json', less: 'lib/src/csui/lib/less', txt: 'lib/src/csui/lib/text' }});
Support for Require.js in other editors is nowhere near. Karma integration for unit testing stands out as well. There are s a lot of other goodies like debugger, Grunt task support etc., which can be found in other IDEs too.
We started with Aptana (Eclipse-based IDE) a couple of years ago, but I cannto remember about Require.js support there. We switched to WebStorm to get better quality and more features.
I did not find support for Requre.js in Atom.
The support for Requre.js in Visual Studio Code is promising, but it is enough only for projects, which do not us path aliases. (Which we do in CS UI.) It would need a major contribution to use a Require.js config file and so get on the WebStorm level:
https://marketplace.visualstudio.com/items?itemName=lici.require-jshttps://github.com/anacierdem/vscode-requirejs
Visual Studio has also a Require.js plugin, but it does not support Require.js config file either.
If the Require.js and Karma support are no blockers for you, you can choose any decent JavaScript IDE and switch between it and the command line, where you would call "grunt debug", "grunt karma", or whatever you need. I do it sometimes with vim :-)
When I am travelling with a laptop I experiment with VS Code. WebStorm eats the battery quite a little, also in the Power Save mode, while VS Code seems to just gnaw on it :-) But nothing beats writing in vim speaking of battery life :-)
We're using VS Code. It's something we've been using it for a while now and really enjoy it.
I'm not sure I've fully understood Ferdinand's comment, as we're not hitting any problems yet. I think we're avoiding the require.js problem by not using Code for the debug/unit testing phase.
For the Smart UI work, we avoided the temptation to go with something we're more familiar with like Gulp or npm/Webpack as the task runner and instead just updated the root Gulpfile.js created by the generator with the following steps:1. Add some extra modules to the projectnpm install grunt-contrib-watch grunt-browser-sync --save-dev
2. Open the Gruntfile.js at the root of the project and insert the following into the subgrunt object defintion, in between the test and output attributes:karma: { 'test': 'karma' },
3. Then add the following underneath the subgrunt task object (remembering to put a comma after that object):browserSync: { bsFiles: { src: 'src/**/*' }, options: { watchTask: true, server: { baseDir: './', directory: true } }},watch: { files: 'src/**/*', tasks: ['check', 'subgrunt:karma']}
4. Find the grunt.loadNpmTasks('grunt-notify'); line further down the file and add the following:// watch for changes, run tasks and reload servergrunt.loadNpmTasks('grunt-browser-sync');grunt.loadNpmTasks('grunt-contrib-watch');grunt.registerTask('dev', ['browserSync', 'watch']);
5. Then run grunt dev on the command line to start the server and watch for changes. If you're using VS Code you can also use it's tasks functionality to do it instead of using the command line.
Error notification is still a bit subtle and it'd be great to get grunt-notify to surface the test errors, but that's more changing the generator code that I think makes sense at the moment.
Is it worth putting the generator in a place like github to allow users of it make pull requests?
Hi. So, if I use WebStorm, do I still need to use the Content Server IDE Plugin? Or is that only applicable if I was to use the Eclipse client?