What external tools do you use for Ignition development, and why?

What external tools/software do you use for Ignition development, and why?
Please link to any relevant product pages.

This was inspired by @pturmel's mention of jq which I have no familiarity with. I figure there must be a lot of things I am not familiar with that could be quality of life improvements.

For example


WHAT: External text editor, specifically I've been using Notepad++.

WHY:

  • I will often copy scripts, JSON etc. out of designer to an external text editor modify it then paste it back in. I consider this one of the biggest strengths of Ignition, that most configuration can be exported/imported or copy/pasted as text, allowing for external modification of that text.
  • I've got some basic expectations from a text editor that are not included in Ignitions script editor.
  • White space formatting (I prefer a less intense formatting for whitespace characters so I can leave display of whitespace characters enabled and notice/use it when I need to. I almost always turn whitespace display off in designer's script editor as I find it distracting (but I appreciate its it's tab lines).
  • It used to be that designer's script editor would universally mess up indentation when I copied and pasted lines, haven't noticed that for a bit so perhaps it has improved in recent versions (or I have adapted).
3 Likes

I used Notepad++ for a long time, but in the last year have actually converted over to NeoVim. May not be for everyone but, not having to move my hands away from the keyboard (unless I need to move over to the designer), makes my work flow much more efficient.

Definitely takes some time to adjust to Vim Motions, but once I did my work flow sped up significantly.

4 Likes

The KDE desktop in Linux.

The ability to open both local and remote (sftp:// URLs) resources in the desktop's native file manager is an extreme time-saver. It also helps that the unified environment means I can open remote files directly from those file manager windows, and any app that integrates with Linux desktops will get the real URL, allowing efficient remote editing. (KDE's notepad++ equivalent, kate, does this utterly seamlessly.) Any non-integrated apps will be pointed at a quick copy in /tmp.

All of the above properly use any SSH keys currently present in my ring, avoiding any prompts on the systems I normally access. Windows has no support for native use of SFTP in its file manager, nor any unified ssh-agent implementation. (putty/winscp/pageant are useful, but not integrated with anything else.)

(Kate has all of the functionality you highlight in notepad++, and a lot more.)

Linux's other popular desktops have similar capabilities, but I find KDE plasma the most friendly to power users.

3 Likes

The main tools we use are:

  • Figma, for user interface design (components, styles, etc translate cleanly to their Perspective counterparts)
  • Excel, for site deployment templates that create an entire plant's data model and inject document tag values, custom props, etc via @pturmel's Spreadsheet Import Tool.
3 Likes

I should add that my password manager is KeePassXC, for multiple reasons:

  • Doesn't store my passwords in anyone's cloud. (Though you can.)
  • Cross platform.
  • Has a great browser plugin, supporting all the major browsers.
  • Include ssh-agent support in Linux, adding and removing my primary SSH keys whenever the password database is opened/locked.
4 Likes

One tool that I've been using a lot more is:

Postman

Postman is an API platform that helps developers build and use APIs. It comes in handy when using the WebDev module to create endpoints.

I do a lot of my testing in Postman then build the script equivalent inside of Ignition.

Along with postman when working with APIs I use the following for better data readability:

JSONFormatter - Paste in JSON to view it in pretty print
XMLFormatter - Paste in XML to view it in pretty print

Another tool I use a lot is not a program but a feature built in Windows that many people don't know about if you press WINDOWS KEY + V. You have clipboard history I get asked all the time in meetings what program I use and its built in Windows.

14 Likes

Am I allowed to plug Kindling here? :smile:

21 Likes

How did i not know this?! I am going to use this all the time, thank you!

7 Likes

Was just discussing with a colleague how we need macropads with a key to insert the string view.params.tagPath. Now that would be an efficiency boost.

In NeoVim you can setup macros to do things exactly like this.

1 Like

Lightsot screenshot a lot for my questions in this forum

Can you guys explain what you are editing outside of the designer directly? I get that you "copy" from the designer, into something like Notepad++, make your edits, and then "paste" back into the designer... but reading Phil's message about kate seems to imply that he is opening project files directly from the linux file manager and modifying... but it isn't clear to me if you then can save the file there in the external tool, or if you have to somehow copy it back into the designer. For example, let's say I navigate to a code.py file for a gateway script - if I open that in an external editor, make a modification, then save the file - it seems that it would bypass updating the resource.json (is that "safe" to do? or does Ignition watch for these edits outside of the designer?). I clearly don't know what I'm talking about - but I'm just curious what kind of edits you can safely make to project files without pasting the edits back in through the designer. Thanks!

1 Like

I've edited some project files directly and the updates do sometimes take a few minutes to apply (or after a gateway restart)

I could edit Ignition project resource files remotely, at least the ones in text form, but I generally don't. Ignition notices such edits on a configurable schedule, normally five minutes. A running designer will not get the changes unless it deliberates updates.

When using a tool like kate to edit remote files, saving the file within kate saves to the remote location. I typically use these conveniences to manipulate ignition.conf or to open the text-based wrapper.log (way easier to read than the gateway logs page). For VMs that I have set up as dev environments for my various clients, I create folders of shortcuts with quick access (sftp:// URLs in KDE's file manager) to the Ignition data/ and data/logs/ folders. I'm always only a couple clicks away from access to those resources.

2 Likes

Scripts mostly, but also SVG markup, JSON from various places, ignition.conf. I also use it for easy viewing and searching of the wrapper.log files.

I try to stay away from editing project resource files directly, I wouldn't exactly call that "safe" to edit.

1 Like

SVG Libraries:

Online SVG Code Editor:
https://editsvgcode.com/

Online SVG Graphical Editor:

Monochrome Color Palette Generator:

Gradient Generator:

9 Likes

I'll add these:

2 Likes

Keith Gamble has a VSCode plugin, Flint, that's exactly geared towards "direct editing of scripts outside of the Designer":
https://forum.inductiveautomation.com/t/flint-a-vscode-extension-to-help-with-ignition/88319?u=pgriffith

And yes, Notepad++ is a must.

That link points to a lounge thread, most people won't be able to see that