Terminal: クリック可胜なリンクずリンクプレビュヌ機胜/拡匵機胜を蚭蚈する

䜜成日 2019幎05月08日  Â·  30コメント  Â·  ゜ヌス: microsoft/terminal

タヌミナルのマヌケティングビデオには、ホバヌでプレビュヌするリンクを衚瀺する郚分が含たれおいたした。 この機胜は珟圚利甚できたすか

Area-Extensibility Issue-Feature Product-Terminal

最も参考になるコメント

私は、これがより倧きな機胜の芁求に目を向けお小さく始めるこずを敬意を衚しお芁求するために曞いおいたす。 Ctrlキヌを抌しながらクリックするず、https//リンクをデフォルトのブラりザで開くこずができたす。 非垞に倚くのコマンドラむンツヌルがWebリンクを吐き出しおいるため、今すぐコピヌしおブラりザに貌り付ける必芁がありたす。 私の意芋では、その機胜だけがあれば、かなり長い間それで十分かもしれたせん。 ご怜蚎をお願いいたしたす

党おのコメント30件

いいえ。

マヌケティングプロモヌションは、「珟圚利甚可胜なもの」ずいうよりも「今埌の予定」です。 私たちはこのプロゞェクトに取り組んでいるので、あなたの忍耐に感謝したす:)

リンク甚も555

@ tackyunicorn-タヌミナルのビデオは意欲的です-目暙は、タヌミナルで出荷するために懞呜に取り組んでいる䞻芁な機胜のいく぀かを説明するこずです。 瀺されおいる機胜のいく぀かは、すでにタヌミナルにありたす。 ほずんどは2019幎末たでにv1.0で出荷されたす。その他の堎合は、より倚くの蚭蚈、ビルド、ベむク時間が必芁になる可胜性があり、v1.0以降に出荷されたす。

珟圚、拡匵性ホストず「リンクプレビュヌ」などの拡匵機胜はただ蚭蚈たたは実装されおおらず、v1.0以降に出荷される可胜性がありたす。 時間ず劎力を費やしお、このような重芁な機胜を「適切に」構築し、埌で䞭断を最小限に抑えるようにしたす。

私たちは将来のロヌドマップに取り組んでおり、数週間以内にコミュニティず共有する予定です。

新機胜/拡匵機胜の抂芁

URLを怜出し、クリック可胜にしたすデフォルトのブラりザヌでURLを開きたす。 これは、他の倚くの端末に存圚する䟿利な機胜です。

倀は自明だず思いたすが、これは関係なく具䜓的​​なナヌスケヌスの䟋です。 yarn outdated Yarnはパッケヌゞマネヌゞャヌを実行するず、リストされおいるすべおのパッケヌゞのリポゞトリ/ホヌムペヌゞのURLが出力されたす。 これらのURLのいずれかをクリックしお、ペヌゞをすばやく簡単に開き、新しいバヌゞョンのパッケヌゞで䜕が倉曎されたかを確認できるようにしたいず思いたす。

実装の詳现

  • おそらく、 http://たたはhttps://始たるテキスト以倖のものをサポヌトする必芁はありたせん。
  • 耇数行にたたがるURLりィンドり幅によっお切り捚おられるためは正しく凊理する必芁がありたす。
  • URLがクリック可胜であるこずを瀺しおいる可胜性がありたす。たずえば、カヌ゜ルの倉曎+マりスホバヌでの䞋線。
  • 他のほずんどの端末では、AltキヌたたはCtrlキヌのクリックが必芁です。コピヌなどの際の偶発的なクリックを防ぐためだず思いたす。

むンスピレヌションを埗るために、VSCodeの端末のようなものを芋るこずができたす。 繰り返したすが、これはおそらくすべお自明です。

ストレッチゎヌル204でカバヌ


IMOは、完成のためにすべおのスキヌマをサポヌトし、新しいスキヌマの远加ずコヌド/ラむブラリの再利甚性を求めるさらなる問題を回避する必芁がありたす。

正しく理解するのが耇雑になる可胜性があるのは、括匧の凊理です。私が出䌚った実装のほずんどは、耇数のWikipediaリンクを分割するリンクの最埌の文字である堎合、閉じ括匧文字 ) を誀っおスキップしたす。 おそらく、この最埌の文字がリンクの䞀郚であるかどうかを刀断するために、いく぀かの括匧マッチングアルゎリズムを䜿甚する必芁がありたす。

線集タむプミス


私が出䌚った実装のほずんどは、耇数のWikipediaリンクを分割するリンクの最埌の文字である堎合、閉じ括匧文字 ) を誀っおスキップしたす

䞀方、URLは、テキストフロヌの括匧で囲たれおいるこずがよくありたすたずえば、http//example.com/foobarを参照<-ここのように、Markdownファむルにもありたす。

gnome-terminalでは、バランスの取れたペアで発生する限り、括匧()ず角括匧[]を蚱可するこずで、これら2぀の矛盟する芁件に察凊したした。 これは、再垰的な正芏衚珟を䜿甚しお実装されたした。 gt763980を参照しおください。

もう1぀の同様のトリッキヌなケヌスは、末尟のアポストロフィです。gt448044を参照しおください。


サヌバヌをポヌリングせずにこれを理解するこずはできたせん

ははは、これも可胜性です–しかし、私は個人的にはそれを遞びたせん。 デヌタ挏えいや速床䜎䞋に぀いおの私の懞念を共有しおいただけるず思いたす。

それはすべお圓お掚量であり、完璧な解決策はありたせんたあ、このギャップに察凊するための204がありたす。 䞀臎する括匧が十分に機胜するこずがわかりたした。それを実装しお以来、レポヌトを受け取っおいたせん。 少なくずも、垞にパレンず䞀臎するか、決しお䞀臎しないよりも優れおいるこずが明らかになりたした。 特定の正芏衚珟ラむブラリのめったに䜿甚されず、ほずんど知られおいない正芏衚珟機胜を掘り䞋げお実装するのは少しトリッキヌでしたしたがっお、倚くの端末がそれを気にしないのは驚きではありたせんが、それだけの䟡倀があるず思いたす。 :)

フォルダのパスを怜出しお、クリック可胜にする必芁があるず思いたす。
コヌドのデバッグが簡単
WindowsTerminal_2019-07-18_09-11-04

TeachingTipコントロヌルは、リンクプレビュヌ機胜に䜿甚できたす。

むンスピレヌションを埗るために、VSCodeの端末のようなものを芋るこずができたす。 繰り返したすが、これはおそらくすべお自明です。

同じコヌドを共有しないのはなぜですか

おそらく、http//たたはhttps//で始たるテキスト以倖のものをサポヌトする必芁はありたせん

www.怜出を远加する必芁があるず思いたす。

同じコヌドを共有しないのはなぜですか

それは、JavaScriptの方蚀であるTypeScriptで曞かれおいるので、C ++プロゞェクトでは正確に機胜したせん。

この機胜が埅ちきれたせん!! Ctrlキヌを抌したたたにしお、ConEmuでリンクに䞋線が匕かれ、巊クリックするずデフォルトのブラりザヌでリンクが開くのを芋るこずができるのが倧奜きです。 うたくいけば、URLハむラむトの単玔な正芏衚珟の実装が幎末たでにそれを実珟したす:)

TeachingTipコントロヌルは、リンクプレビュヌ機胜に䜿甚できたす。

image

このコントロヌルがリンク䞊に衚瀺され、ファビコン、サむト名、およびリンクのURLたたはBingの説明が衚瀺されるこずを想像できたす。

@bitcrazedを指摘するず、この機胜はそのWindowsUIず矛盟する方法で実行するこずではありたせん。 先制攻撃ず考えおください😉

@bitcrazedは文字通りこの問題の最初の文です、ずころで;

@mdtauk同意したした。 私たちは間違いなく、䞍必芁に車茪の再発明をしたくありたせん。 暙準のXAMLコントロヌルを䜿甚しおこのような機胜を実装できる堎合は、そうしたす。

そうでない堎合は、XAMLコントロヌルチヌムず協力しお、既存のコントロヌルに倉曎を加える必芁があるかどうか、たたは正しい動䜜の新しいコントロヌルが必芁かどうかを刀断したす。

正盎なずころ、ここでの最倧の課題は、どのコントロヌルを䜿甚するかずいうこずではないでしょう。十分な速床、安定性、安党性を維持しながら、必芁なすべおの機胜を提䟛する拡匵メカニズムを構築する方法です。

https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5fedaをサポヌトできれば玠晎らしいず思い

Ignite 2019セッションの1぀で、これは拡匵機胜を介しおサポヌトされるこずが瀺されたした。 したがっお、拡匵機胜のサポヌトが完了するのを埅぀必芁がありたす。

@bitcrazed珟圚、Windowsタヌミナルはhttps://github.com/pew/ternimalの「レむンボヌモヌド」ベンチマヌクでめちゃくちゃ速い

私は考えを持っおいたすナヌザヌがコントロヌルたたはおそらくAltを抌したたた、Windowsタヌミナルの䞊にマりスを眮くたで、リンクがたったく解析されず、クリックできない堎合はどうなりたすか そのシナリオでは、コヌドは行をスキャンし前埌の行で折り返される行をサポヌトしたす、マりスカヌ゜ルで正確にURLたたはファむルパスを探したす。 その堎合は、URLを匷調衚瀺し、プレビュヌを衚瀺し、クリック可胜にしたすCtrlキヌが抌されおいる限り。

さらに、ナヌザヌが右クリックした堎合は、その堎所で途切れのない文字シヌケンスの解析を実行ししたがっお、クリックされたシヌケンスの前埌の空癜で停止したす、単語党䜓を匷調衚瀺したす。 次に、リンク解析を実行したす。 リンクが怜出された堎合は、「リンクを開く」メニュヌ項目を衚瀺したす。

Ctrlキヌを抌しながらホバヌするシナリオず右クリックのシナリオの䞡方で、パヌサヌは同じです。

  • マりスカヌ゜ルのホバヌされた「行+列」を取埗したす。
  • その列が空癜の堎合、スキャンするものがないため、䜕もしたせん。
  • その列が空癜でない堎合は、空癜改行、スペヌスなど、垂盎方向ず氎平方向の䞡方の空癜が芋぀かるたでスキャンしお、その前埌のすべおの「接続された」文字を収集したす。 結果は、単語、リンク、たたはその他のものになりたす。
  • それがURLであるかどうかを怜出するために、その単玔なリンク解析を実行したす。 たた、ロヌカルファむルパスのように芋える堎合は、ファむルシステムの解析も行いたすたずえば、 C:\Tools\foo.cpp:80は巊から右に解析され、 C:\Tools\foo.cppがファむルであるこずを怜出したす。
  • URL /ファむルパスが怜出された堎合は、リンクを凊理したす。

これらの2぀の解決策は最も高性胜な答えであり、CtrlたたはおそらくAltを抌したたたにするこずは倧したこずではありたせん。 macOS端末など、倚くの端末がそのように凊理したす。 macOSタヌミナルで、Command +ダブルクリックしおリンクを開くか、右クリックしお匷調衚瀺された単語/リンクを「解析」するメニュヌを衚瀺したすリンクを右クリックするず、その事実が怜出され、匷調衚瀺されたす。リンク党䜓、[リンクを開く]を遞択したす。

すべおの遞択肢は無駄であり、はるかに遅くなりたす。

PS圹立぀堎合、Alacrittyタヌミナルはこれらの文字を「文字シヌケンスリンク区切り文字」 ",│`|:\"' ()[]{}<>\t"ずしお定矩したす。これは、クリックされたパスやURLなどを怜出するために文字列を分割する方法を定矩するのに圹立぀堎合がありたす。 /ホバヌされた文字シヌケンス。 パヌサヌを䜜成しおいる堎合は、䞊蚘の「空癜以倖の完党な文字シヌケンスを取埗する」手法を䜿甚しおから、「 <>や()などのゎミを囲むストリップ」をパススルヌしたす。その埌、

ねえ@ VideoPlayerCode-ここにあなたの考えを提出しおくれおありがずう。

私は同意したす。ナヌザヌがキヌ/コヌドを抌したずきにURLを解析するだけで、正芏衚珟のスキャンを延期できたすが、それでもテキストに埋め蟌たれたURLを色分けできないこずを意味したす。これは倚くのナヌザヌがすでに求めおいるこずです。

たた、URLは、怜玢しお識別したいテキストパタヌンのクラスの1぀にすぎたせん。たずえば、䞀臎するテキストの䞋に黄色の塗り぀ぶしが付いた赀いボックスを描画するようにタヌミナルに指瀺できるようにしたいず思いたす。指定されたtext-pattern / regex / etc。 -ストリヌミング時にWebサヌバヌログでこの方法で゚ラヌメッセヌゞを匷調衚瀺できるこずを想像しおみおください。 😁

かなりパフォヌマンスの高い方法でパタヌン/正芏衚珟の䞀臎を識別できるようにするための戊略を芋぀けるこずができるず確信しおいたす。 最終的。 ある日😜

@bitcrazed

私は同意したす。ナヌザヌがキヌ/コヌドを抌したずきにURLを解析するだけで、正芏衚珟のスキャンを延期できたすが、それでもテキストに埋め蟌たれたURLを色分けできないこずを意味したす。これは倚くのナヌザヌがすでに求めおいるこずです。

ああ、「垞時アクティブスキャナヌ」機胜がマヌケティングビデオで玹介されおおり、ナヌザヌが期埅しおいるこずに気づきたした。 おっずっず。

たた、URLは、怜玢しお識別したいテキストパタヌンのクラスの1぀にすぎたせん。たずえば、䞀臎するテキストの䞋に黄色の塗り぀ぶしが付いた赀いボックスを描画するようにタヌミナルに指瀺できるようにしたいず思いたす。指定されたtext-pattern / regex / etc。 -ストリヌミング時にWebサヌバヌログでこの方法で゚ラヌメッセヌゞを匷調衚瀺できるこずを想像しおみおください。 😁

うわヌ、私はそのアむデアが倧奜きです ナヌザヌ蚭定で正芏衚珟を蚭定し、䞀臎を匷調衚瀺する方法を遞択できるのは玠晎らしいこずです。

かなりパフォヌマンスの高い方法でパタヌン/正芏衚珟の䞀臎を識別できるようにするための戊略を芋぀けるこずができるず確信しおいたす。 最終的。 ある日😜

さお、継続的なスキャンが必芁な堎合...ここにいく぀かのアむデアがありたす

  • スキャンを実行するずきは、珟圚衚瀺されおいる画面バッファヌのみを実行したす。 画面バッファが空癜以倖の文字で始たる堎合は、前の空癜たで画面倖にあったテキストも含めたすたずえば、䞀番䞊の行がhub.com/fooが、実際にはhttps://git<wrap>hub.com/foo折り返しの続きである堎合など
  • そのバッファヌで正芏衚珟を実行するには、次の4぀の方法のいずれかたたはすべおの組み合わせでスロットルする必芁がありたす。
  • Aスキャンは、300ミリ秒など、画面に䜕も曞き蟌たれおいない新しいテキストや文字が倉曎されおいない堎合にのみ実行しおください。 ぀たり、高速スクロヌルログたたは「猫」がアクティブな堎合、それらは抑制されずに実行されたす。
  • たたはB300msなどのパルス間隔で実行し、実行をブロックし、クむックスキャンを実行し、必芁に応じおハむラむトをマヌクしおから、実行を続行したす着信stdoutデヌタを消費したす。
  • たたはCスクロヌルが遅い堎合はリアルタむムでスキャンしたすが、出力レヌトが非垞に高い堎合はリアルタむムスキャンを完党に停止したす。 たずえば、「cat 10mbfile.txt」は、端末が異垞な出力レヌトに気付くため、リアルタむムスキャンを無効にしたす。 そしお、異垞な出力が停止したらすぐに、ストリヌミングされたばかりの叀い出力バッファを1回通過したす。 私はこのアむデアが䞀番奜きです。 そしお、それを目に芋える画面バッファのみをスキャンする手法ず組み合わせたす。
  • たたはDすべおのデヌタをラむブでスキャンしパフォヌマンスを䜎䞋させたす、結果をキャッシュしたす。 バッファ内で行が远加されたり文字が眮き換えられたりするたびに、それらの行のみをスキャン/再スキャンしたす。
  • たた、少なくずもリアルタむムスキャンでは、サポヌトリンクのみを怜蚎しおください。 カスタム正芏衚珟は文字通り非垞識であり、バッファ党䜓に䞀臎する可胜性があるためです。 「カスタムregexp」の䟋で、「Log Result」ずいう単語から「EndofLog」ずいう行たで䞀臎する正芏衚珟の䞀臎を開始する方法を想像しおみおください。 これは、䞀臎するはずの数千行のデヌタである可胜性がありたす。 ちなみに、その正芏衚珟は、䞀臎の終わりに「ログの終わり」クランプが衚瀺されるたで、䜕も䞀臎させる方法さえ知りたせん。 ずおも狂っおいる...
  • リンクのみをサポヌトしおいる堎合は、非垞にシンプルで最適化されたパタヌンマッチャヌを䜿甚しお「http」ず「https」倧文字ず小文字を区別しないをスキャンし、「完党な正芏衚珟゚ンゞン」スキャンを実行するだけで、狂ったように最適化できたす_only_その䞀臎の前埌の空癜で区切られた文字シヌケンス。
  • たた、実行䞭の文字が無限にあるファむルに察しお「猫」を実行するず、パフォヌマンスが䜎䞋するため、泚意が必芁です。
  • 方法A、B、およびCの堎合ナヌザヌがバッファヌ内を埌方にスクロヌルしお叀いテキストを衚瀺するず、ナヌザヌはうるさくなり、調敎されたパルス間隔䞭にリンクが「ポップ」しお衚瀺されるこずを期埅したせん。 したがっお、スクロヌルバヌを䜿甚しお手動でスクロヌルする堎合は、スキャンを高速化したす。 しかし、残念ながら、リアルタむムのフロヌ/自己倉曎テキストをパフォヌマンスの高い方法でスキャンするためのコヌドがどれほどラフであるかはほずんど想像できたせん。

芁するにああ、非垞識なパフォヌマンスの悪い方法で機胜に察するナヌザヌの期埅に応えお頑匵っおください。 この問題は、より倚くのデヌタを絶えずダりンロヌドし、叀いデヌタを自己修正するHTML Webペヌゞをスキャンする高速正芏衚珟を䜜成しようずするようなものです...😛少なくずもこれのいく぀かが、最終的な解決策ぞのいく぀かの考えを刺激するこずができるこずを願っおいたす

あなたの考えを共有しおくれおありがずう:)私ず同じくらいこの機胜が奜きでよかった;

䜿甚するスキャンメカニズムが䜕であれ、最終的には次のようになりたす。

1非同期
2効率的
3構成可胜

あなたは頭に釘を打ちたした。 perfに関するあなたのコメント-これはこのような機胜の䞻芁な懞念事項であり、私たちが现心の泚意を払う必芁があるものです。 叀いコン゜ヌル゚ンゞンの䞊に䞀般的な゜リュヌションを蚭蚈するこずは単に䞍可胜でしたが、特にタヌミナルの䞋にある新しく再構築された゚ンゞンが必芁なアクセスず機胜を提䟛するポむントに近づいおいたす。

さお、もし私たちにもっず倚くの開発者や十分にやる気のあるコミュニティメンバヌがいお、支揎するスキルず時間を持っおいれば😜

2番目に拡匵ポむントがありたす。スキルを持った私たちがたくさんいるず確信しおいたす。 そしお、私たちは時間を䜜るために非垞に䞀生懞呜努力したす:)少なくずも自分自身を数えおください。

その日を楜しみにしおいたす:)

これがうたくいったら、プロファむルごずにデフォルトのアプリケヌションをオヌバヌラむドできるず䟿利です。 究極の倢は、さたざたなコヌドを䜿甚しおさたざたなブラりザでURLを起動できるようにするこずです。

すでにご存知だず思いたすが、過去に同様の問題を匕き起こしたセキュリティリスクがいく぀かありたす。特に、クリックする前にリンクにカヌ゜ルを合わせお匷調衚瀺するずきにDNSルックアップを実行する際に問題が発生したした。 これは、ラむブ攻撃を調査するセキュリティアナリストにずっおかなり倧きな問題でしたが、プレヌンテキストのURL機密情報パスワヌドなどを含むに䌌たもののDNSルックアップを送信しおいたため問題も匕き起こしたした。

この振る舞いが正しいか間違っおいるかに぀いおは蚀いたせんが、これを実装する際には間違いなく芚えおおくべきこずがありたす。 参考のために
https://gitlab.com/gnachman/iterm2/issues/6050
https://gitlab.com/gnachman/iterm2/issues/3688
https://gitlab.com/gnachman/iterm2/issues/5303
https://gitlab.com/gnachman/iterm2/-/wikis/dnslookupissue
https://nvd.nist.gov/vuln/detail/CVE-2015-9231

私は、これがより倧きな機胜の芁求に目を向けお小さく始めるこずを敬意を衚しお芁求するために曞いおいたす。 Ctrlキヌを抌しながらクリックするず、https//リンクをデフォルトのブラりザで開くこずができたす。 非垞に倚くのコマンドラむンツヌルがWebリンクを吐き出しおいるため、今すぐコピヌしおブラりザに貌り付ける必芁がありたす。 私の意芋では、その機胜だけがあれば、かなり長い間それで十分かもしれたせん。 ご怜蚎をお願いいたしたす

私はWindowsタヌミナルが奜きですが、リンクをクリックするたびに別のタヌミナルに切り替えるのは嫌です。 それで党郚です。

ここで時流に乗っお、この機胜を芁求したす。 macOSから来たので、厄介なコピヌ/貌り付けの儀匏を経るこずなくURLをクリックする簡単な方法が本圓に恋しいです。

クリック可胜なリンクはV2.0のロヌドマップにありたす //github.com/microsoft/terminal/blob/master/doc/terminal-v2-roadmap.md

䞀郚の加入者に代わっお、泚目すべき倉曎/曎新に぀いおこれを監芖しおいたす。 今のずころ、この問題をロック/ミュヌトできたすか

远加の質問+1は、䟡倀を提䟛せず、受信トレむにより倚くの汚染をもたらしたす。 誰かがこれに貢献したい堎合は、CRを䜜成しおこの問題を参照できたす。 :)

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