It makes logical sense that a program that can understand the entire project provide you more help then a more limited program. For example you refactor some code and make a typo in a function name, now because you changed the function name this function is no longer used from other code(because that code uses an old name), because is not used anymore it is highlighted in the IDE as unused and you just caught a typo error (I am expecting now that TDD would have caught this, or a typo in a var name but not everybody is testing everything and the problem is caught in the IDE without any effort from you)
Can your plugin go that?
An example of a language that can't be analyzed by IDE tooling is the English language. Case in point the English language can't be compiled either.
The parent poster is basically saying that there are languages that are so complex that to even program in these languages you (usually) need IDE tooling to assist you. C++ and Java are good examples of this.
I rather prefer C++ and Java than any of those "I don't need IDE" languages.
I have been using IDE based languages since I became a Borland customer around 1991, and while XEmacs allowed me to survive without IDEs to the point that I still remember most of my way around ELisp, I don't miss those days.
"Anders Hejlsberg on Modern Compiler Construction"
https://www.youtube.com/watch?v=wSdV1M7n4gQ
Basically ability to see the language AST at all time, do time checking with broken code, incremental compilation, REPL and IDE editing experience is fused together.
Here is another short examples,
"7 minutes of Pharo Smalltalk for Rubyists"
https://www.youtube.com/watch?v=HOuZyOKa91o
"MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk"
I've seen Java codebases use reflection heavily enough to utterly confuse the IDE.
This will not work for stuff that is random object from a JSON but so far I never worked with random data.