A short comment starts with a double hyphen (--) anywhere outside a string. These are short comments and they run until the end of the line.
Here is an example of a short comment:
-- This is a comment!
Comments can also be defined using a long format enclosed by long brackets. We define an opening long bracket of level n as an opening square bracket followed by n equal signs followed by another opening square bracket. So, an opening long bracket of level 0 is written as [[, an opening long bracket of level 1 is written as [=[, and so on. A closing long bracket is defined similarly; for instance, a closing long bracket of level 4 is written as ]====]. A long comment starts with an opening long bracket of any level and ends at the first closing long bracket of the same level. Comments in this bracketed form can run for several lines and ignore any long brackets of any other level. They can contain anything except a closing bracket of the proper level.
Here is an example of a long comment:
--[===[ This is a long comment. It can contain hyphens, like this: -- It can also contain long brackets of another level than its own level, like this: [====[, or even [[ And they can be closing long brackets, like this: ]====] ]===]
Writing useful commentary is almost as hard as writing the code itself. It is all too easy to write whatever the code does, but not why it does so or the super-objective of the code.
Write your code and comments in paragraph form. Break each piece of code into sequences that achieve a single task with comments in-between.
Doing this creates a distinct separation between your code and comments. Plus, it’s visually pleasing.
Not all commenting is productive commenting. Too many comments can make your code less meaningful and therefore less readable. Tell us why, not how.
There are many beliefs on the proper way to comment code. Some feel comments should be so detailed that a non programmer could follow the logic, while others believe you use comments for support. What matters most is that you are consistent in your commenting style. This helps your reader know what to expect when going through several different projects.
The chances of you commenting a finished project are slim, so do yourself a favor and comment your code immediately, so you can come back later and know what that piece of code was doing.