on master help sign in
Merge pull request #2055 from urbit/alangalis-create-hoon-linter

Create hoon-linter.md

commit54913eda41c5a91c125cf5f8dd3ed2c0632f8608 authoralangalis <116312511+alangalis@users.noreply.github.com> dateTue 21 Mar 2023, 15:36 (4 years ago) parenta04f7ee0722391
1 file changed+30
content/grants/2023/hoon-linter.md+30
content/grants/2023/hoon-linter.mdnew file+30
@@ -0,0 +1,30 @@
1++++
2+
3+title = "Hoon Linter"
4+date = "2023-03-21"
5+
6+[taxonomies]
7+grant_type = ["Proposal"]
8+grant_category = ["Core Dev"]
9+
10+[extra]
11+image = ""
12+description = ""
13+reward = "2 Stars"
14+assignee = ["~watter-parter"]
15+champion = ["~rovnys-ricfer"]
16+grant_id = "P0224"
17+completed = false
18+canceled = false
19+
20++++
21+
22+# Description #
23+
24+Most languages have some form of "linter" available that reports potentially-problematic code. Typically, such code will successfully compile, but will fail at runtime or produce otherwise undesirable results. Because the code is technically valid, it cannot be rejected by the compiler (at least, not without changing the language spec, which risks breaking existing programs), but we can still warn the programmer that what they are doing is likely to cause problems.
25+
26+I have started work on a "Hoon linter" that serves this purpose. The linter is integrated with %language-server, and can thus report warnings directly in any editor that supports the Language Server Protocol. The linter can also be invoked as a standalone generator. Currently, the linter only checks for duplicate union tags. I would like to add more checks to the linter, such as detecting when a noun is pinned to the subject but never used. There are also a few warts that I would like to eliminate, with guidance from someone more experienced.
27+
28+# Compensation #
29+
30+Reward: 2 Stars