SublimeLinter-contrib-dmd: dmd feedback as you type
Bastiaan Veelo
Bastiaan at Veelo.net
Thu Nov 2 09:26:48 UTC 2017
On Thursday, 2 November 2017 at 08:35:08 UTC, Temtaime wrote:
> On Thursday, 2 November 2017 at 06:43:36 UTC, Bastiaan Veelo
> wrote:
>> On Wednesday, 1 November 2017 at 20:09:02 UTC, Temtaime wrote:
>>> Works too strange.
>>> Seems it checks only syntax and doesn't display non-syntax
>>> related errors.
>>
>> Also, what is your compiler version, OS, and do you have other
>> plugins active?
>
> No way to post a reduced example.
> I tried it with one-file test example and it displays all the
> errors correctly, but in my projects with 30 KLOCS it displays
> only syntax erorrs.
>
> DMD from git master branch, windows, no other plugins.
Maybe the error is actually detected but shown in a different
location? Use Tools->SublimeLinter->Show All Errors to see if it
is there.
You can turn on debugging from the menu
Tools->SublimeLinter->Debug Mode, and open the console (Ctrl+` or
icon in lower left corner) to see the dmd output. Do you see the
error messages you expect?
The linter calls dmd on just the file that is in your view (in a
temp directory). That is probably not how you compile your
30KLOCS project, maybe errors depend on that? Does dmd give the
error message you expect when you call dmd on that particular
file by hand? The linter uses these command line switches: -o- -w
-wi -vcolumns.
If there is a difference in what dmd produces and what is picked
up by the linter, we should adjust the python regex [1]. Note
that it should discard tracebacks like "called from here". I used
[5] to help with that. If you want to hack on it yourself, you
can remove the package SublimeLinter-contrib-dmd and clone [2]
into C:\Users\<user>\AppData\Roaming\Sublime Text 3\Packages.
Maybe dmd sends some of its output to stdout. Change [3] from
util.STREAM_STDERR to util.STREAM_BOTH to make it read from both
streams.
Does it help setting the linter working directory [4]? Note that
currently the regex relies on the substring "SublimeLinter3"
being present in the path to the temp file, I am unsure whether
that would still work then.
[1]
https://github.com/veelo/SublimeLinter-contrib-dmd/blob/e2b4270c2318381eb113620631e93de2b18d436e/linter.py#L24-L33
[2] https://github.com/veelo/SublimeLinter-contrib-dmd
[3]
https://github.com/veelo/SublimeLinter-contrib-dmd/blob/e2b4270c2318381eb113620631e93de2b18d436e/linter.py#L37
[4]
http://www.sublimelinter.com/en/latest/linter_settings.html?highlight=working#chdir
[5] https://regex101.com/, select python flavor.
More information about the Digitalmars-d-announce
mailing list