ソースエディタに関する注意(開発環境)



この記事では、すでにかなり高度な開発環境を補完する改善と装飾に焦点を当てます。



KDPV





単一ウィンドウルール1ボタン



私の意見では、これは既存の開発環境と、まだ設計段階にある新しい開発環境の両方で採用されるべきであるという主な考えです。 既存のIDEの設定数が非常に多くなったため、操作が非常に困難になりました。 この状況での救い[ 表示設定に関連して ]私は視覚的に状況依存の設定のシステムで見ます。 簡単に言うと、2つのボタンを予約する必要があります。1つはF1などの編集カーソル(キャレット\キャレット)用で、もう1つはF4などのカーソル/マウスポインター(マウスポインター)用です F1 ] 、ユーザーの意図を100%推測した場合、つまり、最後の動きを追跡し、最後のアクションが編集カーソルの移動、またはマウスカーソルの移動に関連付けられているのを見る場合。



F1を押すと、簡単なヘルプと、編集カーソルが指す現在のシンボルの境界線で囲まれた領域にのみ関連する設定ボタンを含むウィンドウが開きます。 したがって、表示をカスタマイズすることは非常に便利です。たとえば、ブレークポイント(ブレークポイント)を持つ行の背景色、および一般的にカーソルの下の文字の大きさで囲まれたボックスに収まるプログラムテキストの要素、つまり一種の「虫眼鏡」が取得されます。

F1を使用したチューニングの実際的な利点の例
PHPでは、変数名の前のドル記号が好きではありません。 それほど刺激しないように、半透明にすることができます。

例:

このコード行の3つの$文字はすべて異なる色で表示され、ワンボタンルールを使用すると、表示の構成が非常に簡単になります。



F4を押すと、マウスカーソルの周囲の円形領域 直径約10ピクセル )のみに関連する同様のウィンドウが開きます。 このように、たとえば、追加/変更された行を表示するなど、不要なインターフェイス要素をすべてオフにすることも簡単になります(また、PyCharmとPhpStormで無効にすることはできません)



美しいコード表示



まず、記事の冒頭の図に見られるように、多くのIDEに表示される垂直の「ルーラー」に加えて、より水平なものを追加することを提案します。

第二に、多くの二重演算子は単一文字として表示できます:==の代わりに、!=の代わりに、等。 (Habréのどこかで、 このような装飾に関する記事がありました(残念ながら、これは似ていませんが、残念ながら、今は見つかりません。)1つのF1ボタンの下にそのような設定を非表示にすると便利です。これにより、特定のキャラクターの置換を簡単に無効にできます(たとえば、 、Cをεで置き換えるか、すべての置換を一度に無効にします。



デバッグ HTMLウォッチ、仮想プロパティ\プロパティおよびフリーズ\フリーズ



開発環境の既存の要素に移動またはアタッチできる別のウィンドウに表示されるHTML生成コードの入力フィールド。

(レキシカルアナライザーをデバッグしているときにニーズが生じました。現在の位置を示す整数変数だけでなく、現在の位置を視覚的に追跡するのが便利だと思いました。)

[ もちろん、 [ PyCharmにはない ] MS Visual Studioと同様に複数行の文字列を表示する機能があるはずです。 ]

一般に、Pythonでこのために特別に追加された関数の名前を指定することにより、回避策としてMS Visual StudioでHTML Visualizerを使用できます。 [ 実際、Watchに複数行のコードを埋め込む機会を与えることをお勧めします。 ]



オブジェクトのプロパティ(データメンバー)を見るとき、最後に[ すべての実際のプロパティ ]に node_expression



記号を追加して式[ 仮想プロパティ ]を追加することをおself.token.value(source)



たとえば、 node_expression



型のnode_expression変数を表示する場合、 node_expression



として計算される仮想プロパティ値を追加すると便利self.token.value(source)



オブジェクトのプロパティのほとんどを頻繁に見る必要はなく、グループの下に隠すことができるため、グループ化メカニズムも必要です。



既存のデバッガに欠けているもう1つの機能は、式の値の「フリーズ」です。 たとえば、Pythonにはそのような関数があります。

 def set_scope_recursive(sn, scope): sn.scope = scope for child in sn.children: set_scope_recursive(child, scope)
      
      



for child in sn.children:



の行からfor child in sn.children:



sn.children



ウォッチウィンドウに追加します。 次に、 set_scope_recursive(child, scope)



F11(Step Into)を押します。 これで、ウォッチウィンドウのsn.children



が更新されます。 この場合、更新されていないが「凍結」されたままの方が便利なため、現在の元のsn.children



配列のどのノードであるかを確認できます。 インターフェイスの観点から、式を右クリックし、コンテキストメニュー項目のFreeze \ Freezeを右クリックします。

[ おそらく、与えられた式をフリーズ/修正せずに、コールスタックレベルにアタッチする方が正しいでしょう。なぜなら、関数がローカル変数に基づいてウォッチウィンドウ内の式の内部に入ると、ブレーク[ {そして、それらが壊れないように、それらは、追加されたコールスタックレベルに関連付けることができます} ] ]



コンパイルエラーメッセージ



リストで多くのエラーを表示しても意味がないと思いますが、最も正確なエラーを1つ表示し、F5(実行/デバッグ)を押した後、すぐにカーソルを[ このファイルの場所を表示 ]このエラーに設定します。 結局のところ、Ctrl +-または別のカスタマイズされたキーボードショートカットを押すことで、いつでも前のビューに戻ることができます。



カスタムタブサイズ



インデント用のスペースの代わりにタブを愛する人、特にインデントと整列区別する人への贈り物。 アイデアは、タブサイズ\タブサイズに小数の文字を入力できるということです。 たとえば、3.5文字でどのようにタブ付けしますか? またはπ(パイ)文字?



元に戻す/やり直しツリー



やり直しの代わりに元に戻す操作で多数のステップをロールバックした後、誤ってキーボードのキーを押してしまい、すぐにやり直しが不可能になったという状況に遭遇しましたか?

個人的に、Undo操作を頻繁に使用して、現在のファイルで行われた最新の変更を確認し、表示します。2つのUndoおよびRedoスタックを変更ツリーに完全に置き換えなかった場合、少なくとも偶発的なクリックによる変更の損失に対する保護メカニズムがあればうれしいですキー。 そのようなメカニズムとして、およびほとんどのテキストエディターの既存の動作との互換性のために、新しいキーボードショートカットCtrl + Shift + Yを使用することを提案します。最初にランダムなキーストロークをキャンセルし(Redoスタックに配置せずに)、Redo操作を続行します。



All Articles