Skip to content

Commit 75e2592

Browse files
committed
simpler returns
1 parent 486b619 commit 75e2592

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

src/docs.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ function renderitem(x)
3232

3333
mod = getmodule(x.mod)
3434
name = Symbol(x.name)
35-
r[:typ], r[:icon], r[:nativetype] = if (name !== :ans || mod === Base) && name keys(Docs.keywords)
35+
r[:typ], r[:icon], r[:nativetype] = if (name !== :ans || mod === Base) && iskeyword(name)
3636
"keyword", "k", x.typ
3737
else
3838
val = getfield′(mod, name)

src/refactor.jl

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,25 @@ function renamerefactor(
2020
column = 1, row = 1, startrow = 0, context = "",
2121
mod = "Main",
2222
)
23+
# catch keyword renaming
24+
iskeyword(old) && return Dict(:warning => "Keywords can't be renamed: `$old`")
25+
2326
mod = getmodule(mod)
2427
head = first(split(full, '.'))
2528
headval = getfield′(mod, head)
2629

2730
# catch field renaming
28-
if head old && !isa(headval, Module)
29-
return Dict(:warning => "Rename refactoring on a field isn't available: `$obj.$old`")
30-
end
31+
head old && !isa(headval, Module) && return Dict(
32+
:warning => "Rename refactoring on a field isn't available: `$obj.$old`"
33+
)
3134

3235
expr = CSTParser.parse(context)
3336
items = toplevelitems(expr, context)
3437
ind = findfirst(item -> item isa ToplevelBinding, items)
3538
bind = ind === nothing ? nothing : items[ind].bind
3639

3740
# local rename refactor if `old` isn't a toplevel binding
38-
if bind === nothing || old bind.name
41+
if islocalrefactor(bind, old)
3942
try
4043
refactored = localrefactor(old, new, path, column, row, startrow, context, expr)
4144
isempty(refactored) || return Dict(
@@ -51,15 +54,8 @@ function renamerefactor(
5154
try
5255
val = getfield′(mod, full)
5356

54-
# catch keyword renaming
55-
if val isa Undefined && Symbol(old) in keys(Docs.keywords)
56-
return Dict(:warning => "Keywords can't be renamed: `$old`")
57-
end
58-
5957
# catch global refactoring not on definition, e.g.: on a call site
60-
if bind === nothing || old bind.name
61-
return Dict(:info => contextdescription(old, mod, context))
62-
end
58+
islocalrefactor(bind, old) && return Dict(:info => contextdescription(old, mod, context))
6359

6460
kind, desc = globalrefactor(old, new, mod, expr)
6561

@@ -83,6 +79,8 @@ function renamerefactor(
8379
return Dict(:error => "Rename refactoring `$old` ⟹ `$new` failed")
8480
end
8581

82+
islocalrefactor(bind, name) = bind === nothing || name bind.name
83+
8684
# local refactor
8785
# --------------
8886

src/utils.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ Retrieves docs for `mod.word` with [`@doc`](@ref) macro. If `@doc` is not availa
177177
You may want to run [`cangetdocs`](@ref) in advance.
178178
"""
179179
getdocs(mod::Module, word::AbstractString, fallbackmod::Module = Main) = begin
180-
md = if Symbol(word) in keys(Docs.keywords)
180+
md = if iskeyword(word)
181181
Core.eval(Main, :(@doc($(Symbol(word)))))
182182
else
183183
docsym = Symbol("@doc")
@@ -209,6 +209,12 @@ cangetdocs(mod::Module, word::Symbol) =
209209
cangetdocs(mod::Module, word::AbstractString) = cangetdocs(mod, Symbol(word))
210210
cangetdocs(mod::AbstractString, word::Union{Symbol, AbstractString}) = cangetdocs(getmodule(mod), word)
211211

212+
# is utilities
213+
# ------------
214+
215+
iskeyword(word::Symbol) = word in keys(Docs.keywords)
216+
iskeyword(word::AbstractString) = iskeyword(Symbol(word))
217+
212218
# uri utilties
213219
# ------------
214220

0 commit comments

Comments
 (0)