Emmet、またはオープンソースへの私の最初のステップで作業をスピードアップする

革新的であると主張することもなく、特に推論に深く関わらず、この記事を2つの目標で書くことにしました。



  1. ITコミュニティに役立つもの(具体的には、Sublime Textエディターのプラグイン)を書いた最初の経験について教えてください。 おそらくこれは、これまでにこれをやったことがない人、恥ずかしい人、十分な資格がないことやグローバルな何かを書く必要があることを恐れている人のためのオープンソースプロジェクトの作成につながるでしょう
  2. その結果作成されたプラグインを共同開発者に見せることで、貴重な時間を節約できます。


自分自身を横断し始めましょう。



1.パート1、推論



みんな、今月恥ずかしかった。 何かがあまりにもぼんやりしたときほど恥ずかしいことではありません。 そしてグローバルに。 私は突然、私がIT業界で役に立たない要素であることに気付きました。 私は自分の人生のすべてでオープンソースの贈り物を使い、自分自身でコミュニティに何も提供しないことに気付きました。 形をした寄生虫。



そして、これの主な理由は、私の知識は他の人に役立つ何かを書くのに十分ではないという私の奇妙な信念です。



あなたに理解してもらうために、私はタイプセッター、または今では庭で流行している「フロントエンド」です。 しかし、いや、まだレイアウトデザイナーです。 私は自己欺ceptionに全く関与しません。 数年間、私はこの専門分野にとどまり、他のすべて(プログラミング言語とメソッド、さまざまなフレームワーク、データベースなど)を適用されたタスクのレベルで非常に体系的にではなく知っていました。 しかし、それにもかかわらず、私は簡単なプログラムを書くことができ、とにかく、いつでもそれをします。



まあ、私の問題に戻って-私は恥ずかしかった。 精神疾患に苦しんでいないすべての人のこの感情は、最初に悲しみ、次に変化する欲求を引き起こすことが知られています。 第二段階に到達したとき、私は世界の狭い視野のために信じられないほどの発見を発見しました。



すでに私はあなたの声を聞いています:「キャプテン、私たちと共有してください!」



しかし、キャプテンは申し訳ありません。



OPENING ONE:作業を簡素化するために、同僚は常に革新的なグローバルなものを必要としません。何らかの理由で、小さなツールで狭い範囲で十分に助けられ、かなり「育てられた」場合があります。 そして、そのようなツールで解決できる問題はいっぱいです。



OPENING TWO:人々に役立つ何かをすること、それを公開すること-これは、専門能力開発のための非現実的なクールなキックです。



はい、はい、私はこのテキストを読んでいる人々のほとんどが彼らのキャリアの初めにこれらの考えに来たことを明確に理解します、そして、ここに新しいものは何もありません。 しかし、あなたの少なくとも一人が私のように見え、これまでのところそのような結論に傾いている場合、言葉は無駄にされておらず、私は物語を続ける道徳的権利を持っています。



そして今、実際に、専門的な利他主義の世界での私の最初の一歩であったことについて。



2.パート2、アイデア



そして、私は最初のオープンソースに座った。 最初に書くのに役立つものは何ですか? 別のjqueryスライダー? または、ブートストラップのようなフレームワークのようなもの(正直なところ、なぜ今ではそのような数で生産されているのか想像できません)。 私は指からアイデアを吸い出したくありませんでした。



そして、私は今、個人的に不足しているものについて考えました。 ご存知のように、私は組版をしています。そして、何人のレイアウトデザイナーが(すべてではないにしても) Sublime TextエディターとすばらしいEmmetプラグインを使用しています。 時には、htmlマークアップとcssスタイルを簡単に書くことができます。 しかし、私たちのニーズのために、彼のスタイルの仕事について詳しく見ていきましょう。



通常、プラグインでの私の仕事は大部分のように見えます:css-propertyを書きたいとき、Emmet-abbreviationを書き、Tabを押すと、略語は通常のプロパティに展開され、最後にEnterで新しい行に切り替えます。 彼らが言うように、このプロセスはすでに指に入っており、誰もがその中のすべてに満足しているようです。



しかし、 Tab-> Enterを押すたびに突然冗長になりました。 略語を一列に、スペースを入れて書き留めて、はるかに高速に書き留めてから、それらをすべて公開してみませんか? これは「マッチを節約する」ように思えるかもしれませんが、私の経験では、通常、一度に1つではなく、それぞれを考慮してプロパティを記述します。たとえば、通常、位置の後には左と上が続きます。一時停止することなく連続して書き込むか、幅を書き込むときに-次の高さはすでにわかっています。 そして、そのような例はたくさんあります。 そのため、不必要なジェスチャーの量を減らすための十分な余裕があります。



Emmet自体には、この動作の独自の実装があります。「+」記号を使用して値を書き込み、最後にTabをクリックすると、それらはすべて一度に開きます。 しかし、絶えずプラスに到達し、シフトがあっても、それを押すことは私には不快に思えたので、別のプラグインとして必要な動作を整理することにしました。 これは私の本来の能力を超えたもので、SublimeのプラグインはPythonで書かれており、表面的にはなじみがありました。 しかし、古代人が言っていたように、戦争はゴミであり、主なものは機動です。



3.パート3、結果



これは、私が書いたEmmetOneLineプラグインを使用した私の仕事の様子です。
画像



ご覧のとおり、Emmetロジックが保存され、すべてが必要に応じて表示され、タブや改行がなくなりました。 レポタ。



デフォルトでは、すべてのブロックの開示をCtrl + Tabで切断しました。将来、いくつかのプロパティの文字列チェックを固定し、可能な場合はタブを展開する予定です。 これは、 Ctrl + Tabを使用してタブをナビゲートするユーザーにも必要です。 (これには通常、あいまいな文書検索を使用します)。



プラグインは、数時間、夜、インスピレーションのバーストで私によって書かれました。 Sublime APIは非常に友好的であることが判明しました。Habréに関する記事がいくつかあり、このトピックに関するいくつかの外国の資料がありました。 驚いたことに、Pythonの一般的な考え方、他の言語でのプログラミングの経験、他のプラグインからの実践が十分にあり、最初の作業バージョンを使用に適したものにしました。 出版の目的で、私はGitHubのアカウントを取得しましたが、作業プロジェクトではBitBucketのみを使用して、以前は実行しませんでした。 Package Controlでプラグインを公開するプロセスは一般的に基本的なものであることが判明したため、プロジェクトpackage_control_channelをフォークし、プラグインに関する情報を1つのjsonファイルに追加し、メンテナーに送信して検討します。



これで私の小さなプラグインがオンラインになり、時間を節約できます。 そして、興味深い経験、プラグインを完成させるエネルギー、そしてプロジェクトだけでなく将来のオープンなプロジェクトの複雑さを増す計画を立てました。



4.最後にいくつかの言葉



要約すると、コミュニティのために何も書いたことのない初心者の開発者たちに、私がそれを始めたばかりの時点でやりたいと本当に願っています。 オープンソースは常に複雑なものではなく、小さくシンプルなソリューションが必要です。 あなたの謙虚な僕のように、長年にわたって質問、英語のレベル、実践的なスキルの無知を恥ずかしがらず、この興味深い世界を自分で閉じないでください。 興味のある問題を見つけて、できるレベルで解決します。 人々はあなたを理解し、プロジェクトが有用であれば、彼らはコードを修正し、アドバイスを助けます。



ところで、尊敬されている経験豊富な同僚に感謝します! プラグインの作業または説明に関するヘルプまたは批判を歓迎します(プラグインの作業の英語の説明の誤りを含む)。



このために、私の休暇を取って、みんながプロとして成長することを願っています!



プラグインへのリンク



All Articles