2010-07-21 5 views
2

형식을 쉽게 캡처 할 수 있습니까? 나는 간단한 대체를하기 위해 $mapType$$mapEnd$ 같은 변수 표현을 나란히 사용하는 것과 같은 기본적인 것들을 할 수없는 것처럼 보입니다. 어떤 이유가있을 수 있습니까? 즉, 하나의 표현식, 예를 들어 .*\s*.*abc이 있고 두 개의 변수, 즉 .*\s*.*abc으로 나누면 표현식이 텍스트와 일치하지 않습니다. 무엇이 잘못 될 수 있습니까?IntelliJ 구조 검색 및 교체 문제

Example template: 
$var1$ = $impl$ 

Example second template: 
$var1$ = $type$$implEnd$ 

$impl$가 일치하는 정규식의 절반과 함께 $type$$implEnd$을 배치 전체 정규 표현식 인 경우 패턴이 일치하지됩니다. 무엇이 잘못 될 수 있습니까?

나는이 변환을 할 노력하고있어 :

List<String,Object> list = new ArrayList<String,Object>(); 
List<String,Object> list = Lists.newArrayList(); 

은 분명히, 내가 캡처 어떻게 든 "배열"뿐만 아니라 인수가없는 유형 만 필요합니다.

+1

이 문서 유용한 (많은 콘크리트 SSR 예 패턴)을 찾을 수 있습니다 Map<$Key$, $Value$> 같은 몇 가지 일반적인 유형의 변수를 고려할 필요가 여러 변수 ($ mapType $$ mapEnd $)를 타입 참조 (또는 어휘 lexem이 무엇이든간에)로 포착하지 마십시오. 정확하게 이해한다면 리스트 <$Type$> $ variable $ = new $ ListType $ <$Type$>() 과 일치해야합니다. 이 기사가 유용 할 수도 있습니다. http://www.jetbrains.com/idea/documentation/ssr.html – nicity

+0

거의 작동하지만 일반 사항에 대한 인수 사이에 쉼표가 유지되지 않습니다. 연결된 문서가 매우 모호하고 높은 수준입니다. –

+0

필요에 따라 지도 <$ Key $, $ Value $>와 같이 여러 유형의 인수를 지정할 수 있습니다. 나는 첫번째 패턴에서 잃어버린 세미콜론이 버그라고 믿는다. Btw, 기사에 구체적인 예가 가득합니다. (작성 시점에서 수집 : – nicity

답변

1

SSR은 변수 당 하나 또는 여러 언어 구문을 일치 시키므로 여러 변수 ($ mapType $$ mapEnd $)를 형식 참조 (또는 lexem이 무엇이든간에)로 캡처하지 않습니다. 하나는 검색 패턴을

List<$Type$> $variable$ = new $ListType$<$Type$>()

을 따라 교체해야하는 코드에 대한

List<String> someName = new ArrayList<String>();

처럼. 더 복잡한 일반적인 표현에 대한 하나는 것, SSR 변수 당 하나 또는 여러 언어 구조와 일치

http://www.jetbrains.com/idea/documentation/ssr.html