Sender | Message | Time |
---|---|---|
23 Apr 2024 | ||
nephele | Yes, that is obvious. But the solution then is not to use an even worse tool ... | 21:24:34 |
Lars | but similarly, i can define such a subset for which minetest. autocompletion works fine | 21:24:41 |
Lars | In reply to @nephele:nheko.imit is a good enough tool for many purposes | 21:24:53 |
nephele | Claiming that a language server can't be perfect therefore you should use a different less working tool makes no sense | 21:24:59 |
nephele | In reply to @appguru:matrix.orgIt is good enough for your purposes. | 21:25:17 |
Lars | claiming that a simpler tool is not perfect therefore you should use a more complex tool which can maybe do a better job doesn't make much more sense | 21:25:40 |
nephele | For my purposes an even less complee (highlight only lua keywords) works. But that doesn't mean that nobody needs a langauge server as you claimed | 21:25:43 |
Lars | In reply to @nephele:nheko.imI do not remember claiming that nobody needs a language server | 21:26:21 |
Lars | also, "needs" is too strong a word here; if anything, it should be "benefits from" | 21:26:38 |
Lars | In reply to @appguru:matrix.orgI just pointed out that with simpler methods, you already get very far, in my opinion | 21:26:56 |
nephele | "you don't need a full blown language server for autocompletion" | 21:27:06 |
Lars | yes, that claim is true | 21:27:16 |
Lars | it is not equivalent to the claim that you don't need a language server at all | 21:27:25 |
nephele | In reply to @appguru:matrix.orgMy point is that isn't what you wrote, and you should be more selective with your wording | 21:27:25 |
Lars | you can have simple (and in my opinion very good) autocompletion without a language server | 21:27:35 |
Lars | In reply to @nephele:nheko.imI would say the same about you. | 21:27:54 |
Lars | In reply to @nephele:nheko.im* I would say the same about your wording. | 21:27:58 |
Lars | given that you are so insistent that a language server brings a very significant benefit, such that autocompletion without it is clearly infeasible, can you give me an example where a properly configured lua language server will help me correctly autocomplete, but a simple minetest.foo... autocompletion fails? (i think such an example probably exists, but if you can't come up with one quickly, chances are the difference is not nearly as large as you're making it out to be) | 21:29:49 |
Lars | * given that you are so insistent that a language server brings a very significant benefit, such that autocompletion without it is clearly infeasible, can you give me an reasonable example where a properly configured lua language server will help me correctly autocomplete, but a simple minetest.foo... autocompletion fails? (i think such an example most probably exists, but if you can't come up with one quickly, chances are the difference is not nearly as large as you're making it out to be) | 21:29:50 |
Lars | * given that you are so insistent that a language server brings a very significant benefit, such that autocompletion without it is clearly infeasible, can you give me an reasonable example where a properly configured lua language server will help me correctly autocomplete, but a simple global.foo... autocompletion fails? (i think such an example most probably exists, but if you can't come up with one quickly, chances are the difference is not nearly as large as you're making it out to be) | 21:30:00 |
nephele | any minetest.whatever call that has to be passed a table with -> members that need certain string values only -> members that are of different types etc | 21:31:08 |
nephele | for example "use_texture_alpha" modifiers in declarations, there are two in the api. one of them ONLY accepts a boolean and the other accpets ONLY three distinct string values | 21:31:45 |
nephele | that I think is a good example of areas where a language server with context witll help out a lot with autcompletion | 21:32:09 |
nephele | ... do note that I have no idea if any implements that for minetest lua, but i think you get my point. Those are the kind of API inconsistencies that easily bite programmers and that a language server can help with (to mitigate bad api design, in this specific example) | 21:32:53 |
Lars | indeed, if you have proper typedefs, a language server can help here. that's a good example. | 21:33:46 |
Lars | well. i'm personally not a big fan of the current lua ls, mainly because i don't want to restrict myself to the more "static" subset of lua that would be required for it to work well. the most static analysis i currently (sometimes) use for lua is luacheck, and that's because it's relatively conservative and transparent. but you have convinced me that i underestimated the difference in power; it wasn't on my radar because i don't use or need it very much for lua in minetest. for static languages i would always recommend the best tooling you can get, for dynamic languages i like simple, predictable tools that don't impose too many restrictions on me. | 21:40:10 |
Lars | * well. i'm personally not a big fan of "the" current lua ls by sumneko, mainly because i don't want to restrict myself to the more "static" subset of lua that would be required for it to work well. the most static analysis i currently (sometimes) use for lua is luacheck, and that's because it's relatively conservative and transparent. but you have convinced me that i underestimated the difference in power; it wasn't on my radar because i don't use or need it very much for lua in minetest. for static languages i would always recommend the best tooling you can get, for dynamic languages i like simple, predictable tools that don't impose too many restrictions on me. | 21:40:20 |
Lars | (which brings us to another interesting question of how we can bring static languages that transpile to lua, like typescript or teal, to minetest. i think i've seen prototypes using both the latter. teal seems to have made some big mistakes though (like not having proper nilable types), so that would leave us with only typescript, which i'm not very happy with..) | 21:42:05 |
nephele | I'd be interested in one that atleast implements the a-priori knoweable stuff, like how minetest calls are constructed, what members it needs etc. So that I can ask it "what possible values can be here?". It may not understand what values i pass around in the end but it can help me more quickly get this information than the api docs could :) | 21:44:58 |
Chimupurei joined the room. | 23:50:50 |