Json 속성 및 값에 대한 다른 채색


0

N ++을 사용하여 Json을 신속하게 검사하면 다음과 같은 문제가 있습니다.
모든 것이 회색입니다. 속성 / 텍스트 값.

그러나 N ++ Style Configurator 에는 값 및 속성 이름에 대한 옵션이 없습니다. 문자열 작은 따옴표 또는 큰 따옴표입니다.

Json에 더 화려한 색상을 제공 할 언어 나 구성이 있습니까?

예 :

다음 Json의 경우 :

{"description":{"title":"Contiguous U.S., Average Temperature","units":"Degrees Fahrenheit","base_period":"1901-2000"},"data":{"189512":{"value":"50.34","anomaly":"-1.68"},"189612":{"value":"51.99","anomaly":"-0.03"},"189712":{"value":"51.56","anomaly":"-0.46"}}}

N ++은 다음과 같이 표현합니다 : 여기에 이미지 설명을 입력하십시오

눈은 :속성 이름을 읽으려면 롤백 한 다음 롤백을 찾아야합니다 . 특히 여러 줄 데이터 (들여 쓰기 및 자동 캐리지 리턴으로 무한 스크롤로 가로 스크롤하지 않음).

quicktype.io에서 그런 종류의 결과 (어두운 주제는하지 마십시오)를 기대했지만

여기에 이미지 설명을 입력하십시오


태그에서 텍스트 팝업으로 Xml에없는 문제.
끌어서 놓기

Language-> J->를 클릭하십시오 JSON. 문서에 스타일을 자동으로 적용해야합니다.
Burgi

@Burgi, Style configurator에 대해 이야기 할 때 스타일이 이미 선택되어있는 것이 분명하다고 생각했습니다. 그러나 마지막 줄을 "Json에게 채색 할 언어가 있습니까?"라고 읽을 수 있습니다. 대답은 Json입니다. 더 많은 색상과 색상으로 의미를 나타내는 그림을 편집하겠습니다.
드래그 앤 드롭

다른 언어를 요청할 때 관련 언어가 아닌 색이 일부 블록 코드에서 더 나은 결과를 낸 시간이 있었기 때문입니다. Lambda C #과 Java가 떠 오릅니다. 그러나 그것은 2008 년이었다.
드래그 앤 드롭

다운 투표가 왜 필요한지 물어봐도 될까요? N ++이 Vim 또는 EDI가 아니라는 것을 알고 있습니다. 그러나 간단한 파싱과 하이라이트는 높은 발전이 아닙니다. 질문이 합법적이지 않습니까? 기본-연구 없음 (표준 higtlight 사용)?
끌어서 놓기

답변:


2

불꽃의 메모장 ++에 의해 사용되는 성분 신택스 하이라이팅 대한 렉서 담당한다. 분명히 그 렉서의 디자이너는 좋은 아이디어처럼 보이지만 속성 이름과 값을 구별하지 않기로 결정했습니다. 어휘 분석기의 개선에 대한 제안을하려면 최신 Scintilla JSON Lexer가 해당 변경 사항을 이미 통합했는지 확인하고 그렇지 않은 경우 Scintilla 프로젝트에 요청 해야합니다. 변경 사항이 이미 있거나 Scintilla가 해당 수정 사항이 포함 된 새 버전을 릴리스하는 경우 메모장 ++ 개발자 에게 해당 수정 사항을 포함하도록 Scintilla를 업그레이드 하도록 요청 해야합니다 . (그리고 마지막으로 NPP가 업그레이드 한 것은 신 틸라입니다. 약 4 년 전 3.34에서 3.56으로 가장 최근의 신 틸라 4.1.3과 비교)

해결 방법 # 1 : Style Configurator> JSON> Operator 색상을 변경하여 속성과 값 사이에 눈에 띄는 노란색 배경이 있거나 무언가가 눈에 띄게되어 :구분 기호 를 쉽게 찾을 수 있도록합니다. ...

해결 방법 # 2 : 커뮤니티 포럼 에서 Claudia Frank는 단순한 UDL 2.1이 아닌 정규 표현식을 사용하여 사용자 정의 언어를 허용하는 PythonScript 기반 어휘 분석기에서 일부 작업을 수행했습니다. 그녀의 노력에 대한 링크 모음은 https://notepad-plus-plus.org/community/topic/16164/bug-javascript-multiline-character-not-understood-by-notepad/11에 있습니다. 약간의 노력으로 JSON을 구문 분석하는 데 필요한 정규 표현식을 원하는 방식으로 정의 할 수 있습니다.


업데이트 : UDL (사용자 정의 언어)을 사용하여 원하는 작업을 수행 할 수 있습니다. 나는 당신이 설명한 주요 차이점을 얻을 수있는 빠른 것을 생각해 냈습니다. 불쾌한 부작용으로 접히지 않습니다 { ... }(쌍을 접을 수는 없습니다 . (UDL 접기 옵션을 설정하려고 시도했지만 중첩 시도가 적어도 첫 번째 시도에서 제대로 작동하지 않았습니다))

  • 언어> 언어 정의 ... : 새로 만들기 = JsonPropertyValues.
  • 연산자 및 구분 기호
  • 연산자 1 = , : " ' { }, STYLER = 문장 부호에 원하는 색상을 설정하십시오.
  • 구분 기호 1 style = OPEN : :, Close = ((EOL)), STYLER = VALUE쪽에 원하는 색상을 설정하십시오. Nesting:허용하도록 설정Operators 1
  • 구분 기호 2 스타일 = OPEN : ", 닫기 = ", STYLER = 큰 따옴표로 묶을 때 왼쪽 (속성)의 색상 설정, 중첩 필요 없음
  • 구분 기호 3 스타일 = OPEN : ', 닫기 = ', STYLER = 작은 따옴표로 묶을 때 왼쪽 (속성)의 색상을 설정하고 중첩이 필요하지 않음

위의 모든 STYLER 항목에 모두 Nesting:포함 하도록 설정할 수 있습니다 Numbers. 그런 다음 주석 및 숫자 탭으로 이동 하여 STYLER을 정의하여 숫자의 색상을 설정하십시오.

모든 파일 에 적용 하려면 Ext 상자를로 설정 하거나 언어> JsonPropertyValues 를이 방식으로 구문 분석하려는 JSON에 수동으로 적용 하면됩니다.json.JSON

어쨌든, 이것은 당신이 묘사 한 것을 기반으로 합리적인 출발점입니다. 자유롭게 사용자 정의하거나 포함 된 기능 이상으로 확장하십시오.


1
죄송합니다. 일주일 동안 SO를 사용하지 않았습니다. 이것은 훌륭해 보입니다. 이 답변을 작성해 주셔서 감사합니다. 나는 두 가지 가능성을 모두 시험해 볼 것이다.
드래그 앤 드롭
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.