ExplicitProperties

ExplicitProperties is a plugin for the Livecode IDE. It does a (somewhat simple) attempt to recognize and warn you about custom properties which may be mis-typed or otherwise incorrect, vaguely like the "explicitVariable" setting of the IDE does for undeclared variables.

Of course, there is no way to "declare" custom properties, so what ExplicitProperties does instead is - like some spell-checkers - give you the option to "Allow in this stack" for each custom property it finds. These "allowed" property names are then stored in a custom property (called uExplicitPropertiesAllowed) of the stack.

Subsequently, those properties will be ignored - so you only need to "allow" them once. If you do accidentally "allow" a custom property name that shouldn't have been allowed, you can simply edit this custom property (after all, you are in the IDE already).

The latest version can be downloaded here. Some older versions (1.0) can still be downloaded by going to the download directory, though in general I would always recommend the latest version. If you prefer the way some feature worked in the earlier versions, please let me know.

Update 1.1.1 (Dec 10th, 2012)

This version includes the following new features:

The ExplicitProperties stack has a new custom property, uCompletePropertySetReferences. When this is set to true (which it is by default), all property set reference are reported with the complete reference, (e.g. found Property cgdata["asdf"] ), rather than the short form (e.g. cgData[] ).

Update 1.0.1 (Dec 3rd 2012)

Version 1.0.1 is now available. This fixes the issues with multi-line block comments not being fully recognised as comments. It has a minor change to handling of property sets - it will report use of a property set as (e.g.) 'cgData[]' rather than just 'cgData'.

I'm still trying different ways of handling these, so there should be further improvement in the (fairly near) future. This should also include better ways to deal with 3rd party code and custom controls (such as the DataGrid) which have a large number of properties in use.