Juno, modules and keyword `end`


#1

I much appreciate workflow made available by Juno while developing a module (see https://github.com/JunoLab/atom-julia-client/blob/master/manual/workflow.md). But I encountered this silly situation:

module abc
function f(a::Vector{Int})
  s = 0
  for x in a[2:end]
    s += x*x
  end
end
end

When the cursor is on the end of function f, I see Main on the status bar, no more Main/abc. And if I add a new function alpha at the end of my module, and evaluate its definition as usual, I can’t use it:

abc.alpha(3)  UndefVarError: alpha not defined

I was very perturbed (because I use daily module’s development with Juno), until I realized that end in a[2:end] was misinterpreted by Juno, and ruined following scopes – of course my module was a little larger, and I needed some time to discover this bug, sigh.


#2

Can you try Pkg.status() and find out what version of CodeTools you are on? This should be fixed, but I’m not sure if we released the fix yet.


#3
 - CodeTools                     0.4.3

If you are aware of the problem, it’s ok, I’m not in a hurry :slight_smile: There is another related situation, where a macro, e.g. @inbounds, precedes a for loop, and so on.

Many thanks for your beautiful work !