diff --git a/web.el/src/org/netbeans/modules/web/el/completion/ELSanitizer.java b/web.el/src/org/netbeans/modules/web/el/completion/ELSanitizer.java --- a/web.el/src/org/netbeans/modules/web/el/completion/ELSanitizer.java +++ b/web.el/src/org/netbeans/modules/web/el/completion/ELSanitizer.java @@ -157,6 +157,13 @@ if (ELTokenId.DOT == elToken) { return expression + ADDED_SUFFIX + spaces ; } + + // for COLON - e.g. #{foo: + if (ELTokenId.COLON == elToken) { + return expression + ADDED_SUFFIX + ELTokenId.LPAREN.fixedText() + + ELTokenId.RPAREN.fixedText() + spaces; + } + // for operators if (ELTokenId.ELTokenCategories.OPERATORS.hasCategory(elToken)) { return expression + spaces + ADDED_SUFFIX; @@ -165,8 +172,13 @@ return expression + " " + spaces + ADDED_SUFFIX; } } + + // for COLON - e.g. #{foo:foo + if (expression.contains(ELTokenId.COLON.fixedText())) { + return expression + ELTokenId.LPAREN.fixedText() + ELTokenId.RPAREN.fixedText() + spaces; + } + return expression + spaces; - } // package private for tests diff --git a/web.el/test/unit/src/org/netbeans/modules/web/el/completion/ELSanitizerTest.java b/web.el/test/unit/src/org/netbeans/modules/web/el/completion/ELSanitizerTest.java --- a/web.el/test/unit/src/org/netbeans/modules/web/el/completion/ELSanitizerTest.java +++ b/web.el/test/unit/src/org/netbeans/modules/web/el/completion/ELSanitizerTest.java @@ -157,6 +157,21 @@ } @Test + public void testSanitizeFunctions() { + String sanitized = ELSanitizer.sanitize("#{foo:}"); + assertEquals("#{foo:x()}", sanitized); + + sanitized = ELSanitizer.sanitize("#{foo: "); + assertEquals("#{foo:x() }", sanitized); + + sanitized = ELSanitizer.sanitize("#{foo:te"); + assertEquals("#{foo:te()}", sanitized); + + sanitized = ELSanitizer.sanitize("#{foo:te "); + assertEquals("#{foo:te() }", sanitized); + } + + @Test public void testFindLastNonWhiteSpace() { assertEquals(2, ELSanitizer.findLastNonWhiteSpace("foo ")); assertEquals(2, ELSanitizer.findLastNonWhiteSpace("foo "));