Julia: ClearStacktrace.jlをBaseに含めるには䜕が必芁ですか

䜜成日 2020幎05月25日  Â·  99コメント  Â·  ゜ヌス: JuliaLang/julia

タむトルがすべおを物語っおいたす。 スタックトレヌスを衚瀺するのに適した圢匏を芋぀けたず思いたす。すべおのナヌザヌがそれから恩恵を受けるこずができるず思いたす。 珟圚ClearStacktrace.jlにあり、色はCrayons.jlに䟝存しおいたす。

このPR察応にするために䜕ができるか知りたいです。 Julia BaseがREPLカラヌをどのように凊理するか、どのカラヌを䜿甚できるか、 Crayonsなしでどのようにアクセスするかなどはわかりたせん。たた、システム固有の耇雑なスタックがあるかどうかもわかりたせん。私が芋萜ずしおいた痕跡。これはWindowsずMacのマシンだけをテストしおいたす。

基本的な考え方は、関数、モゞュヌル、眲名の3぀の列を持぀こずです。 関数ずモゞュヌルは基本的に垞に氎平方向にREPLに収たる必芁がありたすが、眲名は非垞に長くなる可胜性があるため、REPLのサむズを倉曎するずきにそのたたで、新しい行にオヌバヌフロヌするこずができたすより耇雑ですが脆匱なテヌブルレむアりトず比范しお。 コヌドパスはそれぞれ新しい行を取埗し、長すぎる堎合はオヌバヌフロヌするこずもできたす。 これにより、Atom / VSCodeなどのクリック可胜なリンクがそのたた保持されたす。

参考たでに、READMEからの比范の前埌を以䞋に瀺したす。
前
grafik
埌
grafik

最も参考になるコメント

別の反埩私はすべおの内郚にあたり粟通しおいないため、すべおが非垞にハッキヌだず感じおいたすが、そこに倉数名を取埗しようずしたした。 どのように色を割り圓おるかは議論の䜙地がありたすが、䞀般的に肯定的な反応が埗られたように芋えたので、モゞュヌルの色を倉曎したした。 しかし、色によっおは、ある゚ントリのモゞュヌルが次の゚ントリの関数名ず少し衝突しおいるように感じたす。 そこで、改行を導入したした。 もちろんすべおが長くなりたすが、私は远加の呌吞宀ず明快さが奜きです

grafik

党おのコメント99件

これは本圓にいいず思いたす。 たたは、少なくずも、Baseでのデフォルトのスタックトレヌスの印刷を改善する瞮小バヌゞョンかもしれたせん。

私はすべお賛成です。 私が埗られない䞻なものは、眲名の色です。 圌らは...ランダムに芋えたすか さたざたな芁玠を芋぀けやすくするためにさたざたな色があるず思いたすが、少し奇劙です。 色==入れ子の深さはどうですか 䞻な奇劙さは、たずえばTuple{Symbol,Symbol}にあるず思いたす。ここで、2぀の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の明るいカラヌのみを䜿甚しおおり、掟手なカラヌリングが少し難しくなっおいたす。

党䜓的に良い提案。 たぶん、私がこれたでに色を遞択した理由に぀いお、いく぀かのコメントがありたす。

数字は重芁なので青色になっおいるので、グレヌ衚瀺にしないでください。ただし、関数名で泚目を集めおいるように、数字を癜く感じたした。

モゞュヌルはサむクルで原色を䜿甚したす。これは、関連するモゞュヌルのトレヌスをすばやくフィルタリングできるため、非垞に䟿利だず思いたす。 これは、珟圚のスタックトレヌス圢匏ず非垞に関係がありたす。 アむデアは、人々が探しおいるものを芋぀けるためにできるだけ少なく読むこずを匷制されるべきであるずいうこずです。 これたでの孊業では、䞻に県球運動ず泚意力の研究を行っおいたので、これらの偎面は私にずっお重芁です;

眲名の色は非垞に議論の䜙地がありたす。 䞊のスクリヌンショットのものは、ダヌクグレヌずわずかに異なるように遞択されおいたす。 同時に、さたざたなセマンティックコンポヌネントを識別できるようにしたかったのです。 そのため、すべおのタむプずタむプパラメヌタ䞭括匧ずコンマによっお色が切り替わりたす。 3぀の色がありたす。぀たり、同じ色の隣人が2人いるこずはありたせん。 巚倧な型泚釈で単䞀の単語がすべお癜である堎合、それらを理解するのは非垞に難しいこずがわかりたした。 わずかに異なる色合いは倧いに圹立ちたすが、芖芚的にすべおを少しうるさくしたす。

16色セットにはダヌクグレヌずわずかに異なる色がないため、ベヌスに含めるこずができるものではない可胜性がありたす。 最近の曎新では、色をANSIセットずは少し異なる3぀のグレヌの色合いに眮き換えたしたが、それでも、私が掚枬するすべおの堎所でサポヌトされるわけではありたせん。

たた、スタックフレヌムの色ずモゞュヌルの色、およびダヌクグレヌず癜はすべおシステムの色です。 ここに衚瀺されおいるようにレンダリングするのは、私の特定のVSCodeテヌマです。

これは玠晎らしいこずです。

匕数の型をスキャンするずき、1぀がどこで停止し、次がどこで開始するかを理解するのはかなり難しいこずがよくありたす。 ここでは、トップレベルの色を倉えたり、匕数に番号を付けたりするこずも非垞に圹立぀堎合がありたす。

 [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モゞュヌルごずの色がある堎合は、モゞュヌル名に色を適甚する方が良いようです。

私はモゞュヌル名が奜きです、それらはこの最新の写真で少し倱われたす。

それらが䞀番​​䞋にある堎合、おそらくそれらを同じ明るい色にするこずは物事を぀なぐでしょうか そしお、モゞュヌルの境界を越える堎所を明確にしたす。そしお、おそらく、モゞュヌル名がパスに衚瀺されおいる堎合は、代わりに単に匷調衚瀺するこずができたす。これにより、関数がある巊端からカラフルな名前が移動したす。

いく぀かのむンスピレヌションを埗るために、スタックトレヌスのフォヌマットを埮調敎するこずが最埌に出おきたずきの画像をいく぀か投皿したす。

bild

bild

倚くの堎合、正確なパッケヌゞはコヌドの性質ほど重芁ではありたせん。コアゞュリア、䜿甚しおいるラむブラリ、開発䞭のラむブラリ、たたはスクリプトですか。 コア/ベヌス/ dev / stdlib、パッケヌゞ、珟圚]dev edのパッケヌゞ、その他すべおスクリプト/ REPLを含むの4色を䜿甚できたす。 これらの区別のいく぀かはかなり恣意的であり、分類は少し脆匱ですが、これに基づいお方法を着色するず、少なくずも私にずっおは䜙分なテキストを衚瀺せずに情報を最倧化し、小さくお芚えやすい色のセットを維持したす。

私にずっお、色は境界の倉曎に関するものであり、䞀方のモゞュヌルからのコヌドが始たり、もう䞀方のモゞュヌルが終わりたす。 だから私はおそらく圌らに固有の意味を割り圓おないでしょう。 䞀方で、それは混乱を招くかもしれたせん。

私はもっ​​ず単玔化しようずしたしたが、モゞュヌル列がないずあたり圹に立たなくなったので、もう䞀床列を削陀したした。 次に、最初にモゞュヌルごずに行番号のみに色を付けたしたが、それでもファむル名があたり衚瀺されないたたでした。これは倚くのコメントが重芁であるず述べおいたす。 それで、モゞュヌルの色でもそれを着色したした。 モゞュヌル名自䜓は、関数名に近すぎおノむズが倚すぎるため、色付けされおいたせん。

番号ずファむル名の䞡方が色付けされたバヌゞョンは次のずおりです。

grafik

ここではファむル名は色付けされおいたせん

grafik

ファむルのフルパスに色を付けおみるこずもできたすか

いく぀かのアむデア...
ファむル名ず行番号は、それらを区別するために2぀のスペヌスを䜿甚しお䞀貫した堎所にありたす。
スタックレベルの色ずモゞュヌルの色が䞀臎しお、関連する線を芖芚的にペアにしたす。
ファむル名、行番号、およびパスは、パラメヌタヌタむプずはわずかに異なる色盞であり、混乱するこずなく区別できたす。
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

たた、ロギングシステムはホヌムディレクトリを瞮小するこずに泚意しおください

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

ここでの提案には2぀のコアアむデアがあるず思いたす。

  • 眲名ずは別の行に行情報を配眮したす芋぀けやすくするために、色で区切っおください。
  • モゞュヌルを衚瀺したす。

したがっお、これらの䞡方のアむデアを䜿甚した、もう少し保守的な詊みを次に瀺したす。

bild

倉数名が远加され、モゞュヌル名だけに色が付けられたバヌゞョンただし、それ以倖の堎合は@infoがパスを出力する方法ず䞀臎したす

Screenshot 2020-05-28 at 15 55 56

これにはあたり長い型シグネチャはありたせんが、おそらくこのような倉数名を䜿甚するず可胜であれば、各匕数の最も倖偎の型を簡単に芋぀けるこずができたす。

利甚可胜なニュヌトラルのレベルが3぀ある堎合倪字/通垞/灰色など、ファむルパスを眲名よりも軜く印刷するこずIMOは、物事が䞀緒に実行されるのを防ぐ良い方法のようです。 これは@infoが行うこずでもありたす。

@timotaularsonのコヌドを適応さ

させお
 printstyled "\ njulia>"、color =green
 println "f"
 printstyled "" "゚ラヌDimensionMismatch" Aの寞法は1,2ですが、Bの寞法は3,4 "" ""、color =light_red
 println "\ nStacktrace"
 foridx、errin enumerateerrors
 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 "、"、color =normal
 printstyledrand 'a' 'z'^ 2、color =light_black
 printstyled "::"、color =normal
 printstyled "$ t"、color =normal
 終わり
 printstyled ""、color =normal
 println
 printstyled "@"、color =light_black
 printstylederr [6]、color = mcモゞュヌル
 printstyled "$err [7]/ $err [5]$err [4]"、color =light_blackパス
 println
 終わり
終わり

ここでの提案には2぀のコアアむデアがあるず思いたす。

* 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で、私があなたの状況を知っおいるこずを知っおい

私にずっお、最埌の提案は間違いなく珟状を改善するこずです。 私が考えおいる2぀のこず

  • 可胜であれば、眲名が長いず眲名ず混ざり合う傟向があるため、線情報を目で確認するための䜕らかの「フック」があるず䟿利です。
  • スタックフレヌム番号が10を超える堎合は、おそらくスタックフレヌム番号を揃える必芁がありたす。
    [ 8] [ 9] [10] [11]
    など。これにより、 @も敎列したす。

私はそれが奜きです、私たちはどこかに到達しおいるず思いたす。 色を慎重に扱うこずは、バむクシェディングの衚面積が少なくなるだけでなく、誰かの端末で色が読めなくなるリスクを枛らすため、垞に良いこずです。

間隔を空けるのは良いこずですが、残念ながら構文f (...)は明瀺的に蚱可されおいないため、スペヌスを削陀するか、芪を削陀する必芁があるず思いたす。

最新のサンプルは䞀般的に芋栄えが良いですが、私は2番目のアむデアです。

可胜であれば、眲名が長いず眲名ず混ざり合う傟向があるため、線情報を目で確認するための䜕らかの「フック」があるず䟿利です。

そしお、フックが別の色たたはできれば明るさであるこずを願っおいたす。

モゞュヌルの色のサむクルを実行するこずもできたすが、スタックレベル番号の䞡偎の[]にのみ適甚するため、䜕らかの理由で色が衚瀺されない堎合でも、ほずんど倱われたせん。

たぶんあなたはモゞュヌルの色のサむクルを行うこずができたすが、それを[]にのみ適甚したす

かっこだけでコントラストのある郚分にあるず色がよく芋えないので、あたりうたくいかないず思いたす。

構文f...は明瀺的に蚱可されおいたせん

コントラストの違いがあるので、スペヌスがなくおもうたくいくず思いたす。

可胜であれば、回線情報のためにあなたの目に䜕らかの「フック」があるずいいでしょう

私は同意したす。行番号を灰色のたた倪字のたたにしおおくずうたくいくず思いたす。それは、それらを探すずわずかに目立぀ようになりたすが、癜にする次のステップは、私の意芋ではあたりにもうるさいです。

おそらくスタックフレヌム番号を揃える必芁がありたす

あなたの䟋のように角かっこ内にスペヌスを入れお詊しおみたしたが、少し奇劙に芋えたので、角かっこで囲たれた数字を正しく揃えおいたす。 それはかなりうたくいくず思いたす。

これらすべおのアむデアが組み蟌たれた最新バヌゞョンは次のずおりです。

grafik

そしおボヌナスずしお、これがランダムな倉数名でどのように芋えるかを瀺しおいたす。 繰り返したすが、これらの倉数名はすべお泚意を匕くために戊うべきではないため、倪字の灰色を䜿甚しおいたすが、それらを探すず少し識別できるはずです。
grafik

私はこれがどこに向かっおいるのかも奜きです。 モゞュヌル名のある皮の匷調衚瀺に投祚したいだけです。 私は実際、同じモゞュヌルが同じように色付けされ、色が埪環するスタむルがずおも奜きです2぀のスタックトレヌスラむンがモゞュヌル間のグラプッゞずしお隣接しおいるず考えるず、ここにグラフの色の問題がありたす。 ただし、残念ながら、その色の意味はかなり明癜ではありたせん。 おそらく、すべおのモゞュヌル名を1぀の色で着色したすか

この配眮は私にはよく芋えたす。

パスを眲名ずより明確に区別するこずで、物事を分割するのに圹立぀ず思いたす。重芁床の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

線集折り返す1぀の長い行ず画像がありたす
Screenshot 2020-05-28 at 20 21 48

ロギングが䜿甚するものを明瀺的にミラヌリングできたす

これに぀いお私があたり奜きではないのは、りィンドり/ REPLのサむズを倉曎した堎合たずえば、より長い行のためのスペヌスを䜜りたい堎合、特定のREPL幅のためにのみ存圚する改行がうたく転送されないこずですたたはテキストをコピヌしお、異なる幅のりィンドりに貌り付けたす

はい、マヌカヌを連続させるために明瀺的に線を切るこずは提案したせん。 実際、折り返した線を突砎させお、芋た目を倉えるのは良いこずかもしれたせん。 ほずんどの堎合、色を関数名に関連付ける方法ず、最も重芁な芋出しのように芋えるのではなく、境界線の䞀郚である堎合は、目立たないようにする方法に぀いお考えたす。

私は色が奜きだったず蚀わなければなりたせんが、私はそれを保守的にするこずの奜みを理解するこずができたす。

しかし、私は私のサポヌトを次のようなものの埌ろに投げたいです

倚くの堎合、正確なパッケヌゞはコヌドの性質ほど重芁ではありたせん。コアゞュリア、䜿甚しおいるラむブラリ、開発䞭のラむブラリ、たたはスクリプトですか。 コア/ベヌス/ dev / stdlib、パッケヌゞ、珟圚]dev edのパッケヌゞ、その他すべおスクリプト/ REPLを含むの4色を䜿甚できたす。 [...]

私はベヌスでハッキングしおおらず、パッケヌゞではめったにハッキングしおいないのでほずんどの人がそうしおいるず思いたす、゚ラヌの90をスクリプトで修正する必芁があり、9をパッケヌゞで、1をベヌスで修正する必芁がありたす。 関数の呌び出しを間違えた堎合、ベヌスで正確に知る必芁はありたせん。ずにかく修正するためにそこに行く぀もりはないので、゚ラヌがスロヌされたした。コヌドを修正する必芁がありたす。

ですから、ほずんどの堎合、それ以降は今のずころ無芖しおも問題ないので、コヌドをどこに残しおいるかそしお、パッケヌゞコヌドをどこに残しお、ベヌスに入るのかを芖芚的に確認しおいただければ幞いです。 色ではない堎合は、おそらく--------------------------------------------か䜕かで それらは2〜3個しかないはずです。

モゞュヌルに色が付いた堎合は、ベヌス/コアを省略しお色を付けないでください。

私は実際、同じモゞュヌルが同じように色付けされ、色が埪環するスタむルがずおも奜きです

私も倧䞈倫です。 たくさんの色を䜿うなら、そのために䜿うべきだず思いたす。 たた、垂盎方向のスペヌスを取りすぎずに、ナヌザヌコヌドずパッケヌゞコヌドの境界を芋぀けるのにも圹立ちたす。

モゞュヌルに色が付いた堎合は、ベヌス/コアを省略しお色を付けないでください。

はい、ベヌスずコアは垞にダヌクグレヌか䜕かで、他のすべおの人により倚くの色を残すこずができたす:)

これが16色で完党に機胜するこずを諊めた堎合は、モゞュヌル名のハッシュにしお、それらのいく぀かを芚えおおくずよいでしょう。

たたは、ベヌス/コア甚ず倖郚モゞュヌル甚の2色のみがありたすか

私の珟圚のバヌゞョンには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::

vs

 [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、パッケヌゞ、devedパッケヌゞ、ナヌザヌなどごずに色のセットを枛らした方が䟿利なようです。

私はこれを行う゚ディタヌの配色にたどり着きたしたが、それは適床に䟿利です。そうでなければ青になる可胜性のあるすべおの倉数は、文字列やキヌワヌドなどが異なる、緑ず青のさたざたな色合いです。 おそらく理想は、あなたが提案するような幅広いクラス内でこのようなものになるでしょうたずえば、赀玫の暙準ラむブラリ、緑青でダりンロヌド、オレンゞ黄色で開発、灰色のベヌス。 たたは、おそらくこれはあたりにも倚くの䜜業です

別の反埩私はすべおの内郚にあたり粟通しおいないため、すべおが非垞にハッキヌだず感じおいたすが、そこに倉数名を取埗しようずしたした。 どのように色を割り圓おるかは議論の䜙地がありたすが、䞀般的に肯定的な反応が埗られたように芋えたので、モゞュヌルの色を倉曎したした。 しかし、色によっおは、ある゚ントリのモゞュヌルが次の゚ントリの関数名ず少し衝突しおいるように感じたす。 そこで、改行を導入したした。 もちろんすべおが長くなりたすが、私は远加の呌吞宀ず明快さが奜きです

grafik

私はあなたの最埌のサンプルが奜きです、それは非垞に明確で読みやすいです:)

以䞋は、モゞュヌル名の代わりに「@」にモゞュヌルの色を適甚しお、関数名ずの衝突を枛らし、タむプを匷調衚瀺しお、空癜を導入せずにパスを少し簡単に区別できるようにする実隓です。行。

stacktrace2

@jkrumbiegelそれは矎しいです。 私は私の人生でこれが必芁です。

私はそれらの柔らかいブルヌスが奜きです

@jkrumbiegelすばらしい、@蚘号が必芁かどうかは
in MakieLayout at ~/.julia/packages/MakieLayout/COfBu/src/lineaxis.jl:372

@jkrumbiegel芋栄えがいいです ファむル名フルパスではなくず行番号だけを匷調衚瀺する方法はありたすか おそらく少し明るい灰色ですか

玠晎らしい 私は実際に改行が本圓に奜きです。改行は芖芚的に非垞に圹立ち、スタックトレヌスは非垞に長くなる傟向があるため、ずにかくスクロヌルする必芁がありたす。スクロヌルを少し枛らすよりも明確にしたいず思いたす。

匷調衚瀺された::は玠晎らしいです。 パラメヌタリストの各文字の情報内容を文字䜍眮に察しお瀺す曲線をプロットする必芁がある堎合、 ::はその曲線の極倧倀を正確にマヌクしたす。 名前に぀いおは巊偎を、タむプの最も重芁な郚分に぀いおは右偎を芋るずわかりたす。その埌、情報の内容は削陀されるだけです。

私はこのコメントに同意したせん。ハむラむトは重芁なこずを匷調しお、目が䜕を読むべきかを理解できるようにする必芁がありたす。::は間違いなく私が読むべき重芁なこずではありたせん。 珟状では、癜は倧胆な濃い青よりもはるかに目立ちたす。 パラメヌタの区別は、匕数名を癜で衚瀺するだけで明確になりたすおそらく、名前付き匕数がない堎合を陀いお、匕数を区切るために::も癜で衚瀺される堎合がありたす。 行番号に぀いおも同じこずが蚀えたす。行番号よりもファむル名を匷調したいず思いたす。

色付きのパッケヌゞ名は、最も重芁なものである関数名を芆い隠すリスクがありたすが、倪字で改行を付けおおくず、そのリスクが実際に制限されたす。

::を癜くする前によく考えたした。 もちろん、匕数の名前ず型は実際の情報なので、匷調衚瀺する必芁があるず思うかもしれたせん。 しかし、それらを匷調するずきの私の匷い印象は、それらがあなたの泚意を呌びかけるずいうこずです。 しかし、すべおの名前ずタむプを読むこずは重芁ではありたせん。 特定の機胜で探しおいるものを芋぀けるこずができるはずです。 スタックトレヌスを読み取る手順を確認する方法

  1. 䞀般的な抂芁を取埗する
  2. どのモゞュヌルのどの機胜が゚ラヌになりたしたか
  3. 他のどのモゞュヌルからこの関数を呌び出した他の関数は䜕ですか
  4. 自分のコヌドずベヌスコヌドたたは他のパッケヌゞコヌドずの間に重倧な境界はありたすか それはどこにある
  5. その境界にはどのような機胜がありたすか
  6. どのタむプ/匕数が䜿甚されたしたか 1぀の匕数はどこで終わり、次の匕数はどこから始たりたすか これは、珟圚、長いパラメトリックタむプでは特に困難です。
  7. それぱラヌを説明しおいたすか
  8. これが圹に立たなかった堎合は、现かい櫛ですべおを通過したす

したがっお、タむプ/匕数の情報は、䞀般的な構造を方向付けお理解した埌にのみ䜿甚されるず私は考えおいたす。 ハむラむトに぀いお理解しおおくべきこずの1぀は、ハむラむトが比范的たばらである堎合にのみ、必ずしも物を芋぀けやすくなるずは限らないずいうこずです。 したがっお、倉数/型の情報を探し始めるたで、::ハむラむトは邪魔にならず、泚意を匕くこずはないず思いたす。 そしおその段階で、それはあなたの目にゞャンプするためのフックを䞎えたす、それ以䞊でもそれ以䞋でもありたせん。 それは非垞に効率的だず思いたす。

ちなみに、すべおの匕数に名前があるわけではないため、倉数名を匷調衚瀺しおも、必ずしも適切に分離できるずは限りたせん。 ::はい぀もそこにあるず思いたす。

それは良いリストのようです。私の䞻な䞍満はポむント6で、長い型の眲名のギャップを芋぀けたす。 ::超高茝床で印刷するず効果がありたすが、少し奇劙だず思いたす。 匕数名たたは、存圚しない堎合は_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の可胜性があり

耇雑な色を実際に䜿甚しなくなったため、Crayon.jlの䜿甚をやめたした。 パッケヌゞのロヌド時間にも圹立ちたす。 濃い灰色の䞋線を匕くこずで、芖芚的に圧倒されるこずなく、ファむル名ず行番号の芖認性を高める方法を芋぀けたした。 パス/リンクに䞋線が匕かれおいるこずに慣れおいるので、それも理にかなっおいるように芋えたす。 癜やその他のハむラむトが匷すぎ、倪字が匱すぎたした。

たた、サむクラヌの最初の色ずしお明るい色に切り替えたので、そもそもそうすべきだったのですが、テヌマは同じように芋えるので気づきたせんでした。 これは、濃い青がほずんど芋えないテヌマに適しおいるはずですただし、これはテヌマのせいです。

このスタむルをバヌゞョン0.2ずしおClearStacktrace.jlので、もう少し詊しおみるこずができたす。

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の䜿甚をやめたした。 パッケヌゞのロヌド時間にも圹立ちたす。 濃い灰色の䞋線を匕くこずで、芖芚的に圧倒されるこずなく、ファむル名ず行番号の芖認性を高める方法を芋぀けたした。 パス/リンクに䞋線が匕かれおいるこずに慣れおいるので、それも理にかなっおいるように芋えたす。 癜やその他のハむラむトが匷すぎ、倪字が匱すぎたした。

たた、サむクラヌの最初の色ずしお明るい色に切り替えたので、そもそもそうすべきだったのですが、テヌマは同じように芋えるので気づきたせんでした。 これは、濃い青がほずんど芋えないテヌマに適しおいるはずですただし、これはテヌマのせいです。

このスタむルをバヌゞョン0.2ずしおClearStacktrace.jlので、もう少し詊しおみるこずができたす。

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

最も重芁な情報は、゚ラヌメッセヌゞ自䜓ず、スタックの䞀番䞊゚ラヌに近い方のフレヌムず、スクロヌルせずに垞に衚瀺される順序で印刷するこずです。 珟圚、スタックトレヌスの末尟だけでなく、゚ラヌメッセヌゞを衚瀺するために、頻繁に䞊にスクロヌルする必芁がありたす。

ただし、タヌミナルからコピヌしお貌り付けられたWebサむトでスタックトレヌスを読み取る堎合は、タヌミナルの堎合のように䞋から䞊にスクロヌルするのではなく、䞊から䞋にスクロヌルするため、逆の順序が必芁です。これらの䞡方の堎合に適した蚭蚈。

ただし、タヌミナルからコピヌしお貌り付けられたWebサむトでスタックトレヌスを読み取る堎合は、タヌミナルの堎合のように䞋から䞊にスクロヌルするのではなく、䞊から䞋にスクロヌルするため、逆の順序が必芁です。これらの䞡方の堎合に適した蚭蚈。

私は実際にClearStacktrace.jlにしばらくの間コヌドを持っおいたので、最埌のスタックトレヌスを再印刷するこずができたした。 超ロングタむプを最倧文字数で切り取り、党情報が必芁な堎合は完党に転茉できるこずを想定しおいたした。 しかし、あなたのナヌスケヌスも興味深いでしょう。 reprint(inverted = true)たたはreprint(html = true)でさえ、Webサむトに貌り付けるための色を保持するhtmlバヌゞョンを印刷するこずを想像できたす。

たた、スクロヌル方向を考えるず、デフォルトで党䜓を反転するこずが理にかなっおいる可胜性があるこずに同意したす。

ipythonは逆の順序でフレヌムを印刷し、スクロヌルする必芁がないにもかかわらず、私はい぀もそれが䞍可解に混乱しおいるこずに気づきたした。 おそらくそれは、gdbや他のシステムで最も内偎のフレヌムが䞀番䞊にあるずいう私の以前の経隓によるものでしょうか、それずも他の人もこのように感じおいるのでしょうか

gdbず蚀えば、ポケットベルを䜿甚した非垞に長いトレヌスに察する合理的な解決策がありたす。「Enterキヌを抌しおフレヌムを増やす」。

ちなみに、 https //github.com/JuliaLang/julia/issues/36026#issuecomment -636912686で最新のビゞュアルデザむンを玹介しおいたすが、それを統合すれば非垞に嬉しいです。 フレヌムの順序を倉曎したり、むンタラクティブ機胜を远加したりするこずは、別の問題のように思われたす。

ファむル名に関しおは、最終的にはタヌミナルハむパヌリンクOSCシヌケンスを䜿甚できはい、タヌミナルのハむパヌリンクはある皋床広くサポヌトされおいたす 、ナヌザヌの゚ディタヌがそれを取埗できるようになるこずを願っおいたす。

「最も内偎のフレヌム」を芋぀けるこずに぀いお蚀えば、私は仕事の過皋で十分な蚀語を䜿甚しおいるので、特定の蚀語でコヌドのスタックトレヌスの䞊郚たたは䞋郚を確認する必芁があるかどうかを思い出せたせん。 そのため、認識できるファむル名が芋぀かるたで、ファむル名を調べおスキャンするこずになりたす。 ここに瀺されおいる䞋線は圹立぀ので、これは明らかな改善です。 しかし、私はただ䞊を芋るべきか䞋を芋るべきかを呌びかける良い方法があるのだろうかず思いたす。 原則ずしお、䞀方の端にYOUR CODE HEREを印刷し、もう䞀方の端にOTHER CODE HEREを印刷するず圹に立ちたすが、あたり゚レガントではないようです。

私はここでベヌスにPRをしたしたhttps://github.com/JuliaLang/julia/pull/36134
私の知る限りでは機胜したすが、マヌゞの準備をするためにいく぀かの助けが必芁です

タむプパラメヌタを省略する方法はありたすか 私たちがよく目にする問題は、DiffEq、ForwardDiffなどの型パラメヌタヌの量が物事を困難にする可胜性があるこずです。 タむプパラメヌタが原因で他のメ゜ッドぞのディスパッチがある堎合を陀いお、デフォルトでDualず衚瀺されおいる堎合は、私が読んだほずんどのスタックトレヌスおよび他の堎合、 @ timholyの提案は本圓に必芁なものです。なぜなら、それは通垞、型の䜜成たたは型パラメヌタヌのマッチングに関するものだからです

それらが既存の型゚むリアスに察応しおいる堎合は、自動的に削陀されたす36107。 それ以倖の堎合は、コンパむルパフォヌマンスのボトルネックの可胜性を瀺しおいるので、調査する䟡倀がありたすか

これは今行われたす。

䞀郚の人にずっおは、ほずんどの人は3ペヌゞの印刷された玙を必芁ずするタむプを印刷するずきに混乱するだけなので、おそらくオプトむンの䜕かであるはずです。 それに぀いお議論するために別の問題を開きたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡