My own NEd editor works really bad when many generics are used, so I wrote the 
rtree module with plain gedit without any special Nim support. Unfortunately my 
editor has the same problems when I only import rtree module -- for a file with 
only 700 lines of code and gtk3 and rtree import it blocks often for more than 
10 seconds.

Generally nimsuggest works great for me, nearly no crashes any more. But these 
blocking is really not that nice, for example when I press CTRL E to check for 
errors, or sometimes also when I only move the cursor and nimsuggest tries to 
show information about proc under cursor.

I just tried to remember how nimsuggest can be used from console and tried
    
    
    $ nimsuggest --stdin test.nim
    
    > chk test.nim:0:0
    
    
    Run

with file

[https://github.com/StefanSalewski/RTree/blob/master/tests/test.nim](https://github.com/StefanSalewski/RTree/blob/master/tests/test.nim)

which of course compiles and works fine, nim ckeck test.nim is also fine.

That also blocks for at least 10 seconds with output finally
    
    
    > chk test.nim:0:0
    chk skUnknown               Hint    ???     0       -1      "test 
[Processing]"     0
    chk skUnknown               Hint    
/home/stefan/.nimble/pkgs/rtree-0.2.0/rtree.nim 460     15      "condition is 
always true: \'t of RTree[8, 2, RT, LT]\' [CondTrue]"     0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
110     66      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4315    
17      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
85      18      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
85      18      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
85      18      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
90      14      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4315    
17      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
90      14      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
90      14      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Error   /tmp/test.nim   31      8       
"template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
134     20      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
117     12      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
90      14      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system.nim 4318    
10      "template/generic instantiation from here"      0
    chk skUnknown               Error   /home/stefan/Nim/lib/system/dollars.nim 
86      68      "type mismatch" 0
    chk skUnknown               Hint    
/home/stefan/.nimble/pkgs/rtree-0.2.0/rtree.nim 615     9       "condition is 
always true: \'t of RTree[8, 2, RT, LT]\' [CondTrue]"     0
    chk skUnknown               Hint    /tmp/test.nim   53      6       "\'bt\' 
is declared but not used [XDeclaredButNotUsed]" 0
    
    >
    
    
    Run

I think there are some editors available which support PMunch 
LanguageServerProtocol, like neoVim. May these work better with generics? 

Reply via email to