'+' ত্রুটির আগে জেএসহিন্টের খারাপ লাইন ভাঙার ব্যাখ্যা


125

কেউ আমাকে ব্যাখ্যা করতে পারেন কেন জেএসহিন্ট নীচের বিষয়ে অভিযোগ করে,

window.location.href = String1
    + '#'
    + Sting2
    + '='
    + String3;

ত্রুটি সহ, Bad line breaking before '+' error

আমি বুঝতে পারি যে এই ত্রুটিটি laxbreak বিকল্প হিসাবে কনফিগার করা যেতে পারে , যা হিসাবে বর্ণনা করা হয়েছে

এই বিকল্পটি সম্ভবত আপনার কোডটিতে অনিরাপদ লাইন ব্রেকিং সম্পর্কে বেশিরভাগ সতর্কতাগুলিকে দমন করে। এটি কমা-প্রথম কোডিং শৈলী সম্পর্কে সতর্কতা দমন করে না। তাদের দমন করতে আপনাকে ল্যাক্সকমমা ব্যবহার করতে হবে (নীচে দেখুন)।

এই ব্যাখ্যাটি বেশ পরিলক্ষিত এবং আমি কেন এইভাবে লাইনগুলিকে প্রথমে খারাপ বা শিথিল হিসাবে বিবেচনা করা হয় তা সম্পর্কে আগ্রহী।

মনে রাখবেন আমি এখানে একটি পবিত্র যুদ্ধ শুরু করার চেষ্টা করছি না, আমি জেএসহিন্টের লোকেরা কেন এটি খারাপ বলে মনে করে সে সম্পর্কে কেবল একটি উদ্দেশ্যমূলক উত্তর খুঁজছি, এটি কেবল তাদের শৈলীর দিকে jectুকিয়ে দেওয়া স্টাইলের পছন্দ কিনা (আমি ভেবেছিলাম জেএসলিন্ট ছিল মতামতযুক্ত রেখাযুক্ত) বা লাইন এভাবে ভাঙ্গার সময় নির্দিষ্ট দোভাষীদের ভুল হতে পারে এমন কিছু আছে।


6
আমি মনে করি এটি জেএসহিন্ট অনুসারে কেবল "খারাপ স্টাইল"। আপনি যদি নেতৃস্থানীয় কমা ব্যবহার করেন তবে আপনি একই প্রভাব পাবেন। পঠনযোগ্যতার জন্য আমি কমপক্ষে লাইনের শেষে এটি + দিয়ে আবার লিখতে চাই।
ইভান

28
হতাশাজনক। আমি মনে করি এই স্টাইলটি একাধিক-পাঠ্য শৈলীটি মাল্টি-লাইন স্ট্রিংগুলির সাথে ব্যবহার করার জন্য বিশেষত সংকীর্ণ উইন্ডোতে কোডটি দেখার সময়।
ল্যাম্বার্ট

12
টোকেনগুলির সাহায্যে নেতৃত্ব দেয় যা বিবৃতি চালিয়ে যায় এবং কোড ব্লকের বাম অংশে দৃশ্যমানভাবে ধারাবাহিকতা প্রকাশ করতে সহায়তা করে, এটিই যেখানে স্ট্রাকচারাল উপাদানগুলি খুঁজে পেতে আশা করা হয়, বিশেষত যদি দ্রুত স্ক্যান করা হয়। এটি অবশ্যই কার্যকর এবং যুক্তিসঙ্গত এবং উদ্দেশ্যমূলকভাবে খারাপ শৈলী নয়। তবে এই বিধি প্রয়োগের জন্য একটি কোড অখণ্ডতার সমস্যা রয়েছে যা দুর্ভাগ্যজনক।
অ্যাডাম টলি 21

1
@ অ্যাডামটোলি আমি সম্পূর্ণরূপে একমত, এবং আমি যখন এ সম্পর্কে জিজ্ঞাসা করি তখন এটি এফইউডির নিশ্চিতকরণ বলে মনে হয়েছিল। এটি "মেটা ইফেক্ট" পরে তদন্তের আওতায় আনা হয়েছিল; এবং এই যাচাই-বাছাইয়ের বিষয়টি এটি কার্যকর এবং যুক্তিসঙ্গত বলে নিশ্চিত করেছে।
হোস্টাইলফোর্ক জানিয়েছে যে এসই

2
আজকাল ( JSHint 2.9.4 ) ত্রুটি বার্তাটি '+' এর আগে বিভ্রান্তিকর লাইন বিরতি; পাঠকরা এটি একটি অভিব্যক্তি সীমানা হিসাবে ব্যাখ্যা করতে পারে।
রাইনো ডেভেল

উত্তর:


107

এটি বিবৃতি এড়ানোর জন্য একটি স্টাইল গাইড যা স্বয়ংক্রিয় সেমিকোলন সন্নিবেশ সম্পর্কে অনুমানের জন্য দায়বদ্ধ হতে পারে ।

ধারণাটি হ'ল আপনি একটি রেখার শেষে এটি স্পষ্ট করে দিয়েছিলেন যে অভিব্যক্তিটি সেখানেই শেষ হয় বা পরবর্তী লাইনে চালিয়ে যাওয়া যায় কিনা।


6
উত্তরের জন্য ধন্যবাদ, ত্রুটির পিছনে যুক্তিযুক্ত হওয়া আমার পক্ষে জেএসহিন্টকে সন্তুষ্ট করার জন্য ন্যায্যতা প্রমাণ করা অনেক সহজ করে তোলে।
জেমস ম্যাকমাহন

36
এই স্টাইলটি কার্যকর করার জন্য স্বয়ংক্রিয় সেমিকোলন সন্নিবেশ যুক্তিসঙ্গত যুক্তিযুক্ত। কিন্তু যখন অভিব্যক্তিটি কিছু বন্ধনীতে থাকে তখন সতর্কতা অবিরত থাকে। এবং, এটি আমাকে দু: খিত করে তোলে।
বেন হাইড

23
দ্বিতীয় @ বেনহাইড, এবং সাধারণভাবে কোডটির মাধ্যমে স্কিমিংয়ের সাথে লাইনের নেতৃত্ব দেওয়ার জন্য এটি আরও বেশি মানব-পঠনযোগ্য +। এটি পরের লাইনে যুক্ত হবে কিনা তা দেখার জন্য প্রতিটি লাইনের সুদূর প্রান্তে লাফিয়ে যাওয়ার চেয়ে বামদিকে একটি কলাম অনুসরণ করা চোখের পক্ষে সহজ (এবং ত্রুটির প্রবণতা কম) এমনকি ব্যাকরণটিও কম চতুর: "লাইন 118 117 যুক্ত করে" বনাম "লাইন 117 লাইন 118 দ্বারা সংযোজন করতে চলেছে" "
ওয়ার্ক

9
ব্যক্তিগতভাবে, আমি লাইনগুলির শেষের দিকে সংযোজনকারী অপারেটরগুলি (এবং কমাগুলি) ঘৃণা করি কারণ আমি এটি পেরেছি। মাল্টি-লাইন বুলিয়ান স্টেটমেন্টগুলিতে (&& বা || শেষের পরিবর্তে কোনও লাইনের শুরুতে) যুক্তি পড়তে আমার পক্ষে সহজ, এবং আমি অন্যান্য মাল্টি লাইনের স্টেটমেন্টগুলি বাদ দিয়ে কমা দিয়ে বিস্মৃত তালিকাগুলি দ্রুততার সাথে একটি সূচনা দিয়ে বলতে পারি a কমা। জন্য laxbreak দেবতা ধন্যবাদ
aaaaaa

2
@ বার্নি আপনি আমার অনুরূপ প্রশ্নের সাথে দেওয়া উত্তরগুলির সাথে স্বয়ংক্রিয় সেমিকোলন সন্নিবেশ নিয়ে উদ্বেগকে কীভাবে মিলন করবেন ? এই বিন্যাসের ন্যায়সঙ্গত ঝুঁকি কি? আমার কাছে এটি স্ক্যানযোগ্যতার প্রান্তে রয়েছে।
হোস্টাইলফোর্ক বলেছে যে এসই

8

আপনি যদি নতুন লাইনের বিপরীতে লাইন ব্রেকের আগে + ব্যবহার করেন তবে Jshint এটিকে খারাপ লাইন বিরতি হিসাবে চিহ্নিত করবে না। তাই ভালো:

window.location.href = String1 +
'#' +
Sting2 +
'=' +
String3;

10
এটি এমনকি একটি আইওটা প্রশ্নের উত্তর দেয় না। এত বেশি ভোট কেন?
ল্যাম্বার্ট

4
আপনার জাশিন্ট সেটিংস পরিবর্তন না করেই সম্ভবত এই সমস্যাটি নিয়ে কাজ করার এক উপায়।
আসুলাইমান

4
এটি একটি মন্তব্য হওয়া উচিত কারণ এটি সত্যই প্রশ্নের উত্তর দেয় না তবে মূল্যবান তথ্য সরবরাহ করে।
টমটমসি

3

প্রশ্নের সরাসরি উত্তর নয় তবে গুগলিং (যেমনটি আমি করেছি) যে কেউ এই নিয়মটি বজায় রাখতে চান তবে সতর্কবার্তা সংশোধন করতে ইচ্ছুক তাদের পক্ষে এটি নীচে কার্যকর হতে পারে ...

নোটপ্যাড ++ (যেমন জেএসলিন্ট প্লাগইন সহ) ব্যবহার করার সময়, নিম্নলিখিত অনুসন্ধান এবং প্রতিস্থাপন ব্যবহার করে এটি ঠিক করা যেতে পারে:

  • কি সন্ধান করুন: (\r\n|\n|\r)( *)\+
  • এর সাথে প্রতিস্থাপন করুন: (প্রথম এবং শেষ স্থান সহ) +$1$2 
  • অনুসন্ধান মোড: নিয়মিত অভিব্যক্তি

(শুধুমাত্র উইন্ডোজে পরীক্ষা করা হয়েছে তবে রেজিক্সের ইউনিক্স বা ম্যাক ওএস লাইন শেষের সাথেও কাজ করা উচিত))

একটি অনুরূপ জিনিস জন্য কি ||, &&, ==, !=, <=বা >=পরিবর্তে +, এই ব্যবহার করুন:

  • কি সন্ধান করুন: (\r\n|\n|\r)( *)(\|\||&&|==|!=|<=|>=)
  • এর সাথে প্রতিস্থাপন করুন: (প্রথম এবং শেষ স্থান সহ) $3$1 $2 

5
যারা তাদের ফর্ম্যাটিং পরিবর্তন করতে চান তাদের জন্য সম্ভবত দরকারী। তবে এটি (অন্তর্নিহিত) প্রশ্নের উত্তর দিতে পুরোপুরি ব্যর্থ: "কেন এইভাবে লাইনগুলি ভাঙ্গাটি প্রথমে খারাপ বা শিথিল বলে বিবেচিত হবে তা সম্পর্কে আমি আগ্রহী" "
ল্যাম্বার্ট

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