Js2 modu için sözdizimi denetleyicisini kapatabilir veya değiştirebilir miyim?


13

Varsayılan bir kurulumum var js2-mode. Bu güzel sözdizimi vurgulama ve kontrol sağlar, ancak şimdi farklı bir stil kümesi olan bir proje üzerinde çalışıyorum (özellikle bu yeni proje noktalı virgül kullanmaz).

Bu, her kod satırının js2-modeuyarı ile vurgulanmasına neden olur :missing ; after statement

Sözdizimi kontrolünü devre dışı bırakabilmemin bir yolu var mı js2-mode?

Ya da daha iyisi, farklı bir sözdizimi denetleyicisi kullanmanın bir yolu var mı?

Ben Flycheck mod yüklendi ve benim için çalışan var .jsdosyaların ama sadece (yani tüm dama olarak belirlenmiş herhangi bir sözdizimi dama etkin olmayan nilve not found). Bunlardan birini nasıl etkinleştireceğinizi ve yerleşik olanı nasıl devre dışı bırakacağınızı bilmek harika olurdu js2.

Noktalı virgül yerleştirme ile ilgili görüşlerin değiştiğini biliyorum ancak bu proje "standard style"Flycheck'te sözdizimi denetleyicisi olanları izliyor ve denetleyiciyi değiştirebilirsem ilgileniyorum.

Yanıtlar:


17

Uyarı, kendi ayrıştırıcısını Javascript için uygulayan ve birkaç sorun hakkında uyaran JS2 Modundan geliyor. Diğer cevapta belirtildiği gibi, gözlemlediğiniz belirli uyarı , init dosyanızda js2-strict-missing-semi-warningayarlayabileceğiniz kullanıcı seçeneğiyle nilveya M-x customizeuyarıyı kapatmak için aracılığıyla kontrol edilir.

Flycheck ile birlikte JS2 Modu kullanırken genellikle değişkenleri ayarlayarak JS2 Modu tüm uyarıları kapatmak için tavsiye js2-mode-show-parse-errorsve js2-mode-show-strict-warningsiçin nilFlycheck en sözdizimi denetimi üstün hata raporlama sağlar hemen hemen her durumda olduğu gibi.


javascript-standardGeçerli arabellek kullanımı için sözdizimi denetleyicisini seçmek için C-c ! s javascript-standard. .dir-locals.elAşağıdaki içeriğe sahip projenin üst düzey dizininde bir dosya oluşturarak sözdizim denetleyicisini projeniz için kalıcı olarak etkinleştirebilirsiniz :

((js2-mode
  (flycheck-checker . javascript-standard)))

Emacs , dizinin altındaki bir dosyayı ziyaret ederken bu Dizin Değişkenlerini otomatik olarak yükler ve böylece projeniz için standart sözdizimi denetleyicisini otomatik olarak seçer.


Herhangi bir nedenle, js2-mode-show-parse-errorsolarak ayarlanmış olsa bile nil, hala hataları görüyorum: C-h v js2-mode-show-parse-errorsdöner js2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t ama yine de alt satırları görüyorum. Bunun neden olabileceğini biliyor musun?
Startec

Ah, cevabında küçük bir tür var, kastettiğine inanıyorum js2-mode-show-strict-warnings nil. Bunu düzenleme olarak ekledim.
Startec

@ Startec Hatamı düzelttiğin için üzgünüm.
lunaryorn

2

js2-strict-missing-semi-warningDeğişkeni, nilbu özel sorun için sizi uyarmayacak şekilde özelleştirebilirsiniz veya js-modebunun yerine kullanabilirsiniz js2-mode.

İki seçenekten stil rehberinizi değiştirmenizi tavsiye ederim; JS'ye otomatik noktalı virgül ekleme bir tuzaktır. Yine de, bunun her zaman mümkün olmayabileceğinin farkındayım.


4
-1: Lütfen son paragrafı kaldırın, konu dışı. Javascript stillerinin tartışılması bu site için değildir.
lunaryorn

3
Hayır teşekkürler. Bu tavsiyeyi Javascript ile 20 yıllık deneyime sahip bir mühendis olarak sunuyoruz. Kesinlikle emacs yerel kurallara uyacak şekilde adapte edilebilir (ve emacs en iyi şeydir), ancak bazı şeyler değer daha fazla sorun ve otomatik noktalı virgül ekleme bu listenin en üstünde. Bunu bir kenara bırakmak, en basit seçenek olduğu için js2-mode'un davranışını değiştirmek en iyi seçenektir. Aslında flymake hakkında hiçbir şey bilmiyorum, bu yüzden orada size yardım edemem.
db48x
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.