mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
The problem was in SQL regexps, in comments matching. It runs exponential on the strings like "/**//**//**//**//**//**/"
85 lines
5.6 KiB
XML
85 lines
5.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<component name="LanguageInjectionConfiguration">
|
|
<injection language="SQLite" injector-id="python">
|
|
<display-name>sqlite3</display-name>
|
|
<place><![CDATA[pyLiteralExpression().and(pyMethodArgument("execute", 0, "_sqlite3.Connection"))]]></place>
|
|
<place><![CDATA[pyLiteralExpression().and(pyMethodArgument("executemany", 0, "_sqlite3.Connection"))]]></place>
|
|
<place><![CDATA[pyLiteralExpression().and(pyMethodArgument("execute", 0, "_sqlite3.Cursor"))]]></place>
|
|
<place><![CDATA[pyLiteralExpression().and(pyMethodArgument("executemany", 0, "_sqlite3.Cursor"))]]></place>
|
|
</injection>
|
|
<injection language="SQL" injector-id="python">
|
|
<display-name>"SQL select/delete/insert/update/create"</display-name>
|
|
|
|
<!-- template for SQL statements -->
|
|
<!-- \/ matches SQL comments \/ \/ start statement regexp here -->
|
|
<!-- <place><![CDATA[pyStringLiteralMatches("^\\s*((((- -|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*")]]></place> -->
|
|
<!-- /\ don't forget to remove this space -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(SELECT\\s.+?\\sFROM\\s.+)")]]></place>
|
|
<!-- SELECT smth FROM smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(INSERT\\s+INTO\\s.+)")]]></place>
|
|
<!-- INSERT INTO smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(UPDATE\\s.+?\\sSET\\s.+)")]]></place>
|
|
<!-- UPDATE smth SET smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(DELETE\\s+(\\*\\s+)?FROM\\s.+)")]]></place>
|
|
<!-- DELETE *? FROM smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*((CREATE|DROP)\\s+DATABASE\\s.+)")]]></place>
|
|
<!-- CREATE|DROP DATABASE smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(CREATE\\s+TABLE\\s.+?\\(.+?\\))")]]></place>
|
|
<!-- CREATE TABLE smth (...) -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*((ALTER|TRUNCATE)\\s+TABLE\\s.+)")]]></place>
|
|
<!-- ALTER|TRUNCATE TABLE smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(DROP\\s+TABLE\\s.+)")]]></place>
|
|
<!-- DROP TABLE smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(CREATE\\s+(UNIQUE\\s+)?INDEX\\s.+?\\sON\\s.+)")]]></place>
|
|
<!-- CREATE UNIQUE? INDEX smth ON smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*((ALTER|DROP)\\s+INDEX\\s.+)")]]></place>
|
|
<!-- ALTER|DROP INDEX smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(CREATE\\s+(OR\\s+REPLACE\\s+)?VIEW\\s.+?\\sAS\\s.+)")]]></place>
|
|
<!-- CREATE (OR REPLACE)? VIEW smth AS smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*((ALTER|DROP)\\s+VIEW\\s.+)")]]></place>
|
|
<!-- ALTER|DROP VIEW smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(REPLACE\\s+INTO\\s.+)")]]></place>
|
|
<!-- REPLACE INTO smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(WITH\\s.+?\\sAS\\s.+)")]]></place>
|
|
<!-- WITH smth AS smth-->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(COPY\\s.+?\\s(FROM|TO)\\s.+)")]]></place>
|
|
<!-- COPY smth (FROM|TO) smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(CREATE\\s+(OR\\s+REPLACE\\s+)?TRIGGER\\s.+?\\sON\\s.+)")]]></place>
|
|
<!-- CREATE (OR REPLACE)? TRIGGER smth ON smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(CREATE\\s+(OR\\s+REPLACE\\s+)?FUNCTION\\s.+?\\sRETURNS?\\s.+)")]]></place>
|
|
<!-- CREATE (OR REPLACE)? FUNCTION smth RETURNS? smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(CREATE\\s+(OR\\s+REPLACE\\s+)?PROC(EDURE)?\\s.+)")]]></place>
|
|
<!-- CREATE (OR REPLACE)? PROC(EDURE)? smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(ALTER\\s+SEQUENCE\\s.+)")]]></place>
|
|
<!-- ALTER SEQUENCE smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(BEGIN\\s.+\\sEND;?\$)")]]></place>
|
|
<!-- Oracle transaction: BEGIN smth END;?$ -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*(BEGIN\\s+TRAN(SACTION)?\\s.+)")]]></place>
|
|
<!-- TSQL transaction: BEGIN TRAN(SACTION)? smth -->
|
|
|
|
<place><![CDATA[pyStringLiteralMatches("^\\s*((((--|#)[^\n\r]*)|(/\\*([^*]|\\*[^/])*\\*+/))(\r\n|\n|\r))*\\s*((BEGIN)|(START TRANSACTION))(\\s[^\n\r]+)?;")]]></place>
|
|
<!-- MySQL/PostgreSQL transaction: ((BEGIN)|(START TRANSACTION))( smth)?; -->
|
|
</injection>
|
|
</component>
|