سؤال

أود حقا أن نرى خط متناسب IDE, حتى لو اضطررت إلى بناء نفسي (ربما امتدادا Visual Studio).ما يعني أساسا هو MS Word نمط تحرير الرمز الذي يبدو المطبعية أسلوب في C++ لغة البرمجة الكتاب.

أريد أن مجموعة علامات تبويب لبلدي تزكي و يصطفون وظيفة التوقيعات صفوف من البيانات المهمة التي يمكن أن تكون محددة في نقاط بدلا من الثابتة حرف المواقف.كما أود جريئة مائل.مختلف أحجام الخطوط و حتى أوراق الأنماط سيكون رائعا.

وقد أي شخص ينظر إلى أي شيء من هذا القبيل هناك أو معرفة أفضل طريقة للبدء في بناء واحد ؟

هل كانت مفيدة؟

المحلول

أنا لا تزال ترغب في رؤية شعبية محرر أو IDE تنفيذ مرونة tabstops.

نصائح أخرى

التفكير مع نمط تشير إلى أن استخدام النصوص المفضل لديك-التلاعب في البرامج مثل Word أو الكاتب.إنشاء مدونة البرامج في الغنية XML و استخراج مترجم-الفروع ذات الصلة مع XSLT."مكتب" البرنامج سوف توفر جميع النصوص المتقدمة-التلاعب ميزات التنسيق.

كنت أتوقع أنك سوف تحصل على أسفل كتكوت و اختار على هذا الاقتراح ولكن هناك بعض المعنى الحقيقي لهذه الفكرة.

والميزة الرئيسية التقليدية غير متناسب' الخط شرط في مدونة المحررين هو تخفيف عبء أداء رمز التنسيق.

ولكن مع كل التفاعلية التنسيق التلقائي الذي يحدث في الحديث IDE, انها حقا من الممكن أن proportional يمكن أن تحسن قراءة رمز (بدلا من إعاقة ، كما أنا متأكد من أن العديد الأصوليون تتوقع).

شخصية تدعى رودي الأخضر (تشتهر له 'كيفية كتابة رمز unmaintainable'مقالات) كتب عن النظرية محرر/اللغة على أساس جافا و يسمى بالي.لم تشمل غير متناسبة مع الخطوط بالضبط ، ولكنها تتضمن فكرة وجود غير موحدة في حجم الخط.

أيضا ، جويل سبولسكي بعد وظائف حل مرونة علامات تبويب (كما ذكر آخر commentor) التي من شأنها أن تساعد بدعم من غير متناسبة (متغير الحجم) الخطوط.

@توماس أوينز

لا تجد رمز تنسيق مثل هذا أسهل في القراءة.

لا بأس, هو مجرد تفضيل شخصي و يمكننا أن نختلف.شكل هذا الطريق هو في رأيك أفضل و أنا أحترم ذلك.أنا كثيرا ما أسأل نفسي كيف ينبغي أن شكل هذا أو ذلك الشيء؟' جوابي هو دائما على تنسيق لتحسين إمكانية القراءة ، والتي أعترف أن تكون ذاتية.

بخصوص العينة ، أنا مجرد وجود مثل هذا لطيف محاذاة العمود على الجانب الأيمن ، نوع من السريع "فهرس" في رمز على اليسار.وقد قلت ذلك, أنا على الأرجح تجنب التعليق كل سطر مثل هذا على أي حال لأن القانون نفسه يجب أن لا تحتاج إلى أن الكثير من التفسير.و إذا كان لا أميل إلى كتابة فقرة فوق رمز.

ولكن النظر في هذا المثال من الملصق الأصلي.من الأسهل على الفور تعليقات في الثانية واحد في رأيي.

for (size-type i = 0; i<v.size(); i++) { // rehash:
    size-type ii = has(v[i].key)%b.size9); // hash
    v[i].next = b[ii]; // link
    b[ii] = &v[i];
}

for (size-type i = 0; i<v.size(); i++) {     // rehash:
    size-type ii = has(v[i].key)%b.size9);   // hash
    v[i].next = b[ii];                       // link
    b[ii] = &v[i];
}

@توماس أوينز

ولكن هل حقا الناس خط التعليقات مثل هذا ؟ ...أنا لا أحاول أبدا خط الإعلانات أو تعليقات أو أي شيء و المكان الوحيد الذي كنت من أي وقت مضى رأيت في الكتب المدرسية.

نعم الناس حتى خط التعليقات والإعلانات وجميع أنواع الأشياء.دائما مهيأ بشكل جيد رمز أسهل قراءة التعليمات البرمجية التي هي أسهل في القراءة أسهل للمحافظة عليه.

أتساءل لماذا لا أحد يجيب عن سؤالك ، لماذا قبلت الجواب لا يكون أي شيء للقيام مع سؤالك.ولكن على أي حال...

خط متناسب IDE

في الكسوف يمكنك cchoose أي خط على النظام الخاص بك.

تعيين علامة التبويب توقف بلدي تزكي

في الكسوف يمكنك تكوين أوتوماتيك المسافة البادئة ، بما في ذلك تعيين إلى "علامات التبويب فقط".

يصطفون وظيفة التوقيعات صفوف من البيانات المهمة

في الكسوف أوتوماتيك المسافة البادئة يفعل ذلك.

والتي يمكن تحديدها في النقاط بدلا من الثابتة حرف المواقف.

آسف, أنا لا أعتقد أن الكسوف يمكن أن تساعدك هناك.وإنما هو مفتوح المصدر.;-)

جريئة مائل

الكسوف له ذلك.

مختلف أحجام الخطوط و حتى أوراق الأنماط سيكون بارد

أعتقد الكسوف فقط يستخدم الخط حجم الخط لكل نوع الملف (على سبيل المثال جافا الملف المصدر) ، ولكن هل يمكن أن يكون مختلفا "أوراق الأنماط" لمختلف أنواع الملفات.

متى آخر مرة نظرت في الكسوف (منذ بعض الوقت الآن!) فإنه يسمح لك لاختيار أي تثبيت الخط إلى العمل.لست متأكدا ما إذا كان يؤيد فكرة الطعج باستخدام علامات تبويب.

بدا بارد, لكن رمز بالتأكيد كان من الصعب قراءة...

سورين:هذا نوع من أنيق ، المنظمة البحرية الدولية.ولكن هل حقا الناس خط التعليقات مثل هذا ؟ بالنسبة لي نهاية خط التعليقات, أنا دائما استخدام مسافة واحدة ثم // أو /* أو ما يعادلها ، اعتمادا على اللغة أنا باستخدام.أنا لا أحاول أن يصطف تصريحات أو تعليقات أو أي شيء ، المكان الوحيد الذي رأيته في الكتب المدرسية.

@براين Ensink:لا تجد رمز تنسيق مثل هذا أسهل في القراءة.

int var1 = 1 //Comment
int longerVar = 2 //Comment
int anotherVar = 4 //Command

مقابل

int var2       = 1 //Comment
int longerVar  = 2 //Comment
int anotherVar = 4 //Comment

أجد الأسطر الأولى أسهل في القراءة من الثانية خطوط شخصيا.

المسافة البادئة جزء من سؤالك يجري اليوم في منتج حقيقي ، على الرغم ربما حتى على مستوى أكبر من الأتمتة مما كنت أتصور ، المنتج أذكر هو XSLT IDE, لكن نفس التنسيق المبادئ أن تعمل مع معظم (ولكن ليس كل) التقليدية رمز جمل.

هذا حقا يجب أن ينظر إليه في فيديو للحصول على شعور من كل شيء (أعتذر عن الموسيقى مرة أخرى-المسار).هناك أيضا الضوء محرر XML العرضية المنتج ، XMLQuire, هذا بمثابة المتظاهرين التكنولوجيا.

الصورة أدناه يبين XML تنسيق مع معقدة جدا قواعد التنسيق في هذا XSLT IDE ، حيث كل المسافة البادئة هو إجراء كلمة المعالج نمط باستخدام الهامش الأيسر - عدم الفضاء أو علامة التبويب أحرف.

enter image description here

للتأكيد على هذا التنسيق مفهوم كل الشخصيات وقد تم تسليط الضوء على المعرض حيث ترك هامش يمتد إلى الحفاظ على المسافة البادئة.أنا استخدم مصطلح الظاهري التنسيق لوصف هذا - انها ليست مثل مطاطا التبويب يتوقف, لأنه ببساطة لا توجد علامات التبويب فقط هامش المعلومات التي هي جزء من الفقرة' تنسيق (RTF رموز تستخدم هنا).محلل تنسيقه بشكل مستمر ، في نفس تمرير مثل التلوين اللغوي.

خط متناسب لم تستعمل هنا ، ولكن كان يمكن أن يكون بسهولة جدا - لأن المسافة البادئة في تويب.تحرير تجربة غير مقنعة تماما كما ريفاكتور رمز (XML في هذه الحالة) ، ربما عن طريق السحب والإفلات أو عن طريق إطالة مدة من قيمة سمة المسافة البادئة فقط إعادة التدفقات نفسها لتناسب لا يوجد علامة التبويب مفتاح أو 'إعادة' زر الضغط.

لذا, المسافة البادئة هناك ، ولكن الخط العمل هو مشكلة أكثر تعقيدا.لقد جربت هذا لكن وجدت أنه إذا الخطوط إعادة اختيار الكتابة ، الأفقي تحول من رمز هو تشتيت للغاية - هناك حاجة إلى أن يكون المستخدم بدأت 'تنسيق الخطوط' الأمر الأرجح.المنتج أيضا لديه الحبر/الكتابة اليدوية التكنولوجيا المدمج في التأشير على رمز ، ولكن لم تستغل هذا في الإصدار.

الناس كلها تشتكي من تعليقات لا يصطفون.

يبدو لي أن هناك حل بسيط جدا:تحديد وحدة مساحة أوسع الحرف في الخط.الآن نسبيا مساحة كل الشخصيات ما عدا الفضاء.الفضاء يستغرق الكثير من الغرفة بحيث يصطف الحرف التالي حيث سيكون إذا كل الشخصيات السابقة على الخط كانت أوسع في الخط.

أي:

iiii_space_Foo

xxxx_space_Foo

سوف يصطف "فو" ، مع الفضاء بعد "أنا" أن تكون أوسع بكثير من بعد "x".

لذلك يطلق عليه مرونة المساحات.بدلا من tab-stops.

إذا كنت الذكية محرر علاج التعليقات خصيصا ، ولكن هذا مجرد المرق

واسمحوا لي أن أذكر الحجج حول استخدام فار الكلمات الرئيسية في C#.الناس كرهت ذلك, و أنه رمز أقل وضوحا.على سبيل المثال, لا يمكنك معرفة نوع في شيء ما مثل:

var x = GetResults("Main");
foreach(var y in x)
{
   WriteResult(x);
}

وكان حجتهم أنك أستطع رؤية إذا كان × صفيف ، قائمة أو أي IEnumerable.أو ما نوع y كان.في رأيي unclearity لم تنشأ من استخدام فار ، ولكن من قطف الواضح أسماء المتغيرات.لماذا لا مجرد نوع:

var electionResults = GetRegionalElactionResults("Main");
foreach(var result in electionResults)
{
   Write(result); // you can see what you're writing!!
}

"ولكن لا يزال يمكن أن نرى نوع من electionResults!" - هل يهم هذا ؟ إذا كنت ترغب في تغيير نوع الإرجاع من GetRegionalElectionResults ، يمكنك القيام بذلك.أي IEnumerable سوف تفعل.

سريع إلى الأمام إلى الآن.الناس ترغب في محاذاة التعليقات ar رمز مماثل:

int var2       =  1; //The number of days since startup, including the first
int longerVar  =  2; //The number of free days per week
int anotherVar = 38; //The number of working hours per week

حتى بدون تعليق كل شيء غير واضح.و إذا كنت لا محاذاة القيم لا يمكنك منفصلة لهم من variales.ولكن هل أنت ؟ ماذا عن هذا (تجاهل الرصاص من فضلك)

  • الباحث daysSinceStartup = 1;// بما في ذلك أول
  • الباحث freeDaysPerWeek = 2;
  • الباحث workingHoursPerWeek = 38;

إذا كنت بحاجة إلى التعليق على كل خط, كنت تفعل شيئا خاطئا."ولكن كنت لا تزال بحاجة إلى محاذاة القيم" - أليس كذلك ؟ ماذا 38 فعله مع 2?

في C# معظم كتل التعليمات البرمجية يمكن بسهولة أن تتماشى فقط باستخدام علامات التبويب (أو, في الحقيقة مضاعفات الأربعة المسافات):

  • فار regionsWithIncrease =
    • من نتيجة في GetRegionalElectionResults()
    • حيث النتيجة.TotalCount > النتيجة > PreviousTotalCount &&
      • النتيجة.PreviousTotalCount > 0 // فقط مناطق جديدة
    • حدد النتيجة.المنطقة ؛
  • foreach (var المنطقة في regionsWithIncrease)
  • {
    • كتابة(المنطقة) ؛
  • }

يجب عدم استخدام خط إلى خط التعليقات يجب أن نادرا ما تحتاج إلى محاذاة عموديا الأشياء.نادرا, لا أبدا.لذلك أنا أفهم إذا كان بعض من رفاق تفضل خط أحادي المسافة.أنا أفضل readibility من الخط نوتو Sans أو المصدر بلا برو.هذه الخطوط هي متاحة بحرية من جوجل, تشبه Calibri, ولكن تم تصميم البرمجة وبالتالي يكون كل من البديهي الخصائص:

  • الكبير :;. لذا يمكنك أن ترى بوضوح الفرق
  • متميزة بوضوح 0Oo ومتميزة Il|

المشكلة الكبرى مع النسبية الخطوط أنهم تدمير المحاذاة العمودية من قانون وهذا هو إلى حد ما خسارة كبيرة عندما يتعلق الأمر إلى كتابة التعليمات البرمجية.

المحاذاة العمودية يجعل من الممكن التعامل مع كتل مستطيلة من التعليمات البرمجية التي تمتد خطوط متعددة من خلال السماح كتلة العمليات مثل قص, نسخ, لصق, حذف, المسافة البادئة, إزاحة الخ أن يؤديها بسهولة.

وكمثال على النظر في هذا مقتطف من التعليمات البرمجية:

a1 = a111;
B2 = aaaa;
c3 = AAAA;
w4 = wwWW;
W4 = WWWW;

في أحادية متباعدة الخط = و ; كل خط.

الآن إذا كان هذا النص هو loded في كلمة وعرض باستخدام proportional النص يتحول على نحو فعال في هذا:

ملاحظة: مساحة بيضاء إضافية تضاف إلى إظهار كيف = و ; لم يعد خط:

a1 = a1 1 1;
B2  = aaaa;
c3 = A A A A;
w4 = w w W  W;
W4  = W W W  W;

مع المحاذاة الرأسية ذهبت تلك جميل كتل من التعليمات البرمجية بشكل فعال تختفي.

أيضا لأن المؤشر لم تعد مضمونة إلى التحرك رأسيا (أيرقم العمود ليست دائما ثابتة من سطر واحد إلى التالي) يجعل الأمر أكثر صعوبة في كتابة رمي بعيدا الكلي البرامج النصية تهدف إلى التلاعب مشابهة تبحث خطوط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top