কীভাবে Eclipse ফর্ম্যাটরটি সমস্ত এনামগুলিকে এক লাইনে স্থাপন করা থেকে থামানো যায়


106

আমার মতো এনাম রয়েছে:

public static enum Command
{
login,
register,
logout,
newMessage
}

ফাইল ফর্ম্যাট করার সময় আউটপুটটি হয়ে যায়:

public static enum Command 
{
login, register, logout, newMessage
}

1
প্রতিটি এনাম ভেরিয়েবলকে পৃথক লাইনে প্রয়োগ করার জন্য কি বাহ্যিক বিন্যাসে (org.eclipse.jdt.core.formatter ......) কোনও পরিবর্তনশীল আছে?
পরমেশ কোরাকাকুতি

উত্তর:


198

@ ওয়াজানসের উত্তরটি সাধারণ এনামগুলিতে ভাল কাজ করেছে, তবে যুক্তিযুক্ত এনামদের পক্ষে নয়। তার উত্তরে কিছুটা প্রসারিত করার জন্য, এখানে সেটিংস এখানে দেওয়া হয়েছে যা আমার জন্য এক্লিপস জুনোতে সবচেয়ে বুদ্ধিমান বিন্যাস সরবরাহ করেছিল:

  1. Window> Preferences> Java> Code Style>Formatter
  2. ক্লিক Edit
  3. Line Wrappingট্যাবটি নির্বাচন করুন
  4. enumডিক্লেয়ারেশন ট্রেইনোড নির্বাচন করুন
  5. সেট Line wrapping policyকরুন Wrap all elements, every element on a new line (...)এখন এটি বন্ধনীতে 3 এর 3 বলে।
  6. আনচেক করুন Force split, even if line shorter than maximum line width (...)সুতরাং এটি বন্ধনীতে এখন 3 টির মধ্যে 3 বলে।
  7. Constantsট্রেইনোড নির্বাচন করুন
  8. চেক Force split, even if line shorter than maximum line width

এটি এনাম ট্রেইনোডের জন্য একই মোড়ানোর নীতিতে 3 টি সাব্নোড সেট করে এবং Constantsট্রাইনোড ব্যতীত একই বল বিভক্ত নীতি সেট করে, সুতরাং আপনার যুক্তিযুক্ত এনামগুলি তাদের নিজস্ব লাইনে প্রতিটি ফর্ম্যাট করবে। আর্গুমেন্টগুলি কেবলমাত্র সর্বাধিক লাইনের প্রস্থের চেয়ে বেশি হলে মোড়ানো হবে।

উদাহরণ:

@wjans

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(
        0,
        255,
        0),
    RED(
        255,
        0,
        0)
}

সমাধান উপরে বর্ণিত:

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(0, 255, 0),
    RED(255, 0, 0)
}

1
এখনও আমার জন্য গ্রহগ্রহের পূর্বরূপদর্শনটিতে ভুল দেখায় তবে আমি যখন এটি আসল উত্সে চেষ্টা করেছিলাম তখন এটি একটি কবজির মতো কাজ করেছিল। ধন্যবাদ।
বেন থারলি

50

আপনি আপনার ফর্ম্যাটর পছন্দগুলিতে এটি নির্দিষ্ট করতে পারেন:

  • পছন্দসমূহ: জাভা - কোড স্টাইল - ফর্ম্যাটর
  • সম্পাদনা ক্লিক করুন
  • 'লাইন মোড়ানো' ট্যাবটি নির্বাচন করুন
  • 'এনাম' ঘোষণা -> বাম দিকে বাক্সে ধ্রুবক নির্বাচন করুন
  • 'সমস্ত উপাদান, একটি নতুন লাইনে প্রতিটি উপাদান মোড়ানো' তে লাইন মোড়ানোর নীতি সেট করুন
  • 'বল বিভক্ত ...' পরীক্ষা করুন

কয়েক মাস ধরে আমার এই সমস্যা ছিল। আমি যে জিনিসটি চেষ্টা করিনি তা হ'ল "ফোর্স স্প্লিট"। "সমস্ত উপাদান মোড়ানো" আসলে সমস্ত উপাদান মোড়ানো হবে বলে আপনি কেন এটির প্রয়োজন হবে তা নিশ্চিত নন! সমাধানের জন্য ধন্যবাদ।
কিংবদন্তি লেন্থথ

11

এটি কিছুটা কুরুচিপূর্ণও, তবে যদি আপনার সংস্থার নীতি আপনাকে ফর্ম্যাটার পরিবর্তন করতে বাধা দেয়, আপনি কেবল রেখাগুলির শেষে মন্তব্যগুলি রাখতে পারেন যা আপনি মোড়ানো হতে চান না।

public static enum Command 
{
    login,//
    register,//
    logout,//
    newMessage//
};

5

এটি দুর্দান্ত নয় তবে আপনি কোডের কয়েকটি বিভাগের জন্য গ্রহন ফর্ম্যাটরটি বন্ধ করতে পারেন ...

// @formatter:off
public static enum Command {
    login,
    register,
    logout,
    newMessage
};
// @formatter:on

বিকল্পটি উইন্ডোজ-> পছন্দসমূহ-> জাভা-> কোড স্টাইল-> ফর্ম্যাটার-> সম্পাদনা-> অফ / অন ট্যাগ প্যানেলে রয়েছে


1
এটি কাজ করে ... ধরনের। সংকলক এখন এটিকে একটি ত্রুটি বলে মনে করে। তাদের মন্তব্যে রাখলে এই সমস্যাটি কেটে যায় // @ ফর্ম্যাটটার: অফ
বব কুহার

4

"কনস্ট্যান্টস" এর জন্য আপনাকে এনাম ঘোষণার আওতায় লাইন মোড়ানোর নীতিটি সেট করতে হবে।

মোড়ানোর নীতি সেট করুন

  • সমস্ত উপাদান, প্রতিটি উপাদান একটি নতুন লাইনে মোড়ানো

এবং

  • বাক্সটি চেক করুন যা বলছে "ফোর্স স্প্লিট, এমনকি লাইনের চেয়ে কম ,,,,,,

0

সবেমাত্র সর্বশেষে গ্রহনটি 2018 যোগ করুন adding

  1. Window > Preferences > Java > Code Style > Formatter - Edit
  2. Line Wrappingগাছের নোড প্রসারিত করুন ।
  3. বিস্তৃত করা Wrapping settings
  4. বিস্তৃত করা 'enum' declaration
  5. সম্পাদনা করুন Constantsএবং Constant arguments

ধ্রুবক হওয়া দরকার Wrap all elements, every element on a new line। ধ্রুব যুক্তি থাকা দরকার Wrap where necessary

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.