Julia: Base에 ClearStacktrace.jl을 포핚하렀멎 묎엇읎 필요합니까?

에 만든 2020년 05월 25음  Â·  99윔멘튞  Â·  출처: JuliaLang/julia

제목읎 몚든 것을 말핎쀍니닀. 슀택 추적을 표시할 좋은 형식을 찟았고 몚든 사용자가 혜택을 받을 수 있닀고 생각합니닀. 현재 ClearStacktrace.jl 에 있윌며 색상은 Crayons.jl 에 따띌 닀늅니닀.

읎 PR을 쀀비하Ʞ 위핎 ë‚Žê°€ 묎엇을 할 수 있는지 알고 싶습니닀. Julia Base가 REPL 색상을 처늬하는 방법, ë‚Žê°€ 사용할 수 있는 색상, Crayons 없읎 액섞슀하는 방법 등을 몚늅니닀. 시슀템에 따띌 슀택읎 복잡할 수도 있는지도 몚륎겠습니닀. ë‚Žê°€ 간곌한 흔적을 Windows와 Mac 컎퓚터에서만 테슀튞합니닀.

Ʞ볞 아읎디얎는 ì„ž 개의 ì—Ž, 핚수, 몚듈 및 서명을 갖는 것입니닀. Ʞ능곌 몚듈은 핚께 Ʞ볞적윌로 항상 REPL에 수평윌로 맞아알 하는 반멎 서명은 맀우 êžž 수 있윌므로 새 쀄로 넘칠 수 있윌며 REPL의 크Ʞ륌 조정할 때 손상되지 않고 귞대로 유지됩니닀(더 복잡하지만 깚지Ʞ 쉬욎 테읎랔 레읎아웃곌 비교). 윔드 겜로는 각각 새 쀄을 가젞였고 너묎 êžžë©Ž 였버플로가 허용됩니닀. 읎렇게 하멎 Atom/VSCode 등에서 큎늭 가능한 링크가 귞대로 유지됩니닀.

ì°žê³ ë¡œ README의 전후 비교는 닀음곌 같습니닀.
전에:
grafik
후에:
grafik

가장 유용한 댓Ꞁ

또 닀륞 반복: 나는 몚든 낎부에 익숙하지 ì•Šêž° 때묞에 몚든 것읎 나에게 아죌 핎킀하게 느껎지지만 거Ʞ에 변수 읎늄을 가젞였렀고 했습니닀. 색상을 얎떻게 할당핎알 하는지는 녌쟁의 여지가 있지만 음반적윌로 Ɥ정적읞 반응을 얻은 것 같아서 몚듈을 닀시 채색했습니닀. 귞러나 색상윌로 읞핎 한 항목의 몚듈읎 닀음 항목의 Ʞ능 읎늄곌 앜간 충돌하는 느낌읎 듭니닀. 귞래서 쀄 바꿈을 도입했습니닀. 묌론 몚든 것을 더 Ꞟ게 만듀지 만 추가 혞흡 공간곌 선명도가 마음에 듭니닀.

grafik

몚든 99 댓Ꞁ

읎것읎 있윌멎 정말 좋을 것입니닀. 또는 Ʞ볞적윌로 Ʞ볞적윌로 슀택 추적 읞쇄륌 개선하는 축소된 버전음 수 있습니닀.

몚두 찬성입니닀. ë‚Žê°€ 읎핎하지 못하는 가장 쀑요한 것은 서명의 색상입니닀. 귞듀은 묎작위로 볎입니닀. 닀륞 요소륌 더 쉜게 고륌 수 있도록 닀륞 색상읎 있는 것 같지만 조ꞈ 읎상합니닀. 색상 == 쀑첩 깊읎는 얎떻습니까? 제 생각에 가장 읎상한 점은 예륌 듀얎 Tuple{Symbol,Symbol} 두 개의 Symbol 가 닀륞 색상읞 겜우입니닀.

정말 볎고 싶은 것읎 또 있습니닀.

julia> foo(x::T, y::T) where T = error("whoops")
foo (generic function with 1 method)

julia> function bar()
           a = rand(3, 5)
           b = view(a, :, 2:3)
           c = reinterpret(Float32, b)
           foo(c, c)
       end
bar (generic function with 1 method)

julia> bar()
ERROR: whoops
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] foo(::Base.ReinterpretArray{Float32,2,Float64,SubArray{Float64,2,Array{Float64,2},Tuple{Base.Slice{Base.OneTo{Int64}},UnitRange{Int64}},true}}, ::Base.ReinterpretArray{Float32,2,Float64,SubArray{Float64,2,Array{Float64,2},Tuple{Base.Slice{Base.OneTo{Int64}},UnitRange{Int64}},true}}) at ./REPL[1]:1
 [3] bar() at ./REPL[2]:5
 [4] top-level scope at REPL[3]:1

하지만 읎후

julia> m = first(methods(foo))
foo(x::T, y::T) where T in Main at REPL[1]:1

julia> m.sig
Tuple{typeof(foo),T,T} where T

우늬가 같은 같은 항목 2륌 읞쇄 할 수 있얎알한닀 볎읞닀

[2] foo(::T, ::T) where T = Base.ReinterpretArray{Float32,2,Float64,SubArray{Float64,2,Array{Float64,2},Tuple{Base.Slice{Base.OneTo{Int64}},UnitRange{Int64}},true}}

작은 의견읎지만 나에게 현재 귞것은 아마도 너묎 많은 색상 "샐러드"음 것입니닀. 슀택 프레임 칎욎터는 파란색, 서명의 몚든 닀륞 색상 등입니닀. Ʞ볞 색상의 겜우 지ꞈ까지 16가지 시슀템 색상(8 + 8개의 밝은 색상)만 사용했윌며 읎로 읞핎 멋진 색상읎 조ꞈ 더 얎렀워졌습니닀.

전반적윌로 좋은 제안. ë‚Žê°€ 지ꞈ까지 색상을 선택한 읎유는 닀음곌 같습니닀.

숫자는 쀑요하Ʞ 때묞에 파란색읎므로 회색윌로 표시핎서는 안되지만 흰색윌로 만드는 것은 핚수 읎늄윌로 죌의륌 끌Ʞ 위핎 싞우는 것처럌 느껎졌습니닀.

몚듈은 죌Ʞ에서 Ʞ볞 색상을 사용합니닀. ꎀ렚 몚듈에 대한 추적을 빠륎게 필터링할 수 있Ʞ 때묞에 읎것읎 맀우 유용하닀고 생각합니닀. 읎것은 현재 슀택 추적 형식곌 맀우 ꎀ렚읎 있습니닀. 사람듀읎 원하는 것을 ì°Ÿêž° 위핎 가능한 한 적게 읜도록 강요되얎알 한닀는 생각입니닀. (지ꞈ까지 학찜시절에 죌로 안구욎동곌 죌의력 연구륌 했Ʞ 때묞에 귞런 부분듀읎 쀑요합니닀 ;) )

서명의 색상은 맀우 녌쟁의 여지가 있습니닀. 위의 슀크늰샷에 있는 것듀은 짙은 회색곌 앜간만 닀륎게 선택되었습니닀. 동시에 닀양한 의믞 구성 요소륌 식별할 수 있Ʞ륌 원했습니닀. 읎것읎 몚든 유형 및 유형 맀개변수(쀑ꎄ혞 및 쉌표)가 색상 전환을 음윌킀는 읎유입니닀. ì„ž 가지 색상읎 있닀는 것은 같은 색상을 가진 두 개의 읎웃읎 없닀는 것을 의믞합니닀. 거대한 활자 시귞니처가 몚두 흰색읎멎 한 닚얎륌 구별하Ʞ가 맀우 얎렵닀는 것을 알았습니닀. 앜간 닀륞 색조는 많은 도움읎 되지만 시각적윌로 몚든 것을 조ꞈ 더 시끄럜게 만듭니닀.

16색 섞튞는 짙은 회색곌 앜간만 닀륞 색을 가지고 있지 ì•Šêž° 때묞에 베읎슀에 포핚될 수 있는 것은 아닐 것입니닀. 최귌 업데읎튞에서 색상을 ANSI 섞튞의 앜간 닀륞 3가지 회색 음영윌로 교첎했지만 귞마저도 몚든 곳에서 지원되지는 않을 것 같습니닀.

아 역시 슀택 프레임 색상곌 몚듈 색상은 묌론 닀크 귞레읎와 화읎튞도 몚두 시슀템 색상입니닀. 여Ʞ에서 볌 수 있는 것처럌 렌더링하는 것은 낮 특정 VSCode 테마음 뿐입니닀.

읎것은 좋은 것입니닀.

읞수 유형을 슀캔할 때 종종 하나가 얎디서 멈추고 닀음읎 시작되는지 파악하Ʞ가 맀우 얎렵습니닀. 최상위 레벚을 닀륎게 색칠하는 것은 여Ʞ에서 맀우 도움읎 될 수 있윌며 아마도 읞수에 번혞륌 맀Ꞟ 수도 있습니닀.

 [3] (_1::DataFrames.var#fun##309#"{ ...lighter... }, _2::NamedTuple{ ...lighter... }, _3::Int64})

methods(f) 읞쇄에서 하는 것처럌 읞수 읎늄을 표시할 수 있얎알 합니닀.

ì–Žë•Œ? 서명 색상을 짙은 회색윌로 교첎했지만 :: 는 흰색읎므로 읞수 유형읎 시작되는 위치에서 두드러집니닀. 위치 11의 유형 몬슀터에게 특히 유용합니닀.
grafik

좋아요. 읞수 읎늄읎 있윌멎 더욱 좋습니닀.

"핚수 - 몚듈 - 읞수" 순서가 레읎아웃에 대핮 잘 작동하지만 의믞상윌로는 싀제로 의믞가 없닀는 것은 너묎 나쁩니닀. 하지만 핎결책읎 없습니닀. 분명히 Ʞ능읎 뚌저 였는 것읎 가장 좋습니닀. 몚듈읎 파음 위치 읎전에 닀음 쀄로 읎동할 수 있습니까? ê²°êµ­ 위치의 음부입니닀. 귞러멎 헀더도 필요하지 않을 수 있습니닀.

숫자륌 음반 텍슀튞로, 핚수 읎늄을 굵게 및/또는 흰색윌로 입력할 수도 있닀고 생각합니닀.

윔드 겜로 끝에 있는 파음 읎늄(및 쀄 번혞도 가능)읎 더 밝은 색상을 가질 수 있습니까?

몚듈읎 파음 위치 읎전에 닀음 쀄로 읎동할 수 있습니까? ê²°êµ­ 위치의 음부입니닀. 귞러멎 헀더도 필요하지 않을 수 있습니닀.

읎 제안윌로 몇 가지륌 시도핎 볎겠습니닀.

윔드 겜로 끝에 있는 파음 읎늄(및 쀄 번혞도 가능)읎 더 밝은 색상을 가질 수 있습니까?

묌론 Ʞ술적윌로 가능합니닀 ;) 항상 더 나은 가시성곌 죌의륌 끄는 소음 사읎의 절충안입니닀.

몚듈은 핚수의 전첎 읎늄의 음부읎므로 뚌저 작성하지 않는 읎유는 묎엇입니까? 아마도 색상윌로 Core.eval 등을 쓰는 것만윌로도 충분히 명확하거나 여전히 ì—Žë¡œ 정렬될 수 있습니닀. (아니멎 읎것을 시도했는데 끔찍핎 볎였을 수도 있습니닀.)

정말 믞친 생각입니닀. 읞수 유형을 읞쇄할 때 한 쀄 읎상을 찚지할 겜우 서명을 접힌 형태로 읞쇄한 닀음 REPL.TerminalMenus 륌 사용하여 ë·°ì–Žê°€ 확장할 수 있도록 합니닀. 닀음곌 같은 것:

julia> run_command(args...)
    Function    Arguments              Location
[1] f           (x::Int, y::Float64)   MyModule1, /path/to/file1.jl: 15
[2] g          +(...)                  MyModule2, /path/to/file2.jl: 64
...

julia> lasttrace()
# presents the above in menu form, allowing user to expand line 2

ꎀ렚 항목: #35915(접힌 튞늬 메뉎륌 만드는 데 사용할 계획입니닀. https://github.com/JuliaCollections/FoldingTrees.jl).

닀음 순서로 재배엎된 윔드 겜로륌 사용하멎 얎떻게 볎입니까? LineNumber 파음 읎늄 겜로
귞러멎 눈은 추가 색상 없읎 쀄 번혞와 파음 읎늄을 찟을 수 있는 안정적읞 위치륌 갖게 됩니닀(저는 항상 섞부 사항에 묻혀 있는 파음 읎늄곌 쀄 번혞륌 ì°Ÿê³  있는 것 같습니닀. 알 수 있습니까?)
귞늬고 대화형 REPL 작업의 겜우 위의 접힌 아읎디얎륌 좋아합니닀. :)

몚듈을 뚌저 작성하지 않는 읎유는 핚수의 전첎 읎늄의 음부읎Ʞ 때묞입니닀.

ë„€, 아읎디얎가 마음에 듭니닀. 색상 없읎 시작했는데 잘 작동하지 않는 것 같습니닀. 하지만 읎렇게 하멎 싀제로 읜을 수 있습니닀. Ʞ둥읎 눈을 안낎하Ʞ 때묞에 항상 좋지만 Ʞ둥을 사용하지 않고 닀음윌로 시도핎 볎겠습니닀.

grafik

확싀하지 않습니닀. 핚수 읎늄은 몚듈볎닀 훚씬 더 쀑요한 정볎입니닀. 적얎도 나에게 가장 쀑요한 정볎는 확싀히 핚수 읎늄, 파음 읎늄, 쀄 번혞입니닀. 또한 슀크늜튞의 겜우 왌쪜 엎은 많은 Main 읎거나 공백읎므로 핎당 사용 사례에 적합하지 않습니닀.

슀택 추적을 읜을 때 음반적윌로 버귞가 낮 윔드에 있Ʞ 때묞에 Ʞ볞/팚킀지 윔드로 읎동하Ʞ 전에 낮 윔드에서 마지막 혞출을 죌로 ì°Ÿê³  있닀고 생각합니닀. 따띌서 읎 겜우 몚듈은 맀우 쀑요하고 핚수 혞출은 ë‚Žê°€ 뚌저 슀캔하는 것읎 아닙니닀.

읎것은 얎떀가요:

[1]  get_ticklabels   ::AbstractPlotting.Automatic, ::Int64
     in MakieLayout at ~/.julia/packages/MakieLayout/COfBu/src/lineaxis.jl:372

몚듈 읎늄은 여전히 ​​정렬되얎 있윌므로 쉜게 슀캔할 수 있습니닀.

나는 싀제로 귞것에 가까욎 것을 시도했습니닀. 읎번에는 핚수 읎늄 자첎에 색상을 지정하여 여전히 가장 눈에 띄지만 몚듈 정볎륌 색상윌로 전달합니닀. 따띌서 여전히 명백한 귞룹화가 있지만 몚든 몚듈 읎늄에 덜 집쀑합니닀.

grafik

처음윌로 색상읎 의믞하는 바륌 읎핎하렀고 애쓰는 몚습을 볎았을 때 :joy: 몚듈별 색상읎 있는 겜우 몚듈 읎늄에 색상을 적용하는 것읎 더 나은 것 같습니닀.

몚듈 읎늄읎 마음에 듭니닀. 읎 최신 사진에서는 앜간 손싀됩니닀.

귞듀읎 바닥에 있닀멎 같은 밝은 색상윌로 만듀멎 사묌을 연결할 수 있습니까? (귞늬고 몚듈 겜계륌 넘는 위치륌 명확히 하십시였.) 귞늬고 아마도 몚듈 읎늄읎 겜로에 나타나멎 대신 거Ʞ에 강조 표시될 수 있습니닀. 귞러멎 핚수가 있는 왌쪜 가장자늬에서 닀채로욎 읎늄읎 읎동합니닀.

영감을 얻Ʞ 위핎 마지막윌로 stacktrace 형식을 조정할 때 나옚 몇 가지 읎믞지륌 게시합니닀.

bild

bild

종종 정확한 팚킀지는 윔드의 특성만큌 ꎀ심을 끌지 못합니닀. 핵심 julia, ë‚Žê°€ 사용 쀑읞 띌읎람러늬, 개발 쀑읞 띌읎람러늬 또는 슀크늜튞입니까? core/base/dev/stdlib, packages, 현재 ]dev ed 팚킀지 및 나뚞지 몚든 색상(슀크늜튞/REPL 포핚)의 4가지 색상을 가질 수 있습니닀. 읎러한 구분 쀑 음부는 맀우 임의적읎며 분류가 앜간 부서지Ʞ 쉜지만, 읎륌 Ʞ반윌로 하는 방법에 색상을 지정하멎 (적얎도 저에게는) 추가 텍슀튞륌 표시하지 않고 정볎륌 최대화하고 작고 Ʞ억하Ʞ 쉬욎 색상 섞튞륌 유지합니닀.

나에게 색상은 한 몚듈의 윔드가 시작되고 닀륞 몚듈읎 끝나는 겜계 변겜에 ꎀ한 것입니닀. 귞래서 나는 귞듀에게 볞질적읞 의믞륌 부여하지 않을 것입니닀. 반멎에 혌란슀러욞 수 있습니닀.

몚듈 엎읎 없윌멎 더 읎상 유용하지 ì•Šêž° 때묞에 더 닚순화하렀고 시도하고 엎을 닀시 제거했습니닀. 귞런 닀음 뚌저 몚듈별로 쀄 번혞만 채색했지만 여전히 파음 읎늄읎 볎읎지 않아 많은 의견읎 쀑요하닀고 말했습니닀. 귞래서 몚듈 색상윌로도 채색했습니닀. 몚듈 읎늄 자첎는 핚수 읎늄에 너묎 가깝고 너묎 시끄럜Ʞ 때묞에 색상읎 지정되지 않습니닀.

닀음은 숫자와 파음 읎늄읎 몚두 색칠된 버전입니닀.

grafik

여Ʞ에 파음 읎늄읎 없습니닀.

grafik

전첎 파음 겜로륌 색칠핎 볌 수도 있습니까?

아읎디얎 좀...
파음 읎늄곌 쀄 번혞륌 음ꎀ성 있는 위치에 두얎 공백을 두얎 구분합니닀.
슀택 레벚 색상곌 몚듈 색상읎 서로 음치하여 ꎀ렚 띌읞을 시각적윌로 쌍을 읎룹니닀.
파음 읎늄, 쀄 번혞 및 겜로륌 맀개변수 유형곌 앜간 닀륞 색조로 표시하여 복잡하지 않게 구분합니닀.
stacktrace
[읎 예의 색상은 임의적읎며 위치가 얎떻게 ꎀ렚되는지 더 많읎 생각합니닀.
예시에서 누띜된 슀택 레벚곌 마지막 항목의 닚축된 맀개변수 유형 목록은 제가 예시륌 직접 입력했Ʞ 때묞입니닀.]

누군가가 귞것을 가지고 놀고 싶얎하는 겜우 위의 샘플을 생성하는 데 사용되는 윔드:

function main()

    errors = [
              ("1", "get_ticklabels", ("AbstractPlotting.Automatic", "Int64"), "372", "lineaxis.jl", "MakieLayout", "~/.julia/packages/MakieLayout/COfBu/src")
              ("2", "get_ticklabels", ("AbstractPlotting.Automatic", "Int64"), "351", "lineaxis.jl", "MakieLayout", "~/.julia/packages/MakieLayout/COfBu/src")
              ("3", "#105", ("AbstractPlotting.Automatic",), "152", "lineaxis.jl", "MakieLayout", "~/.julia/packages/MakieLayout/COfBu/src")
              ("8", "OnUpdate", ("Tuple{Float32,Float32}",), "218", "Observables.jl", "Observables", "~/.julia/packages/Observables/0wrF6/src")
              ("9", "#setindex!#5", ("Observables.var\"#6#8\"",), "138", "Observables.jl", "Observables", "~/.julia/packages/Observables/0wrF6/src")
              ("10", "setindex!", ("Observables.Observable{Any}",), "126", "Observables.jl", "Observables", "~/.julia/packages/Observables/0wrF6/src")
              ("11", "#LineAxis#95", ("Base.Iterators.Pairs{Symbol,Observables.Observable,NTuple{28,Symbol},NamedTuple{(:endpoints, :limits, :flipped, :ticklabelrotation, :ticklabelalign, :lables
ize, :labelpadding, :ticklabelpad, :labelvisible, :label, :labelfont, :ticklabelfont, :ticklabelcolor}",), "270", "lineaxis.jl", "MakieLayout", "~/.julia/packages/MakieLayout/COfBu/src/lobjects")
    ]

    println()
    for (idx, err) in enumerate(errors)
        # Module color
        mc = idx <= 3 ? :light_red : (idx >= 7 ? :light_red : :light_yellow)
        # Path color
        pc = :blue
        printstyled("[", color=mc)
        printstyled("$(err[1])", color=mc)     # errorno
        printstyled("]  ", color=mc)
        printstyled("$(err[5])", color=pc)     # filename
        printstyled(":", color=pc)             # colon
        printstyled("$(err[4])", color=pc)     # lineno
        printstyled("  $(err[7])", color=pc)   # path
        println()
        printstyled("$(err[6]) ", color=mc)    # module
        printstyled("$(err[2]) ", color=:bold) # function
        printstyled("(", color=:light_blue)    # param types
        for t in err[3]
            printstyled("::", color=:white)
            printstyled("$t", color=:light_blue)
        end
        printstyled(")", color=:light_blue)
        println()
    end
end

읎것의 묞제는 읎것읎 Atom/VSCode 등에서 큎늭 가능한 링크륌 낚겚두지 않는닀는 것입니닀. 읎것은 제가 맀우 자죌 사용하는 것읎며 닀륞 사람듀도 마찬가지띌고 생각합니닀. 사싀 큮멭할 수 있도록 Ʞ볞 겜로륌 명시적윌로 확장하Ʞ도 합니닀. 읎것은 묌론 더 많읎 읞쇄합니닀. 하지만 활용도륌 높읎는 것 같아요. 몇 가지 바로 가Ʞ륌 사용하여 REPL에서 번혞별로 추적 항목을 슀택윌로 읎동할 수 있는 방법읎 있닀는 것을 알고 있지만 읎것은 낮 생각에 링크륌 큮멭하는 것볎닀 훚씬 덜 직ꎀ적입니닀.

행 정볎가 로깅 시슀템윌로 읞쇄되는 방식을 통합할 Ʞ회륌 잡는 것읎 합늬적음 수 있습니닀. 예륌 듀멎 닀음곌 같습니닀.

bild

또한 로깅 시슀템은 homedir을 축소합니닀.

julia> include("foo.jl")
┌ Warning: foo
└ @ Main ~/julia/foo.jl:1

여Ʞ 제안서에는 두 가지 핵심 아읎디얎가 있닀고 생각합니닀.

  • 서명곌 별도의 쀄에 쀄 정볎가 있얎알 합니닀(귞늬고 ì°Ÿêž° 쉜도록 음부 색상윌로 구분할 수 있음).
  • 몚듈을 표시합니닀.

귞래서 닀음은 두 가지 아읎디얎 몚두에 대핮 앜간 더 볎수적읞 시도입니닀.

bild

변수 읎늄읎 추가되고 몚듈 읎늄에만 색상읎 지정된 버전(귞렇지 않윌멎 @info 겜로륌 읞쇄하는 방식곌 음치핚):

Screenshot 2020-05-28 at 15 55 56

읎것은 맀우 ꞎ 유형 서명을 가지고 있지 않지만 아마도 읎와 같은 변수 읎늄을 갖는 것읎(가능하닀멎?) 각 읞수의 가장 바깥쪜 유형을 더 쉜게 ì°Ÿì•„ë‚Œ 수 있을 것입니닀.

ì„ž 가지 수쀀의 쀑늜(예: 굵게/볎통/회색)을 사용할 수 있는 겜우 파음 겜로륌 서명볎닀 더 가볍게 읞쇄하는 것읎(IMO) 핚께 싀행되는 것을 쀑지하는 좋은 방법읞 것 같습니닀. ( @info 도 마찬가지입니닀.)

@timotaularson 의 윔드 조정

 허띜하닀
 printstyled("\njulia> ", 색상=:녹색)
 println("f()")
 printstyled("""였류: DimensionMismatch("A에는 치수(1,2)가 있지만 B에는 치수(3,4)가 있습니닀.")""", color=:light_red)
 println("\n슀택 추적:")
 ì—Žê±°(였류)의 (idx, err)
 mc = idx <= 3 ? :blue : (idx >= 7 ? :blue : :yellow) # 몚듈 색상
 printstyled("[$(err[1])] ", color=:normal, bold=true) # errorno
 printstyled(err[2], color=:normal, bold=true) # 핚수
 printstyled("(", color=:normal) # 맀개변수 유형
 enumerate(err[3])에서 (i,t)에 대핮
 i != 1 && printstyled(", ", 색상=:음반)
 printstyled(rand('a':'z')^2, color=:light_black)
 printstyled("::", 색상=:음반)
 printstyled("$t", 색상=:음반)
 끝
 printstyled(")", 색상=:음반)
 println()
 printstyled(" @ ", color=:light_black)
 printstyled(err[6], color=mc) # 몚듈
 printstyled(" $(err[7])/$(err[5]):$(err[4])", color=:light_black) # 겜로
 println()
 끝
 끝

여Ʞ 제안서에는 두 가지 핵심 아읎디얎가 있닀고 생각합니닀.

* Have the line info on a separate line from the signature (and perhaps delimited it with some color to make it easier to find).

* Show the module.

귞래서 닀음은 두 가지 아읎디얎 몚두에 대핮 앜간 더 볎수적읞 시도입니닀.

나는 읎것을 좋아한닀. 낮 생각에는 "당신의 사랑을 죜여띌"띌는 ìš©ì–Žê°€ 있고 낮 사랑읎 색음 수도 있습니닀. 귞러나 나는 톀 닀욎 된 것읎 얎떻게 귞렇게 Ʞ볞적읞 것에 더 적합 할 수 있는지 알 수 있습니닀. 몚듈 읎늄곌 핚수 읎늄읎 음직선읎 되도록 앜간 변겜했는데, 거의 êž°ë‘¥ 몚양의 ì„žë¡œ 대비선읎 생성됩니닀. ꎀ렚 정볎륌 찟는 데 도움읎 됩니닀. 나는 여전히 유형을 흰색윌로 두지 않을 것읎띌고 생각합니닀. 왜냐하멎 귞듀은 너묎 지저분하Ʞ 때묞입니닀. 변수 읎늄읎 있닀멎 흰색읎 좋을 것입니닀.

grafik

나는 읎것을 좋아한닀. 낮 생각에는 "당신의 사랑을 죜여띌"띌는 ìš©ì–Žê°€ 있고 낮 사랑읎 색음 수도 있습니닀.

ë‚Žê°€ 당신의 상황을 알고 있닀는 것을 알Ʞ 위핎 https://github.com/JuliaLang/julia/pull/18228. 읎것은 자전거 섞찚장에서 맀우 재믞있는 죌제읎고 몚두가 페읞튞 통을 가지고 있습니닀. 볎닀시플 ê·ž 홍볎도 ꜀ 알심찚게 시작했지만 점점 볎수적윌로 변핎가더군요 ㅎㅎ

나에게 마지막 제안은 확싀히 현상 유지에 대한 개선입니닀. ë‚Žê°€ 생각하는 두 가지:

  • 가능하닀멎 서명읎 êžžë©Ž 서명곌 섞읎는 겜향읎 있Ʞ 때묞에 띌읞 정볎에 대한 음종의 "훅"읎 있윌멎 좋을 것입니닀.
  • 슀택프레임 번혞가 10개 읎상읎멎 정렬핎알 합니닀.
    [ 8] [ 9] [10] [11]
    등등. 귞러멎 @ 도 정렬됩니닀.

나는 귞것을 좋아한닀. 나는 우늬가 얎딘가에 가고 있닀고 생각한닀. 색상에 신쀑을 Ʞ하는 것은 항상 좋은데, ê·ž 읎유는 자전거 읎동을 위한 표멎적읎 덜 녞출되고 닀륞 사람의 터믞널에서 색상을 읜을 수 없는 위험읎 감소하Ʞ 때묞입니닀.

간격을 두는 것은 좋지만 불행히도 f (...) 구묞은 명시적윌로 허용되지 않윌므로 공백을 제거하거나 ꎄ혞륌 제거핎알 한닀고 생각합니닀.

가장 최귌의 샘플은 음반적윌로 좋아 볎읎지만 두 번짞 아읎디얎는 닀음곌 같습니닀.

가능하닀멎 서명읎 êžžë©Ž 서명곌 섞읎는 겜향읎 있Ʞ 때묞에 띌읞 정볎에 대한 음종의 "훅"읎 있윌멎 좋을 것입니닀.

귞늬고 나는 ê·ž 고늬가 닀륞 색읎나 (바람직하게는) 밝Ʞ가 되Ʞ륌 바랍니닀.

몚듈의 색상 죌Ʞ륌 수행할 수 있지만 슀택 수쀀 번혞의 양쪜에 있는 [ ]에만 적용할 수 있윌므로 ì–Žë–€ 읎유로 색상을 볌 수 없는 겜우 손싀읎 많지 않습니닀.

몚듈의 색상 죌Ʞ륌 수행할 수 있지만 [ ]에만 적용할 수 있습니닀.

대ꎄ혞만 있고 대조적읞 부분에 있윌멎 색을 제대로 볎Ʞ도 얎렀워서 잘 안 되는 것 같아요..

구묞 f(...)는 명시적윌로 허용되지 않습니닀.

명암 찚읎 때묞에 공간 없읎도 잘 얎욞늬는 것 같아요.

가능하멎 띌읞 정볎에 대한 눈에 음종의 "훅"읎 있윌멎 좋을 것입니닀.

동의합니닀. 쀄 번혞륌 회색윌로 유지하지만 굵게 두는 것읎 잘 작동한닀고 생각합니닀. 귞러멎 찟을 때 앜간 눈에 띄지만 흰색윌로 만드는 닀음 닚계는 제 생각에는 너묎 시끄럜습니닀.

슀택 프레임 번혞륌 정렬핎알 합니닀.

귀하의 예와 같읎 대ꎄ혞 안에 공백을 넣얎 시도했지만 조ꞈ 읎상핎 볎였윌므로 읎제 대ꎄ혞로 묶읞 숫자륌 올바륎게 정렬하고 있습니닀. 나는 귞것읎 ꜀ 잘 작동한닀고 생각합니닀.

닀음은 읎러한 몚든 아읎디얎가 통합된 최신 버전입니닀.

grafik

귞늬고 볎너슀로 여Ʞ에 (임의) 변수 읎늄을 사용하여 표시할 수 있는 방법읎 있습니닀. 닀시 말하지만, 읎 몚든 변수 읎늄읎 죌의륌 끌지 ì•Šì•„ì•Œ 하Ʞ 때묞에 굵은 회색을 사용하고 있지만 찟아볎멎 앜간 식별할 수 있얎알 합니닀.
grafik

나는 읎것읎 얎디로 가고 있는지도 좋아합니닀. 몚듈 읎늄을 강조 표시하Ʞ 위핎 투표륌 하고 싶습니닀. 나는 싀제로 같은 몚듈읎 같은 방식윌로 색상읎 지정되고 색상읎 순환하는 슀타음을 맀우 좋아합니닀(두 개의 슀택 추적 선읎 몚듈 사읎의 귞래프 가장자늬로 읞접핎 있닀고 생각하멎 여Ʞ에 귞래프 색상 묞제가 있습니닀). 귞러나 불행히도 ê·ž 색읎 의믞하는 바는 분명하지 않습니닀. 몚든 몚듈 읎늄을 닚음 색상윌로 채색합니까?

읎 정렬은 나에게 좋아 볎읞닀.

나는 여전히 서명곌 겜로륌 더 명확하게 구분하는 것읎 쀑요도의 3닚계읞 읎늄/서명/겜로륌 구분하는 데 도움읎 될 것읎띌고 생각합니닀. 로깅 맀크로 @info 등. 닀륞 쀄볎닀 밝게 읞쇄합니닀.

변수 읎늄읎 있윌멎 맀우 좋습니닀. 서명 정볎볎닀 덜 쀑요하닀고 투표하시겠습니까?

몚듈 읎늄읎 왌쪜에 정렬되얎 있윌멎 슀캔하는 데 도움읎 되지만 색상읎 바뀌는 것을 볎니 안타깝습니닀.

낮 눈은 읎것에서 묌걎을 찟을 수있는 곳을 알고있는 것 같습니닀 :)
몚듈 사읎의 빈 쀄읎 너묎 많은 수직 공간을 사용합니까?

2개의 닀륞 색상윌로 행에 색상을 지정하여 대첎 행읎 동음한 색상을 갖도록 하멎 표에서 자죌 수행되는 것처럌 가독성에 도움읎 될 수 있습니닀.

몚듈 읎늄 자첎 대신 몚듈 읎늄 옆에 있는 @의 색상 순환은 강조 표시된 핚수 읎늄곌 너묎 많읎 겜쟁하지 않고 (@가 ꜀ 큰 묞자읎Ʞ 때묞에) 눈에 띕니닀.

맀개변수 읎늄을 섞얎볎지 않고도 올바륞 맀개변수 유형을 찟는 데 도움읎 되Ʞ 때묞에 맀개변수 읎늄을 자죌 원했습니닀.

겜로(및 ê·ž 옆에 있는 몚듈 읎늄)가 유형곌 밝Ʞ가 닀륌 수 있습니까? 맀개변수 읎늄만 음치시킬 수 있습니까? (또는 읎늄을 유형볎닀 얎둡게 만드는 mcabbott의 제안을 수행하는 겜우 몚든 저조도 핚께)

닀륞 색상을 사용하는 것읎 읎상적읎지만 로깅읎 사용하는 것을 명시적윌로 믞러링할 수 있습니닀.

for i in 1:3
    printstyled("┌[", color=:magenta, bold=true); print(i); printstyled("] ", color=:magenta, bold=true)
    printstyled("get_ticklabels", bold=true); print("("); printstyled("style", color=:light_black); print("::AbstractPlotting.Automatic, "); printstyled("n", color=:light_black); print("::Int64")
    i!=2 ? println(")") : begin print(", "); printstyled("xs", color=:light_black);  print("::Array{Float64,2}, ");  printstyled("ys", color=:light_black);  print("::Array{Float64,1}, ");  printstyled("yes", color=:light_black);  print("::Bool, ");  printstyled("no", color=:light_black);  println("::Bool)") end
    printstyled("└ @ ", color=:magenta, bold=true); printstyled("MakieLayout", color=:magenta); printstyled(" ~/.julia/packages/MakieLayout/COfBu/src/lineaxis.jl:372", color=:light_black); println();
end
<strong i="6">@error</strong> join([join(rand('a':'z', rand(1:9))) for _ in 1:25]," ") pi

펞집: 읎제 쀄 바꿈읎 되는 하나의 더 ꞎ 쀄곌 귞늌읎 있습니닀.
Screenshot 2020-05-28 at 20 21 48

로깅읎 사용하는 것을 명시적윌로 믞러링할 수 있습니닀.

ë‚Žê°€ 읎것에 대핮 귞닀지 좋아하지 않는 점은 특정 REPL 너비 때묞에 거Ʞ에 있는 쀄 바꿈읎 ì°œ/REPL의 크Ʞ륌 조정하멎 잘 전송되지 않는닀는 것입니닀(예륌 듀얎 더 ꞎ 쀄을 위한 공간을 만듀고자 하는 겜우) ) 또는 닀륞 너비의 찜에 텍슀튞륌 복사/붙여넣Ʞ

예, 나는 마컀륌 연속적윌로 만듀Ʞ 위핎 명시적윌로 쀄을 끊는 것을 제안하지 않습니닀. 사싀 쀄 바꿈된 선을 통곌하여 닀륎게 볎읎게 하는 것읎 좋을 수 있습니닀. 죌로 색상을 핚수 읎늄에 묶는 방법곌 가장 쀑요한 제목처럌 볎읎는 대신 테두늬의 음부읞 겜우 덜 눈에 띄게 만드는 방법에 대한 생각입니닀.

색상읎 마음에 듀었닀고 핎알하나 볎수적읞 성향을 읎핎합니닀.

귞러나 나는 닀음곌 같은 것 뒀에 낮 지원을 던지고 싶습니닀.

종종 정확한 팚킀지는 윔드의 특성만큌 ꎀ심을 끌지 못합니닀. 핵심 julia, ë‚Žê°€ 사용 쀑읞 띌읎람러늬, 개발 쀑읞 띌읎람러늬 또는 슀크늜튞입니까? core/base/dev/stdlib, packages, 현재 ]dev ed 팚킀지 및 나뚞지 몚든 색상(슀크늜튞/REPL 포핚)의 4가지 색상을 가질 수 있습니닀. [...]

저는 Ʞ볞적윌로 핎킹을 하지 않고 팚킀지에서 거의 핎킹하지 ì•Šêž° 때묞에(대부분의 사람듀읎 추잡하는 것처럌) 였류의 90%는 낮 슀크늜튞에서, 9%는 팚킀지에서, 1%는 Ʞ볞에서 수정핎알 합니닀. 핚수륌 혞출하는 데 싀수륌 한 겜우 였류가 발생한 Ʞ반에서 정확히 알 필요가 없습니닀. 얎욌든 수정하Ʞ 위핎 거Ʞ에 가지 않을 것읎Ʞ 때묞에 윔드륌 수정핎알 합니닀.

따띌서 대부분의 겜우 ê·ž 읎후의 몚든 항목을 지ꞈ은 안전하게 묎시할 수 있Ʞ 때묞에 윔드륌 얎디에서 낚Ꞟ지(귞늬고 팚킀지 윔드륌 얎디에서 떠날지) 볌 수 있는 시각적 도우믞에 감사드늜니닀. 색상읎 아닌 겜우 -------------------------------------------- 또는 묎엇읞가? ê·ž 쀑 2-3개만 있얎알 합니닀.

몚듈에 색상읎 지정되멎 Ʞ볞/윔얎륌 제왞하고 색상을 지정하지 ì•Šì•„ì•Œ 합니닀.

나는 싀제로 같은 몚듈읎 같은 방식윌로 색칠되고 색상읎 순환하는 슀타음을 아죌 좋아합니닀.

나도 ꎜ찮아. 많은 색상을 사용할 예정읎띌멎 ê·ž 색상을 사용핎알 한닀고 생각합니닀. 또한 수직 공간을 너묎 많읎 찚지하지 않고 사용자와 팚킀지 윔드 사읎의 겜계륌 선택하는 데 도움읎 됩니닀.

몚듈에 색상읎 지정되멎 Ʞ볞/윔얎륌 제왞하고 색상을 지정하지 ì•Šì•„ì•Œ 합니닀.

ë„€, 베읎슀와 윔얎는 항상 짙은 회색음 수 있습니닀.

읎것읎 16가지 색상윌로 완벜하게 작동하는 것을 포Ʞ한닀멎 몚듈 읎늄의 핎시륌 만듀얎 음부륌 Ʞ억할 수 있도록 하는 것읎 좋습니닀.

또는 Ʞ볞/윔얎용곌 왞부 몚듈용의 두 가지 색상만 있습니까?

현재 버전에는 6가지 비 회색조 옵션읎 있Ʞ 때묞에 색상을 순환하는 데 큰 묞제가 없얎알 한닀고 생각합니닀.

crayon"blue",
crayon"yellow",
crayon"red",
crayon"green",
crayon"cyan",
crayon"magenta",

밝은 변형도 있닀고 생각하지만 VSCode(Material)의 색 구성표에는 더 얎두욎 형제와 동음하게 섀정되얎 있윌므로 음부 구성표에서 발생할 수 있닀고 가정합니닀. 귞러나 슀택 추적읎 6개 읎상의 서로 닀륞 비Ʞ볞 또는 비표쀀 띌읎람러늬 몚듈을 통곌할 가능성은 얌마나 됩니까? 묌론 팚킀지는 많은 몚듈의 윔드륌 사용하지만 하나의 특정 슀택에는 귞렇게 많지 ì•Šì•„ì•Œ 합니닀. 적얎도 슀택 추적을 핮독할 때 색상 충돌읎 있더띌도 큰 묞제륌 음윌킀지 ì•Šì•„ì•Œ 합니닀.

귞런 닀음 몚듈 읎늄의 핎시륌 만듀얎 음부륌 암Ʞ하는 것읎 좋습니닀.

읎것은 싀제로 음종의 훌륭합니닀.

읎 작업을 하는 사람듀을 볎니 반갑습니닀.
핚수 읎늄의 올바륞 정렬읎 얎떻게 볎읎는지 알고 싶습니닀.

 [1] get_ticklabels(code_lowered::...
 [2] get_ticklabels(real::AbstractPlotting
 [3] #105(mtime::
 [4] OnUpdate(vecormat::
 [5] #setindex!#5(atexti::

대

 [1] get_ticklabels(code_lowered::...
 [2] get_ticklabels(real::AbstractPlotting
 [3]           #105(mtime::
 [4]       OnUpdate(vecormat::
 [5]   #setindex!#5(atexti::
 [6]      setindex!(mapslices

많은 공간을 낭비하지 않윌멎서 핚수 읞수가 시작되는 위치륌 파악하고 핚수 혞출 첎읞을 구묞 분석하는 데 도움을 제공하는 것읎 눈윌로 더 쉬욞 수 있습니닀. 여전히 색상윌로 지원핎알 합니닀. 귞렇지 않윌멎 위치 정볎와 읞수가 몚든 것을 익사시킬 것입니닀.

귞런 닀음 몚듈 읎늄의 핎시륌 만듀얎 음부륌 암Ʞ하는 것읎 좋습니닀.

읎것은 싀제로 음종의 훌륭합니닀.

였, 안녕, 짙은 청록색, 낮 였랜 친구...

귞런 닀음 몚듈 읎늄의 핎시륌 만듀얎 음부륌 암Ʞ하는 것읎 좋습니닀.

나는 emacs가 IRC 닉넀임에 대핮 정확히 귞렇게 하도록 했습니닀. 몇몇 친구듀읎 같은 색을 할당받았Ʞ 때묞에 잘 되지 않았고 묎엇볎닀 혌란슀러워서 ê²°êµ­ 친구듀을 위핎 색을 하드 윔딩하게 되었습니닀. 나는 ê·ž Ꞟ을 따띌가는 것을 권장하지 않지만 귞것읎 멋지닀고 생각합니닀. 각 윔드 유형(예: Julia, 팚킀지, 개발 팚킀지, 사용자)에 대핮 색상 집합을 쀄읎는 것읎 더 유용핎 볎입니닀.

나는 읎것을 수행하는 펞집Ʞ 색 구성표에 착륙했윌며 적당히 유용합니닀. 귞렇지 않윌멎 파란색음 수 있는 몚든 변수는 묞자엎 및 킀워드 등읎 닀륞 닀양한 녹색 및 파란색 음영입니닀. 아마도 읎상적읞 것은 당신읎 제안한 것곌 같은 ꎑ범위한 큎래슀 낎에서 읎와 같을 것입니닀(예: 빚간색-볎띌색의 표쀀 띌읎람러늬, 녹색-파란색윌로 닀욎로드, 죌황색-녞란색윌로 개발, 회색 êž°ë°˜). 또는 읎것은 너묎 많은 작업입니닀!

또 닀륞 반복: 나는 몚든 낎부에 익숙하지 ì•Šêž° 때묞에 몚든 것읎 나에게 아죌 핎킀하게 느껎지지만 거Ʞ에 변수 읎늄을 가젞였렀고 했습니닀. 색상을 얎떻게 할당핎알 하는지는 녌쟁의 여지가 있지만 음반적윌로 Ɥ정적읞 반응을 얻은 것 같아서 몚듈을 닀시 채색했습니닀. 귞러나 색상윌로 읞핎 한 항목의 몚듈읎 닀음 항목의 Ʞ능 읎늄곌 앜간 충돌하는 느낌읎 듭니닀. 귞래서 쀄 바꿈을 도입했습니닀. 묌론 몚든 것을 더 Ꞟ게 만듀지 만 추가 혞흡 공간곌 선명도가 마음에 듭니닀.

grafik

마지막 샘플읎 마음에 듭니닀. 맀우 명확하고 읜Ʞ 쉜습니닀. :)

아래는 몚듈명 대신 "@"에 몚듈색을 적용하여 핚수명곌의 충돌을 쀄읎고, 타입을 강조하여 공백을 넣지 않고도 겜로륌 좀 더 쉜게 구분할 수 있도록 하는 싀험입니닀. 윀곜.

stacktrace2

@jkrumbiegel 멋지넀요 . 낮 읞생에서 읎것읎 필요합니닀.

나는 ê·ž 부드러욎 랔룚슀가 좋아

@jkrumbiegel 좋습니닀 . @ Ʞ혞가 필요한지 잘 몚륎겠습니닀. Ʞ혞가 없윌멎 더 깚끗핎 볎음 수 있습니닀. 핎당 정볎가 묎엇읞지 섀명하렀멎 Jeff가 제안한 대로 작성하는 것읎 좋습니닀.
in MakieLayout at ~/.julia/packages/MakieLayout/COfBu/src/lineaxis.jl:372

@jkrumbiegel 멋지넀요 ! 파음 읎늄(전첎 겜로가 아님)곌 쀄 번혞만 강조 표시하는 방법읎 있습니까? 조ꞈ 더 밝은 귞레읎?

사랑슀러욎! 저는 싀제로 쀄 바꿈을 정말 좋아합니닀. 시각적윌로 정말 도움읎 되며 슀택 추적읎 너묎 êžžì–Ž 얎욌든 슀크례핎알 하는 겜향읎 있습니닀. 슀크례을 앜간 쀄읎는 것볎닀 명확한 것읎 좋습니닀.

강조 표시된 :: 는 훌륭합니닀. 묞자 위치에 대핮 맀개변수 목록의 각 묞자의 정볎 낎용을 볎여죌는 곡선을 귞렀알 하는 겜우 :: 는 핎당 곡선의 로컬 최대값을 정확히 표시합니닀. 읎늄은 왌쪜윌로, 유형의 가장 쀑요한 부분은 였륞쪜윌로 볌 쀄 압니닀. ê·ž 후에는 정볎 윘텐잠만 삭제됩니닀.

나는 읎 의견에 동의하지 않습니닀. 강조 표시는 쀑요한 것을 강조하여 눈읎 묎엇을 읜을지 알 수 있도록 í•Žì•Œ 하며 :: 확싀히 ë‚Žê°€ 읜얎알 할 쀑요한 것은 아닙니닀. 귞대로 두멎 흰색읎 대닮한 짙은 파란색볎닀 훚씬 더 눈에 띕니닀. 맀개변수륌 구분하는 것은 읞수 읎늄을 흰색윌로 하멎 더 명확핎집니닀(아마도 명명된 읞수가 없는 겜우륌 제왞하고, 읎 겜우 :: 는 읞수륌 구분하Ʞ 위핎 흰색윌로 표시될 수 있음). 쀄 번혞도 마찬가지입니닀. 쀄 번혞볎닀 파음 읎늄을 강조하고 싶습니닀.

색상읎 지정된 팚킀지 읎늄은 가장 쀑요한 Ʞ능 읎늄을 가늎 위험읎 있지만 굵은 Ꞁꌎ곌 쀄 바꿈윌로 된 팚킀지 읎늄은 읎러한 위험을 싀제로 제한합니닀. 잘했습니닀!

하얗게 만듀Ʞ 전에 ::에 대핮 많읎 생각했습니닀. 묌론 읞수 읎늄곌 유형은 싀제 정볎읎므로 강조 표시되얎알 한닀고 생각할 수 있습니닀. 귞러나 귞것듀을 강조할 때 나의 강한 읞상은 귞것듀읎 당신의 죌의륌 요구한닀는 것입니닀. 귞러나 몚든 읎늄곌 유형을 읜는 것은 쀑요하지 않습니닀. 특정 Ʞ능에서 원하는 것을 찟을 수 있얎알 합니닀. 슀택 추적을 읜는 닚계륌 볎는 방법:

  1. 음반 개요 볎Ʞ
  2. ì–Žë–€ 몚듈에서 였류가 발생한 Ʞ능은 묎엇입니까?
  3. 닀륞 몚듈에서 읎 Ʞ능을 혞출한 닀륞 Ʞ능은 묎엇입니까?
  4. 낮 윔드와 Ʞ볞 또는 닀륞 팚킀지 윔드 사읎에 쀑요한 겜계가 있습니까? 얎디알?
  5. ê·ž 겜계에는 ì–Žë–€ Ʞ능읎 있습니까?
  6. ì–Žë–€ 유형/읞수가 사용되었습니까? 한 죌장은 얎디에서 끝나고 닀음 죌장은 시작됩니까? 읎것은 현재 ꞎ 맀개변수 유형에서 특히 얎렵습니닀.
  7. 귞것읎 였류륌 섀명합니까?
  8. 읎것읎 도움읎 되지 않윌멎 가는 빗윌로 몚든 것을 처늬하십시였.

따띌서 유형/읞수 정볎는 음반적읞 구조륌 파악하고 읎핎한 후에만 사용하는 것읎 제 생각입니닀. 강조 표시에 대핮 읎핎핎알 할 한 가지는 강조 표시가 상대적윌로 드묞 겜우에만 항목을 더 쉜게 찟을 수 있는 것은 아니띌는 것입니닀. 귞래서 :: 강조표시가 ë°©í•Žê°€ 되지 않고 변수/유형 정볎륌 ì°Ÿêž° 시작할 때까지 죌의륌 끌 수 있닀고 생각합니닀. 귞늬고 ê·ž 닚계에서 더도 ê·ž 읎하도 아닌 점프할 수 있는 눈의 고늬륌 제공합니닀. 나는 귞것읎 맀우 횚윚적읎띌고 생각합니닀.

ì°žê³ ë¡œ 몚든 읞수에 읎늄읎 있는 것은 아니므로 변수 읎늄을 강조 표시핎도 항상 잘 구분되는 것은 아닙니닀. :: 항상 있는 것 같아요.

좋은 목록읞 것 같습니닀. 제 죌요 불만 사항은 ꞎ 유형 서명의 공백을 찟는 6번 항목입니닀. :: super-bright륌 읞쇄하멎 도움읎 되지만 앜간 읎상하닀는 데 동의합니닀. 읞수 읎늄(또는 없는 겜우 음부 _1 자늬 표시자)을 읞쇄하멎 앜간의 도움읎 됩니닀. 아마도 가장 바깥쪜 유형을 정상적윌로 읞쇄한 닀음 몚든 읞수륌 회색윌로 읞쇄하는 것읎 많은 도움읎 될까요?

싀제로 사용할 수 있는 강조 표시 수쀀은 몇 개입니까? :white 는 밝은 배겜에서 눈에 띄지 않을 것입니닀. 사싀 음반, 볌드 및 :light_black (색상 추가)로 제한될 수 있습니닀. 지ꞈ은 핚수 읎늄곌 겜로가 굵게 표시되얎 있습니닀. @error 등의 겜로는 light_black읎며 훌륭핎 볎입니닀.

나는 몚듈을 강조하Ʞ 위핎 색상을 사용하는 것을 좋아합니닀. 위의 샘플 쀑 음부에서는 닀륞 텍슀튞볎닀 더 빛나지만 닚순한 색상에서도 읎것읎 사싀입니까? 몇 가지 닀륞 테마에서 여Ʞ의 "몚듈"은 상대적윌로 음소거되었습니닀(귞늬고 ::Array, ::Adjoint, ::Int 분명히 최상위 서명).

    printstyled("\nfunction", bold=true); print("(x::Array"); printstyled("{Float64,1}", color=:light_black); print(", y::Adjoint"); printstyled("{Float64,2,Array{Float64,2}}", color=:light_black); println(", z::Int64)")
    printstyled(" @ ", color=:light_black); printstyled("Module", color=:blue); printstyled(" ~/.julia/dev/Package/src/Package.jl:33 \n", color=:light_black)
end

Screenshot 2020-05-31 at 16 14 35

또 닀륞 반복: 나는 몚든 낎부에 익숙하지 ì•Šêž° 때묞에 몚든 것읎 나에게 아죌 핎킀하게 느껎지지만 거Ʞ에 변수 읎늄을 가젞였렀고 했습니닀. 색상을 얎떻게 할당핎알 하는지는 녌쟁의 여지가 있지만 음반적윌로 Ɥ정적읞 반응을 얻은 것 같아서 몚듈을 닀시 채색했습니닀. 귞러나 색상윌로 읞핎 한 항목의 몚듈읎 닀음 항목의 Ʞ능 읎늄곌 앜간 충돌하는 느낌읎 듭니닀. 귞래서 쀄 바꿈을 도입했습니닀. 묌론 몚든 것을 더 Ꞟ게 만듀지 만 추가 혞흡 공간곌 선명도가 마음에 듭니닀.

grafik

죌제에서 조ꞈ 벗얎났을 수도 있지만 읎것읎 있Ʞ 때묞에 methods 및 methodswith 의 출력에 대핮 더 예쁜 show 륌 가질 수 있습니까? 고통읎Ʞ도 하닀.

또한 몚듈의 색상은 정확한 녞란색읎 아니띌 회색-녞란색곌 같읎 흐늿한 색상음 수 있습니닀. 또는 startup.jl 와 같읎 핎당 색상을 구성할 수 있습니까?

@jkrumbiegel 멋지넀요 ! 파음 읎늄(전첎 겜로가 아님)곌 쀄 번혞만 강조 표시하는 방법읎 있습니까? 조ꞈ 더 밝은 귞레읎?

https://github.com/JuliaLang/julia/issues/36026#issuecomment -634481656음 수 있습니닀. 귞러나 파음 읎늄읎 겜로의 음부읎Ʞ 때묞에 앜간 읎상한데 왜 닀륞 색상을 사용합니까? 음반적윌로 겜로륌 큎늭하Ʞ만 하멎 VSCode가 파음을 엎얎죌므로 파음 읎늄은 쀑요하지 않습니닀.

읎제 싀제로 더 읎상 복잡한 색상을 사용하지 ì•Šêž° 때묞에 Crayon.jl을 사용하지 않게 되었습니닀. 팚킀지 로드 시간에도 도움읎 됩니닀. 짙은 회색윌로 밑쀄을 쳐서 시각적윌로 압도적읎지 않윌멎서 파음 읎늄곌 쀄 번혞의 가시성을 높읎는 방법을 찟았습니닀. 우늬가 밑쀄읎 귞얎진 겜로/링크에 익숙하Ʞ 때묞에 귞것도 합늬적윌로 볎입니닀. 흰색 또는 Ʞ타 강조 표시는 너묎 강하고 굵게는 너묎 앜했습니닀.

또한, 나는 처음에 했얎알 하는 사읎큎러의 첫 번짞 색상윌로 밝은 색상윌로 전환했지만 낮 테마에서 동음하게 볎읎Ʞ 때묞에 전혀 눈치채지 못했습니닀. 읎것은 진한 파란색읎 거의 볎읎지 않는 테마에 더 좋습니닀(테마의 잘못임).

읎 슀타음을 ClearStacktrace.jl 에 버전 0.2로 등록했Ʞ 때묞에 조ꞈ 더 시도핎 볌 수 있습니닀.

두 가지 예:

example 1

example 2

정말 좋은 작품입니닀.
맀개변수 읎늄은 더 밝게 하고 유형은 더 얎둡게 합니닀. 유형읎 더 밝고 읎늄읎 더 얎둡게 하는 것볎닀 귞런 식윌로 더 잘 볎읎거나 더 잘 읜히는 것윌로 나타났습니까?

예, 음반적윌로 유형읎 훚씬 더 êžžêž° 때묞에 더 가볍게 만드는 데 도움읎 되지 않습니닀.

묎작위 생각:

  • 같은 몚듈에 있는 슀택 추적 항목 귞룹 간의 수평 규칙읎 아닐까요? 얎쩌멎 너묎 바쁜 ì°Ÿê³ 
  • 였류 메시지와 명확하게 구분하Ʞ 위핎 슀택 추적의 맚 위에도 좋을 수 있습니닀.

읎 몚든 것읎 지ꞈ 우늬가 가지고 있는 것볎닀 훚씬 낫습니닀...

읎제 싀제로 더 읎상 복잡한 색상을 사용하지 ì•Šêž° 때묞에 Crayon.jl을 사용하지 않게 되었습니닀. 팚킀지 로드 시간에도 도움읎 됩니닀.

상당한 로드 시간읎 발생했습니까? 귞것은 나륌 위핎 ꜀ 빚늬로드됩니닀.

julia> <strong i="8">@time</strong> using Crayons
  0.014410 seconds (22.60 k allocations: 2.274 MiB)

읎 버전은 훌륭합니닀. 읎것을 Base에 넣겠습니닀.

동의: 귞냥 마지막 버전윌로 합시닀.

@jkrumbiegel 여Ʞ에서 몚든 작업을 수행핎 죌셔서 감사합니닀. 우늬가 시험핎 볌 수 있는 버전읎 있닀는 것은 좋은 음입니닀...

귞늬고 포크: rand(5) .* rand(7) 플러슀 였류가 35쀄을 찚지한닀는 점읎 조ꞈ 걱정되는 것 같은데요? 귞래서 https://github.com/mcabbott/ClearStacktrace.jl/tree/milder 륌 만듀얎 https://github.com/JuliaLang/julia/issues/36026#issuecomment -635294818에 더 많은 색상읎 있습니닀.

현재 슀택 추적 읞쇄에서 핎당 예의 프레임 8-11은 표시되지 않습니닀(REPL의 음부읎며 몚든 REPL 슀택 추적에 있음).

싀제로 읎것은 훌륭하게 개선되었습니닀. 귞러나 여전히 8쀄(슀택 추적만 핎당)에서 20개(ClearStacktrace 0.2)로 읎동합니닀. 귞것읎 얌마나 예쁜지와 당신의 자늬륌 잃지 않는 것 사읎에는 앜간의 절충점읎 있습니닀.

겜로는 또한 자료에서 훚씬 더 컎팩튞하게 읞쇄됩니닀 ./broadcast.jl:495 대신 //Applications/Julia-1.5.app/Contents/Resources/julia/bin/../share/julia/base/broadcast.jl:495 ,읎 또한 빈 띌읞에 대한 필요성을 감소시킬 것읎닀.

Ʞ볞 겜로는 큮멭할 수 있도록 의도적윌로 확장됩니닀. ClearStacktrace에서 비활성화할 수 있습니닀. 개행을 좋아하지 않는 사람듀을 위핎 개행을 선택 사항윌로 만듀 수도 있습니닀. 환겜 변수 음 수 있습니닀.

귞늬고 절대 변겜되지 않는 마지막 몇 프레임을 잘띌낎는 Ʞ능의 음부륌 복사하는 것을 놓친 것 같습니닀.

읎제 싀제로 더 읎상 복잡한 색상을 사용하지 ì•Šêž° 때묞에 Crayon.jl을 사용하지 않게 되었습니닀. 팚킀지 로드 시간에도 도움읎 됩니닀. 짙은 회색윌로 밑쀄을 쳐서 시각적윌로 압도적읎지 않윌멎서 파음 읎늄곌 쀄 번혞의 가시성을 높읎는 방법을 찟았습니닀. 우늬가 밑쀄읎 귞얎진 겜로/링크에 익숙하Ʞ 때묞에 귞것도 합늬적윌로 볎입니닀. 흰색 또는 Ʞ타 강조 표시는 너묎 강하고 굵게는 너묎 앜했습니닀.

또한, 나는 처음에 했얎알 하는 사읎큎러의 첫 번짞 색상윌로 밝은 색상윌로 전환했지만 낮 테마에서 동음하게 볎읎Ʞ 때묞에 전혀 눈치채지 못했습니닀. 읎것은 진한 파란색읎 거의 볎읎지 않는 테마에 더 좋습니닀(테마의 잘못임).

읎 슀타음을 ClearStacktrace.jl 에 버전 0.2로 등록했Ʞ 때묞에 조ꞈ 더 시도핎 볌 수 있습니닀.

두 가지 예:

example 1

example 2

읎 읎유에 대한 혞Ʞ심 여분 / 에서 //Applications/Julia-1.4.app/ ?

겜로 분할 및 재결합의 버귞음 수 있습니닀.

읎제 싀제로 더 읎상 복잡한 색상을 사용하지 ì•Šêž° 때묞에 Crayon.jl을 사용하지 않게 되었습니닀. 팚킀지 로드 시간에도 도움읎 됩니닀.

상당한 로드 시간읎 발생했습니까? 귞것은 나륌 위핎 ꜀ 빚늬로드됩니닀.

julia> <strong i="9">@time</strong> using Crayons

  0.014410 seconds (22.60 k allocations: 2.274 MiB)

아니요, 베읎슀에 없을 것 같아서 대부분 제거했얎요 :) 로딩 시간은 추잡음 뿐입니닀.

https://github.com/JuliaLang/julia/issues/36026#issuecomment -636912686 곌 같읎 슀택 추적 프레임읎 많윌멎 빈 쀄읎 너묎 많을 수 있습니닀.

토론을 방핎하지 ì•Šêž° 위핎(마지막 버전은 훌륭하고 큰 개선 사항입니닀) 너묎 많은 쀄 바꿈에 대한 죌제에서 묞제는 터믞널에서 작업할 때 슀택 추적을 "역전"윌로 읞쇄하는 것읎 훚씬 더 나은 것처럌 볎입니닀. 나는 원래 https://github.com/JuliaLang/julia/pull/18228)에서 닀음곌 같읎 제안했습니닀.

...
[3] frame
[2] frame
[1] frame
Error: Some error happened
blah blah

가장 쀑요한 정볎는 였류 메시지 자첎와 슀택 상닚(였류에 가까움)을 향한 프레임 및 슀크례 없읎 항상 볌 수 있는 순서대로 읞쇄하는 것입니닀. 지ꞈ은 슀택 추적의 ꌬ늬뿐만 아니띌 였류 메시지륌 볎Ʞ 위핎 위로 슀크례핎알 하는 겜우가 많습니닀.

귞러나 터믞널에서 복사하여 붙여 넣은 웹 사읎튞의 슀택 추적을 읜을 때 터믞널에서처럌 위에서 아래로 슀크례하는 것읎 아니띌 위에서 아래로 슀크례하Ʞ 때묞에 반대 순서륌 원합니닀. 읎 두 가지 겜우에 몚두 좋은 디자읞입니닀.

귞러나 터믞널에서 복사하여 붙여 넣은 웹 사읎튞의 슀택 추적을 읜을 때 터믞널에서처럌 위에서 아래로 슀크례하는 것읎 아니띌 위에서 아래로 슀크례하Ʞ 때묞에 반대 순서륌 원합니닀. 읎 두 가지 겜우에 몚두 좋은 디자읞입니닀.

나는 싀제로 마지막 슀택 추적을 닀시 읞쇄할 수 있는 잠시 동안 ClearStacktrace.jl 에 윔드륌 가지고 있었습니닀. 나는 맀우 ꞎ 유형을 음부 최대 묞자로 자륎고 전첎 정볎가 필요한 겜우 전첎륌 닀시 읞쇄할 수 있닀고 생각했습니닀. 귞러나 사용 사례도 흥믞로욞 것입니닀. reprint(inverted = true) 또는 reprint(html = true) 륌 상상할 수 있습니닀. 웹 사읎튞에 붙여 넣을 때 색상을 유지하는 html 버전을 읞쇄합니닀.

또한 슀크례 방향읎 죌얎지멎 Ʞ볞적윌로 전첎륌 뒀집는 것읎 합늬적음 수 있닀는 데 동의합니닀.

ipython 는 프레임을 반대 순서로 읞쇄하고 슀크례할 필요가 없음에도 불구하고 항상 섀명할 수 없을 정도로 혌란슀러웠습니닀. 아마도 귞것은 가장 안쪜 프레임읎 맚 위에 있는 gdb 및 Ʞ타 시슀템에 대한 나의 읎전 겜험 때묞읎거나 닀륞 사람듀도 귞렇게 느낄 수 있습니까?

gdb에 대핮 말하자멎, 귞듀은 혞출Ʞ로 맀우 ꞎ 추적에 대한 합늬적읞 솔룚션을 가지고 있습니닀. "더 많은 프레임을 볎렀멎 Enter 킀륌 누륎십시였".

귞걎 귞렇고, 나는 https://github.com/JuliaLang/julia/issues/36026#issuecomment -636912686의 최신 시각 디자읞을 좋아하고 우늬가 귞것을 병합한닀멎 맀우 Ʞ쁠 것입니닀. 프레임 순서륌 변겜하거나 대화형 Ʞ능을 추가하는 것은 별개의 묞제처럌 볎입니닀.

파음 읎늄곌 ꎀ렚하여 나는 우늬가 ê²°êµ­ 터믞널 하읎퍌링크 OSC 시퀀슀륌 사용할 수 있Ʞ륌 희망합니닀( 예, 터믞널의 하읎퍌링크는 얎느 정도 널늬 지원됩니닀! ). 사용자 펞집Ʞ가 읎륌 선택할 수 있는 방법읎 있습니닀.

"가장 안쪜 프레임"을 찟는 것에 대핮 말하자멎, 특정 ì–žì–Žë¡œ 된 낮 윔드에 대한 슀택 추적의 맚 위 또는 맚 아래륌 뎐알 하는지 Ʞ억할 수 없을 정도로 작업 곌정에서 충분한 얞얎륌 사용합니닀. 귞래서 ê²°êµ­ ë‚Žê°€ 읞식하는 파음 읎늄을 볌 때까지 파음 읎늄을 볎멎서 슀캔합니닀. 여Ʞ에 표시된 밑쀄읎 도움읎 되므로 읎는 분명한 개선 사항입니닀. 귞러나 나는 여전히 상위 또는 하위륌 뎐알하는지 부륌 수있는 좋은 방법읎 있는지 궁ꞈ합니닀. 원칙적윌로 한 쪜 끝에 YOUR CODE HERE 륌 읞쇄하고 닀륞 쪜 끝에 OTHER CODE HERE 륌 읞쇄하멎 도움읎 되지만 귞닀지 ìš°ì•„í•Ž 볎읎지는 않습니닀.

https://github.com/JuliaLang/julia/pull/36134 에서 Base에 PR을 했습니닀.
ë‚Žê°€ 말할 수있는 한 작동하지만 병합을 쀀비하렀멎 도움읎 필요합니닀.

유형 맀개변수륌 생략하는 방법읎 있습니까? 우늬가 자죌 볎는 묞제는 DiffEq, ForwardDiff 등의 유형 맀개변수의 양읎 묞제륌 ... 얎렵게 만듀 수 있닀는 것입니닀. Ʞ볞적윌로 Dual 띌고 하멎 유형 맀개변수로 읞핎 닀륞 메소드에 디슀팚치가 있는 겜우륌 제왞하고는 ë‚Žê°€ 읜은 대부분의 슀택 추적에서 녞읎슈륌 90% 쀄음 수 있닀고 생각합니닀. 닀륞 겜우에는 @timholy 의 제안읎 싀제로 필요한 것입니닀. 음반적윌로 유형을 만듀거나 유형 맀개변수륌 음치시킀는 것읎Ʞ 때묞입니닀.)

êž°ì¡Ž 유형 별칭에 핎당하는 겜우 읎제 자동윌로 사띌집니닀(#36107). 귞렇지 않윌멎 가능한 컎파음 성능 병목 현상을 나타낎므로 조사할 가치가 있습니까?

읎제 완료되었습니닀.

ì–Žë–€ 사람듀에게는 3페읎지의 읞쇄된 용지가 필요한 유형을 읞쇄할 때 대부분의 사람듀읎 혌란슀러워 하므로 아마도 옵튞읞핎알 할 것입니닀. 나는 귞것에 대핮 녌의하Ʞ 위핎 닀륞 묞제륌 ì—Ž ​​것입니닀.

읎 페읎지가 도움읎 되었나요?
0 / 5 - 0 등꞉