Hi,
I’m very new to julia and have just started migrating some code from java, within the scope of a private project to learn the basics and get started.
However I’m pretty astounded (and even genuinely shocked) by the (it seems) complete lack of decent tools or even an awareness of the need for such.
I totally agree with @peter.wolf: Coming from a java-ecosystem, I’m used to being able to rename variables, fields, methods, classes, files / changing the signatures of functions and any datastructures once, anywhere in my code and having an ide propagate those changes to every corner within the scope of my project (as defined by the project-setup in the ide): This includes files of different extensions (.java, .html, .xml, .json, .properties, …) and even extends to commented-out portions of those files (which is, when the ide would be polling me with the result of a search and ask for a decision to include those or not).
This has been common practice for the past 20 yrs. or so, within the java-world.
Please note, that merely using “find & replace” in a texteditor, without applying any semantic and syntactic knowledge is like falling back from using word on a laptop for textediting to using a mechanical typewriter - yes it works, but it could hardly be considered an acceptable alternative, once you had adopted word (or any other editor, back in the day).
(In the case of refactoring the signature of functions or datatypes in general, using “find & replace” doesn’t even work - it’s no use, finding all mentions of UInt64
, when you want to change just the type of one parameter of one function to Int128
within a large project - just as one trivial example).
So all ranting aside: How do people tackle this (apart from the obvious: Be less verbose in your style, start thinking more about names, like we did before refactoring ever became feasible and be disciplined with your conventions from the start, etc, to reduce tedious overhead, later)?
Which tools seem to be most promising wrt. to these issues, atm?
I’m using vs code
, which does recognize the option of refactoring (shows an entry in a contextmenu for it, when I select a variable, function, type, etc.), but then follows up with a no refactorings available
, when I select that option.