first commit

This commit is contained in:
hdvt
2026-03-28 16:48:16 +00:00
commit 0c097ebf97
15478 changed files with 850272 additions and 0 deletions

View File

@@ -0,0 +1 @@
4809

Binary file not shown.

View File

@@ -0,0 +1,37 @@
Git4Idea|Version Controls
XPathView|HTML and XML
com.intellij.completion.ml.ranking|Local AI/ML Tools
com.intellij.configurationScript|IDE Settings
com.intellij.database.ide|null
com.intellij.database|Database
com.intellij.dev|Platform Development
com.intellij.diagram|Other Tools
com.intellij.ja|IDE Localization
com.intellij.ko|IDE Localization
com.intellij.marketplace.ml|Local AI/ML Tools
com.intellij.mcpServer|AI-Powered
com.intellij.modules.json|Languages
com.intellij.platform.images|null
com.intellij.plugins.datagrip.solarized.colorscheme|UI
com.intellij.searcheverywhere.ml|Local AI/ML Tools
com.intellij.settingsSync|IDE Settings
com.intellij.zh|IDE Localization
com.intellij|null
com.jetbrains.performancePlugin.async|Platform Development
com.jetbrains.performancePlugin|Platform Development
com.jetbrains.remoteDevServer|Remote Development
com.jetbrains.station|Remote Development
intellij.bigdatatools.awsBase|null
intellij.bigdatatools.coreUi|null
intellij.bigdatatools.gcloud|null
intellij.database.cloudExplorer.aws|null
intellij.database.cloudExplorer.gcloud|null
intellij.git.commit.modal|Version Controls
intellij.grid.loader.json|null
intellij.grid.loader.xls|null
intellij.grid.plugin|null
intellij.platform.ijent.impl|Remote Development
org.intellij.plugins.markdown|Languages
org.jetbrains.completion.full.line|Local AI/ML Tools
org.jetbrains.plugins.textmate|Languages
tanvd.grazi|Languages

View File

@@ -0,0 +1,163 @@
INSERT INTO products (product_name, category, price) VALUES
('Ноутбук', 'Электроника', 80000),
('Мышь', 'Электроника', 1500),
('Стол', 'Мебель', 12000);
;-- -. . -..- - / . -. - .-. -.--
drop table if exists clients;
;-- -. . -..- - / . -. - .-. -.--
drop table if exists "order" cascade;
;-- -. . -..- - / . -. - .-. -.--
create table products(
product_id serial primary key,
product_name text,
price decimal(2, 10),
category text
);
;-- -. . -..- - / . -. - .-. -.--
drop database if exists solution;
;-- -. . -..- - / . -. - .-. -.--
drop table if exists clients cascade;
;-- -. . -..- - / . -. - .-. -.--
drop table if exists products cascade;
;-- -. . -..- - / . -. - .-. -.--
drop table if exists orders cascade;
;-- -. . -..- - / . -. - .-. -.--
create table clients(
client_id serial primary key,
full_name text,
email text
);
;-- -. . -..- - / . -. - .-. -.--
create table products(
product_id serial primary key,
product_name text,
price decimal(10, 2),
category text
);
;-- -. . -..- - / . -. - .-. -.--
create table orders(
order_id serial primary key,
count integer,
date timestamp default now(),
client_id integer references clients(client_id),
product_id integer references products(product_id)
);
;-- -. . -..- - / . -. - .-. -.--
INSERT INTO clients (full_name, email) VALUES
('Алексеев Алексей', 'alex@mail.ru'),
('Борисова Мария', 'maria@yandex.ru');
;-- -. . -..- - / . -. - .-. -.--
INSERT INTO products (product_name, category, price) VALUES
('Ноутбук', 'Электроника', 80000.00),
('Мышь', 'Электроника', 1500.00),
('Стол', 'Мебель', 12000.00);
;-- -. . -..- - / . -. - .-. -.--
INSERT INTO orders (client_id, product_id, count) VALUES
(1, 1, 1), -- Алексей купил 1 ноутбук
(1, 2, 2), -- Алексей купил 2 мышки
(2, 3, 1);
;-- -. . -..- - / . -. - .-. -.--
select
c.full_name as "ФИО",
count(o) as "кол-во"
from clients c
left join orders o on c.client_id = o.client_id
group by c.full_name;
;-- -. . -..- - / . -. - .-. -.--
create view idk as select
c.full_name as "ФИО",
p.product_name as "Продукт",
p.price as "цена",
o.count as "кол-во",
o.date as "дата"
from orders o
left join clients c on c.client_id = o.client_id
left join products p on p.product_id = o.product_id;
;-- -. . -..- - / . -. - .-. -.--
create database solution;
;-- -. . -..- - / . -. - .-. -.--
create database solution1;
;-- -. . -..- - / . -. - .-. -.--
create table cabinets(
cabinet_id serial primary key,
cabinet_number integer not null
--можно добавить ответственного за кабинет
);
;-- -. . -..- - / . -. - .-. -.--
create table clients(
client_id serial primary key,
full_name text not null,
birth_date timestamp not null
);
;-- -. . -..- - / . -. - .-. -.--
drop database if exists solution11;
;-- -. . -..- - / . -. - .-. -.--
create table doctors(
doctor_id serial primary key,
full_name text not null,
specialisation text not null
);
;-- -. . -..- - / . -. - .-. -.--
create database solution11;
;-- -. . -..- - / . -. - .-. -.--
create table if not exists doctors(
doctor_id serial primary key,
full_name text not null,
specialisation text not null
);
;-- -. . -..- - / . -. - .-. -.--
create table if not exists cabinets(
cabinet_id serial primary key,
cabinet_number integer not null
--можно добавить ответственного за кабинет
);
;-- -. . -..- - / . -. - .-. -.--
create table if not exists clients(
client_id serial primary key,
full_name text not null,
birth_date timestamp not null
);
;-- -. . -..- - / . -. - .-. -.--
create table if not exists appointments(
appointment_id serial primary key,
appointment_date timestamp not null,
diagnosis text,
client_id integer references clients(client_id),
doctor_id integer references doctors(doctor_id),
cabinet_id integer references cabinets(cabinet_id)
);
;-- -. . -..- - / . -. - .-. -.--
INSERT INTO doctors (full_name, specialisation) VALUES
('Хаус Г.Д.', 'Диагност'),
('Быков А.Е.', 'Терапевт');
;-- -. . -..- - / . -. - .-. -.--
INSERT INTO cabinets (cabinet_number) VALUES (101), (102);
;-- -. . -..- - / . -. - .-. -.--
INSERT INTO clients (full_name, birth_date) VALUES
('Иванов И.И.', '1990-01-01'),
('Петров П.П.', '1985-05-05');
;-- -. . -..- - / . -. - .-. -.--
INSERT INTO appointments (appointment_date, diagnosis, client_id, doctor_id, cabinet_id) VALUES
('2023-12-01 10:00:00', 'Волчанка', 1, 1, 1),
('2023-12-01 11:00:00', 'Омикрон', 2, 1, 2);
;-- -. . -..- - / . -. - .-. -.--
select
d.full_name as "ФИО врача",
d.specialisation as "специальность",
count(a.doctor_id) as "кол-во приемов"
from doctors d
left join appointments a on d.doctor_id = a.doctor_id
group by d.full_name, d.specialisation;
;-- -. . -..- - / . -. - .-. -.--
create view idk as
select
d.full_name as "ФИО врача",
c.full_name as "ФИО клиента",
cab.cabinet_number as "номер кабинета",
a.appointment_date as "Дата приема"
from appointments a
join doctors d on a.doctor_id = d.doctor_id
join clients c on a.client_id = c.client_id
join cabinets cab on a.cabinet_id = cab.cabinet_id;
;-- -. . -..- - / . -. - .-. -.--
select * from idk;

View File

@@ -0,0 +1,63 @@
drop database if exists solution;
create database solution;
drop table if exists clients cascade;
drop table if exists products cascade ;
drop table if exists orders cascade ;
\c solution;
create table clients(
client_id serial primary key,
full_name text,
email text
);
create table products(
product_id serial primary key,
product_name text,
price decimal(10, 2),
category text
);
create table orders(
order_id serial primary key,
count integer,
date timestamp default now(),
client_id integer references clients(client_id),
product_id integer references products(product_id)
);
-- я скопировал данные, таблицы сам составил
INSERT INTO clients (full_name, email) VALUES
('Алексеев Алексей', 'alex@mail.ru'),
('Борисова Мария', 'maria@yandex.ru');
INSERT INTO products (product_name, category, price) VALUES
('Ноутбук', 'Электроника', 80000.00),
('Мышь', 'Электроника', 1500.00),
('Стол', 'Мебель', 12000.00);
INSERT INTO orders (client_id, product_id, count) VALUES
(1, 1, 1), -- Алексей купил 1 ноутбук
(1, 2, 2), -- Алексей купил 2 мышки
(2, 3, 1);
select
c.full_name as "ФИО",
count(o) as "кол-во"
from clients c
left join orders o on c.client_id = o.client_id
group by c.full_name;
create view idk as select
c.full_name as "ФИО",
p.product_name as "Продукт",
p.price as "цена",
o.count as "кол-во",
o.date as "дата"
from orders o
left join clients c on c.client_id = o.client_id
left join products p on p.product_id = o.product_id;
select * from idk;

View File

@@ -0,0 +1,79 @@
-- Билет №3. Предметная область: «Поликлиника»
-- Дано (исходные атрибуты):
-- ФИОрача, Специальность, Номерабинета, ФИО_пациента, Дата_рождения_пациента, Дата_приема, Диагноз
--
-- Задания:
--
-- Привести к 3НФ.
--
-- Создать и заполнить таблицы.
--
\c solution11;
create table if not exists doctors(
doctor_id serial primary key,
full_name text not null,
specialisation text not null
);
create table if not exists cabinets(
cabinet_id serial primary key,
cabinet_number integer not null
--можно добавить ответственного за кабинет
);
create table if not exists clients(
client_id serial primary key,
full_name text not null,
birth_date timestamp not null
);
create table if not exists appointments(
appointment_id serial primary key,
appointment_date timestamp not null,
diagnosis text,
client_id integer references clients(client_id),
doctor_id integer references doctors(doctor_id),
cabinet_id integer references cabinets(cabinet_id)
);
INSERT INTO doctors (full_name, specialisation) VALUES
('Хаус Г.Д.', 'Диагност'),
('Быков А.Е.', 'Терапевт'); -- У Быкова не будет приемов
INSERT INTO cabinets (cabinet_number) VALUES (101), (102);
INSERT INTO clients (full_name, birth_date) VALUES
('Иванов И.И.', '1990-01-01'),
('Петров П.П.', '1985-05-05');
INSERT INTO appointments (appointment_date, diagnosis, client_id, doctor_id, cabinet_id) VALUES
('2023-12-01 10:00:00', 'Волчанка', 1, 1, 1),
('2023-12-01 11:00:00', 'Омикрон', 2, 1, 2);
select
d.full_name as "ФИО врача",
d.specialisation as "специальность",
count(a.doctor_id) as "кол-во приемов"
from doctors d
left join appointments a on d.doctor_id = a.doctor_id
group by d.full_name, d.specialisation;
create view idk as
select
d.full_name as "ФИО врача",
c.full_name as "ФИО клиента",
cab.cabinet_number as "номер кабинета",
a.appointment_date as "Дата приема"
from appointments a
join doctors d on a.doctor_id = d.doctor_id
join clients c on a.client_id = c.client_id
join cabinets cab on a.cabinet_id = cab.cabinet_id;
select * from idk;

Binary file not shown.

View File

@@ -0,0 +1,4 @@
-Xmx2048m
-Dide.managed.by.toolbox=/opt/jetbrains-toolbox/jetbrains-toolbox
-Dtoolbox.notification.token=ad324023-a7ef-463e-b037-852f4a54f68f
-Dtoolbox.notification.portFile=/home/hadvart/.cache/JetBrains/Toolbox/ports/59482747-dfc9-44b3-9075-c74523db356c.port

View File

@@ -0,0 +1,6 @@
i18n.locale
ide.experimental.ui
true
moved.to.new.ui
true

View File

@@ -0,0 +1,633 @@
Inflector
actix-web
addr2line
adler
adler2
adler32
aead
aes
aes-gcm
ahash
aho-corasick
alloc-no-stdlib
alloc-stdlib
allocator-api2
android-tzdata
android_system_properties
anes
ansi_term
anstream
anstyle
anstyle-parse
anstyle-query
anstyle-wincon
anyhow
approx
arc-swap
arrayref
arrayvec
async-channel
async-compression
async-executor
async-io
async-lock
async-std
async-stream
async-stream-impl
async-task
async-trait
async_trait
atoi
atomic-waker
atty
autocfg
axum
axum-core
backtrace
backtrace-sys
base16ct
base64
base64ct
bevy
bincode
bindgen
bit-set
bit-vec
bitflags
bitvec
blake2
blake3
block-buffer
block-padding
blocking
borsh
borsh-derive
brotli
brotli-decompressor
bstr
bumpalo
byte-tools
bytemuck
byteorder
bytes
bzip2-sys
cache-padded
camino
cargo-platform
cargo_metadata
cast
cbindgen
cc
cexpr
cfg-if
cfg_aliases
chrono
ciborium
ciborium-io
ciborium-ll
cipher
clang-sys
clap
clap_builder
clap_derive
clap_lex
cloudabi
cmake
colorchoice
colored
combine
concurrent-queue
config
console
const-oid
const-random
const-random-macro
const_fn
constant_time_eq
convert_case
cookie
core-foundation
core-foundation-sys
cpufeatures
cpuid-bool
crc
crc32fast
criterion
criterion-plot
crossbeam
crossbeam-channel
crossbeam-deque
crossbeam-epoch
crossbeam-queue
crossbeam-utils
crunchy
crypto-bigint
crypto-common
crypto-mac
csv
csv-core
ctor
ctr
curl-sys
curve25519-dalek
darling
darling_core
darling_macro
dashmap
data-encoding
der
deranged
derivative
derive_more
diesel
diff
difference
digest
dirs
dirs-next
dirs-sys
dirs-sys-next
displaydoc
doc-comment
dtoa
dyn-clone
ecdsa
ed25519
either
elliptic-curve
encode_unicode
encoding_rs
enum-as-inner
env_logger
equivalent
erased-serde
errno
error-chain
event-listener
event-listener-strategy
failure
failure_derive
fake-simd
fallible-iterator
fancy-regex
fastrand
ff
filetime
fixedbitset
flate2
float-cmp
flume
fnv
foreign-types
foreign-types-shared
form_urlencoded
fs2
fs_extra
funty
futures
futures-channel
futures-core
futures-executor
futures-io
futures-lite
futures-macro
futures-sink
futures-task
futures-timer
futures-util
fxhash
gcc
generic-array
getopts
getrandom
ghash
gimli
git2
glob
globset
group
h2
half
hashbrown
hashlink
headers
headers-core
heck
hermit-abi
hex
hkdf
hmac
home
hostname
http
http-body
http-body-util
httparse
httpdate
humantime
hyper
hyper-rustls
hyper-timeout
hyper-tls
hyper-util
iana-time-zone
iana-time-zone-haiku
ident_case
idna
ignore
image
indexmap
indicatif
indoc
inotify
inout
instant
io-lifetimes
iovec
ipnet
is-terminal
is_terminal_polyfill
itertools
itoa
jobserver
js-sys
keccak
kernel32-sys
language-tags
lazy_static
lazycell
lexical-core
libc
libgit2-sys
libloading
libm
libsqlite3-sys
libz-sys
linked-hash-map
linux-raw-sys
lock_api
log
lru
lru-cache
maplit
match_cfg
matchers
matches
matchit
maybe-uninit
md-5
md5
memchr
memmap2
memoffset
mime
mime_guess
minimal-lexical
miniz_oxide
mio
mio-uds
miow
mockall
mockall_derive
mockall_double
mockito
multimap
native-tls
net2
new_debug_unreachable
nix
nodrop
nom
notify
ntapi
nu-ansi-term
num
num-bigint
num-complex
num-conv
num-derive
num-integer
num-iter
num-rational
num-traits
num_cpus
num_enum
num_enum_derive
num_threads
number_prefix
object
once_cell
oorandom
opaque-debug
openssl
openssl-macros
openssl-probe
openssl-sys
opentelemetry
opentelemetry_sdk
ordered-float
os_str_bytes
overload
owning_ref
parking
parking_lot
parking_lot_core
paste
paste-impl
pbkdf2
peeking_take_while
pem
pem-rfc7468
percent-encoding
pest
pest_derive
pest_generator
pest_meta
petgraph
phf
phf_codegen
phf_generator
phf_macros
phf_shared
pin-project
pin-project-internal
pin-project-lite
pin-utils
pkcs1
pkcs8
pkg-config
plotters
plotters-backend
plotters-svg
png
polling
polyval
portable-atomic
powerfmt
ppv-lite86
precomputed-hash
predicates
predicates-core
predicates-tree
pretty_assertions
prettyplease
proc-macro-crate
proc-macro-error
proc-macro-error-attr
proc-macro-hack
proc-macro-nested
proc-macro2
prometheus
proptest
prost
prost-build
prost-derive
prost-types
protobuf
pulldown-cmark
pyo3
pyo3-build-config
pyo3-ffi
pyo3-macros
pyo3-macros-backend
quanta
quick-error
quick-xml
quickcheck
quinn
quinn-proto
quinn-udp
quote
radium
rand
rand_chacha
rand_core
rand_hc
rand_isaac
rand_jitter
rand_os
rand_pcg
rand_xorshift
raw-cpuid
rayon
rayon-core
redox_syscall
redox_users
regex
regex-automata
regex-syntax
remove_dir_all
reqwest
resolv-conf
rfc6979
ring
rsa
rstest
rustc-demangle
rustc-hash
rustc-serialize
rustc_version
rustix
rustls
rustls-native-certs
rustls-pemfile
rustls-pki-types
rustls-webpki
rustversion
ryu
safemem
same-file
schannel
scoped-tls
scopeguard
sct
sea-orm
sea-query
sec1
security-framework
security-framework-sys
semver
semver-parser
serde
serde_bytes
serde_cbor
serde_derive
serde_json
serde_path_to_error
serde_repr
serde_spanned
serde_urlencoded
serde_with
serde_with_macros
serde_yaml
sha-1
sha1
sha2
sha3
sharded-slab
shlex
signal-hook
signal-hook-registry
signature
simd-adler32
siphasher
slab
smallvec
smol
socket2
spin
spki
sqlx
stable_deref_trait
standback
static_assertions
string_cache
strsim
structopt
structopt-derive
strum
strum_macros
subtle
syn
sync_wrapper
synstructure
system-configuration
tap
tar
target-lexicon
tauri
tempdir
tempfile
term
termcolor
terminal_size
termtree
textwrap
thiserror
thiserror-impl
thread_local
threadpool
time
time-core
time-macros
time-macros-impl
tiny-keccak
tinytemplate
tinyvec
tinyvec_macros
tokio
tokio-current-thread
tokio-executor
tokio-io
tokio-io-timeout
tokio-macros
tokio-native-tls
tokio-reactor
tokio-rustls
tokio-stream
tokio-sync
tokio-tcp
tokio-threadpool
tokio-timer
tokio-tungstenite
tokio-util
toml
toml_datetime
toml_edit
tonic
tonic-build
tower
tower-http
tower-layer
tower-service
tracing
tracing-attributes
tracing-core
tracing-futures
tracing-log
tracing-opentelemetry
tracing-serde
tracing-subscriber
trust-dns-proto
trust-dns-resolver
try-lock
tungstenite
twox-hash
typenum
ucd-trie
unicase
unicode-bidi
unicode-ident
unicode-normalization
unicode-segmentation
unicode-width
unicode-xid
unindent
universal-hash
unreachable
unsafe-libyaml
untrusted
url
urlencoding
utf-8
utf8-ranges
utf8parse
uuid
valuable
vcpkg
vec_map
version_check
void
vsdb
vsdb_derive
vsdbsled
wait-timeout
waker-fn
walkdir
want
warp
wasi
wasm-bindgen
wasm-bindgen-backend
wasm-bindgen-futures
wasm-bindgen-macro
wasm-bindgen-macro-support
wasm-bindgen-shared
web-sys
webpki
webpki-roots
which
winapi
winapi-build
winapi-i686-pc-windows-gnu
winapi-util
winapi-x86_64-pc-windows-gnu
windows
windows-core
windows-sys
windows-targets
windows_aarch64_gnullvm
windows_aarch64_msvc
windows_i686_gnu
windows_i686_gnullvm
windows_i686_msvc
windows_x86_64_gnu
windows_x86_64_gnullvm
windows_x86_64_msvc
winnow
winreg
ws2_32-sys
wyz
xattr
xml-rs
yaml-rust
yansi
zerocopy
zerocopy-derive
zeroize
zeroize_derive
zip
zstd
zstd-safe
zstd-sys
{"blockSize":29,"length":18328,"version":"5744"}

View File

@@ -0,0 +1,3 @@
{
"dictionaries" : [ "crate_names.ndjson", "dotnet_technologies.ndjson", "grazie_rule_ids.ndjson", "grazie_rule_long_ids.ndjson", "ktor_feature_ids.ndjson", "look_and_feel.ndjson", "python_packages.ndjson" ]
}

View File

@@ -0,0 +1,51 @@
.NET Classic
.NET Core
.NET_Classic
.NET_Core
Avalonia
Azure Function
AzureFunction
Azure_Function
C++
Godot
MAUI
Managed C++
Managed_C++
Silverlight
Sql Database Project
UE4
UE5
UWP
Unity
UnitySidecar
Uno
Unreal Engine (any)
UnrealFolder
UnrealGame
UnrealModule
UnrealPlugin
WPF
Web Classic
Web Core
WebSite
Web_Classic
Web_Core
WinRT
WindowsForms Classic
WindowsForms Core
WindowsForms_Classic
WindowsForms_Core
WindowsPhone
Xamarin
Xamarin.Android
Xamarin.Mac
Xamarin.PlayStation3
Xamarin.PlayStation4
Xamarin.PlayStationVita
Xamarin.TVOS
Xamarin.WatchOS
Xamarin.Xbox360
Xamarin.XboxOne
Xamarin.iOS
XamarinForms
{"blockSize":24,"length":1200,"version":"5744"}

View File

@@ -0,0 +1,219 @@
ABOUT_ITS_NN
ACCORD_SUJET_VERBE
AFFECT_EFFECT
AFTERWARDS_US
AGREEMENT_POSTPONED_ADJ
AGREEMENT_SENT_START
ALL_OF_THE
ATD_VERBS_TO_COLLOCATION
AUXILIARY_DO_WITH_INCORRECT_VERB_FORM
A_GOOGLE
A_INFINITIF
A_INFINITIVE
All
BEEN_PART_AGREEMENT
BE_VBP_IN
BU
BY_DEFAULT_COMMA
COMMA_COMPOUND_SENTENCE
COMPARISONS_THEN
COMP_THAN
DEPEND_ON
DE_AGREEMENT
DE_CASE
DIACRITICS_VERB_N_ADJ
DID_BASEFORM
DIFFERENT_THAN
DOUBLE_PUNCTUATION
DT_DT
D_N
DotOrCase
ENGLISH_WORD_REPEAT_RULE
EN_A_VS_AN
EN_COMPOUNDS
EN_CONTRACTION_SPELLING
EN_SPLIT_WORDS_HYPHEN
EN_UNPAIRED_BRACKETS
ES_SIMPLE_REPLACE
ETC_PERIOD
EVERY_EACH_SINGULAR
FEWER_LESS
FLECHES
FRENCH_WHITESPACE
GITHUB
GOOGLE_PRODUCTS
GR_04_002
Google_Developer_Documentation_Style_Guide.Contractions
Google_Developer_Documentation_Style_Guide.Ellipses
Google_Developer_Documentation_Style_Guide.EmDash
Google_Developer_Documentation_Style_Guide.Exclamation
Google_Developer_Documentation_Style_Guide.HeadingPunctuation
Google_Developer_Documentation_Style_Guide.Latin
Google_Developer_Documentation_Style_Guide.LyHyphens
Google_Developer_Documentation_Style_Guide.OptionalPlurals
Google_Developer_Documentation_Style_Guide.Parens
Google_Developer_Documentation_Style_Guide.Spacing
Google_Developer_Documentation_Style_Guide.WordList
Grammar.ADJECTIVE_POSITION
Grammar.ADVERB_ADJECTIVE_CONFUSION
Grammar.ADVERB_WORD_ORDER
Grammar.ARTICLE_ISSUES
Grammar.AUX_MAIN_VERB_FORM
Grammar.CLAUSE_NEGATION
Grammar.COMPARATIVE_SUPERLATIVE
Grammar.CONDITIONAL_ISSUES
Grammar.GERUND_VS_INFINITIVE
Grammar.LETS_CONFUSION
Grammar.MISSING_INFINITIVE_TO
Grammar.MISSING_OBJECT
Grammar.MISSING_SUBJECT
Grammar.MISSING_VERB
Grammar.OBJECT_PRONOUNS
Grammar.PLURALS_IN_COMPOUNDS
Grammar.POLARITY
Grammar.POSSESSIVE_ISSUES
Grammar.PREPOSITION_ISSUES
Grammar.QUANTIFIER_NOUN_COMPATIBILITY
Grammar.QUESTION_WORD_CONFUSION
Grammar.RELATIVE_PRONOUN_CONFUSION
Grammar.SUBJECT_VERB_AGREEMENT
Grammar.SUBJECT_VERB_INVERSION
Grammar.TENSE_ADVERBIALS
Grammar.TO_FINITE
Grammar.UNEXPECTED_VERB
Grammar.WORD_REPETITION
Grammar.WORD_SEPARATION
HAVE_PART_AGREEMENT
IF_VB
INFORMATIONS
IT_IS
IT_VBZ
I_LOWERCASE
Insensitive_Writing_(alex).Ablist
Insensitive_Writing_(alex).Gendered
Insensitive_Writing_(alex).LGBTQ
Insensitive_Writing_(alex).ProfanityLikely
Insensitive_Writing_(alex).Race
Insensitive_Writing_(alex).Suicide
JetBrains_Documentation_Style_Guide.En-dashes
JetBrains_Documentation_Style_Guide.Latin
JetBrains_Documentation_Style_Guide.Terms
JetBrains_Documentation_Style_Guide.Unambiguous_contractions
KIND_OF_A
KOMMA_INFINITIVGRUPPEN
KOMMA_ZWISCHEN_HAUPT_UND_NEBENSATZ
KOMMA_ZWISCHEN_HAUPT_UND_NEBENSATZ_2
LC_AFTER_PERIOD
LETS_LET
LOGGED_IN_HYPHEN
LOG_IN
Legal.Contracts.actual
Legal.Contracts.actually
Legal.Contracts.also
Legal.Contracts.provided
Legal.Generic.couplets
Legal.Generic.plainLegalEnglish
MD_BASEFORM
MD_BE_NON_VBP
MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE
MISSING_GENITIVE
MISSING_HYPHEN
MISSING_TO_BEFORE_A_VERB
Microsoft_Writing_Style_Guide.Adverbs
Microsoft_Writing_Style_Guide.Auto
Microsoft_Writing_Style_Guide.ComplexWords
Microsoft_Writing_Style_Guide.Contractions
Microsoft_Writing_Style_Guide.Dashes
Microsoft_Writing_Style_Guide.Ellipses
Microsoft_Writing_Style_Guide.GeneralURL
Microsoft_Writing_Style_Guide.Negative
Microsoft_Writing_Style_Guide.RangeFormat
Microsoft_Writing_Style_Guide.Terms
Microsoft_Writing_Style_Guide.Wordiness
NON_ANTI_JJ
NOUN_VERB_CONFUSION
NUMBERS_IN_WORDS
OE
ON_EXCEL
ON_VERBE
OPREDELENIA
OUTSIDE_OF
PFEILE
PHRASE_REPETITION
PLACE_DE_LA_VIRGULE
PLACE_DE_LA_VIRGULE
PLURAL_VERB_AFTER_THIS
POSSESSIVE_APOSTROPHE
PRAEP_PLUS_VERB
PREPOSITION_VERB
PREP_U_and_Noun
PRP_VBG
PT_BARBARISMS_REPLACE
PT_WORDINESS_REPLACE
Punctuation.ADVERBIAL_COMMA
Punctuation.COMMA_BEFORE_CC_CLAUSE
Punctuation.EG_IE_COMMA
Punctuation.EG_IE_PUNCTUATION
Punctuation.EXCESSIVE_COLON
Punctuation.EXCESSIVE_COMMA
Punctuation.FORMATTING_ISSUES
Punctuation.HYPHEN_TO_DASH
Punctuation.HYPHEN_VS_DASH
Punctuation.JOINING_CLAUSES_WITH_COMMA
Punctuation.LIST_COLON
Punctuation.MISSING_QUESTION_MARK
Punctuation.POLITE_COMMA
Punctuation.RELATIVE_CLAUSE_COMMA
Punctuation.RELATIVE_CLAUSE_COMMA_WITH_PROPER_NOUN
Punctuation.RELATIVE_CLAUSE_COMMA_WITH_THAT
Punctuation.SUBORDINATION_COMMA
RECOMMENDED_COMPOUNDS
SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA
SETUP_VERB
SOME_OF_THE
SPLITTED
Semantics.ABSOLUTE_DATE_ISSUES
Semantics.COMMONLY_CONFUSED_WORDS
Semantics.RELATIVE_DATE_ISSUES
Spelling.MISPLACED_SPACE
Spelling.MISSING_DIACRITIC
Spelling.NUMBER_ENDING
Spelling.PROPER_NAMES
Spelling.SIMILAR_WORD_CONFUSION
Style.COLLOQUIAL_SPEECH
Style.DISPREFERRED_SERIAL_COMMA
Style.ENFORCE_CONTRACTION_USE
Style.EXCLAMATION_MARK
Style.EXPRESSIVE_PUNCTUATION
Style.FAULTY_PARALLELISM
Style.INFORMAL_SHORT_FORMS
Style.LESS_READABLE_PASSIVE
Style.LONG_DEPENDENCY
Style.LOOKS_LIKE
Style.MISSING_SERIAL_COMMA
Style.NOUN_GENDER_BIAS
Style.OF_CHAIN
Style.PASSIVE_VOICE
Style.PRONOUN_GENDER_BIAS
Style.PUNCTUATION_MARKEDNESS
Style.REDUNDANCY_GENERAL
Style.REDUNDANT_OF
Style.SENTENCE_CAPITALIZATION
Style.VARIANT_LEXICAL_DIFFERENCES
Style.VERY_ABUSE
THE_SUPERLATIVE
THIS_NNS
TO_NON_BASE
UNLIKELY_OPENING_PUNCTUATION
UPPERCASE_SENTENCE_START
UPPERCASE_SENTENCE_START
UP_TO_DATE_HYPHEN
VERB_COMMA_CONJUNCTION
VERB_NOUN_CONFUSION
VIRG_NON_TROUVEE
Verb_and_Verb
WHETHER
WHITESPACE_RULE
wa5
wb4
{"blockSize":62,"length":13516,"version":"5744"}

View File

@@ -0,0 +1,70 @@
asyncapi
auth
auth-basic
auth-digest
auth-jwt
auth-ldap
auth-oauth
auto-head-response
caching-headers
call-logging
callid
cohort
compression
conditional-headers
content-negotiation
cors
csrf
css-dsl
default-headers
double-receive
exposed
firebase-auth-provider
forwarded-header-support
freemarker
hsts
html-dsl
htmx
https-redirect
khealth
koin
koog
kotlinx-rpc
kotlinx-serialization
ktor-di
ktor-gson
ktor-jackson
ktor-network
ktor-network-tls
ktor-server-kafka
ktor-server-rabbitmq
ktor-server-rate-limiting
ktor-server-task-scheduling
ktor-sessions
ktor-swagger-ui
ktor-websockets
line-webhook
metrics
metrics-micrometer
mongodb
mustache
openapi
opentelemetry-java-instrumentation
partial-content
pebble
postgres
request-validation
resources
routing
shutdown-url
simple-cache
simple-memory-cache
simple-redis-cache
sse
static-content
status-pages
swagger
thymeleaf
velocity
webjars
{"blockSize":35,"length":2415,"version":"6155"}

View File

@@ -0,0 +1,463 @@
Acme
Apricode_Monokai
Arc_Dark
Arc_Dark_(Material)
Arc_Dark_Contrast
Arc_Theme
Arc_Theme_-_Orange
Arc_Theme_Dark
Arc_Theme_Dark_-_Orange
Astra_Dark
AtomOneDarkByMayke
Atom_One_Dark
Atom_One_Dark_(Material)
Atom_One_Dark_Contrast
Atom_One_Light
Atom_One_Light_(Material)
Atom_One_Light_Contrast
Aura
Ayu_Mirage
AzurLane:_Essex
Bas_Tools_Black
Bas_Tools_Dark
Bas_Tools_White
Base16_Monokai
Base16_Tomorrow_Dark
BattleField
Blackbird
BlendS:_Maika
Blue_Dolphin
Blue_Whale
Breeze_Dark
Bright_and_Sheen_Theme
BunnySenpai:_Mai_Dark
BunnySenpai:_Mai_Light
Burnt
Calm
Carbon
Cell_Dark_Theme
Chicken
Chuunibyou:_Takanashi_Rikka
City_Pop
Clean_Sheet
Cobalt
Cobalt9
Cobalt_2
Codely
Codely_Blue
Codely_Dark
Codely_Light
Coderpillr_Dusk
CoffeeBean
Construction_Paper
Core
Custom_Theme_(Material)
Cute_Pink_Light
Cyan_light
Cyberpunk_Theme
DDLC:_Monika_Dark
DDLC:_Monika_Light
DDLC:_Natsuki_Dark
DDLC:_Natsuki_Light
DDLC:_Sayori_Dark
DDLC:_Sayori_Light
DDLC:_Yuri_Dark
DDLC:_Yuri_Light
DM:_Kanna
DM:_Tohru
DR:_Mioda_Ibuki_Dark
DR:_Mioda_Ibuki_Light
DTWMMN:_Hayase_Nagatoro
Darcula
Darcula_(blacker)
Darcula_Darker
Darcula_Pitch_Black
Darcula_Solid
Darcula_Sombre
Darcula_Sombre_(transparent_selection)
Darcula_Sombre_(with_bright_borders)
Darcula_Sombre_(with_dark_borders)
Dark
DarkCode
DarkCode_Contrast
DarkDark
DarkTheme
Dark_Candy
Dark_Flat
Dark_Orange
Dark_purple
Dark_ubuntu
Deep_Ocean_Theme
Dracula
Dracula_(Material)
Dracula_Colorful
Dracula_Contrast
DxD:_Rias:_Crimson
DxD:_Rias:_Onyx
Dysh_Unreal_Simple
Dysh_Unreal_Simple_Vivid
EVA:_Katsuragi_Misato
EVA:_Rei
Eclipse_Plus
El_Chalten
Elements
Emerald
Ender_Theme
EroManga:_Sagiri
Espresso_Light
Espresso_Lightgram
ExperimentalDark
ExperimentalLight
ExperimentalLightWithLightHeader
Field_Lights
FlatAndMinimalistic_-_dark
FlatAndMinimalistic_-_gray
FlatOcean
Forest_Night
Foundation_Dark
Foundation_Light
Franxx:_Zero_Two_Dark
Franxx:_Zero_Two_Light
FutureDiary:_Gasai_Yuno
Galaxy
Galizur
Gate:_Rory_Mercury
Gerry_Oceanic
Gerry_Space
Gerry_Violet
Giraffe
GitHub
GitHub_(Material)
GitHub_Contrast
GitHub_Dark
GitHub_Dark_(Material)
GitHub_Dark_Contrast
GitHub_Dark_Dimmed
GitHub_Light
Gloom
Glowing_Darcula
Godot_Theme
Golden_Blue
Gradianto_Dark_Fuchsia
Gradianto_Deep_Ocean
Gradianto_Midnight_Blue
Gradianto_Nature_Green
Gray
Green_Haze
Green_lite
Greenly
Gruvbox
Gruvbox_Dark_Hard
Gruvbox_Dark_Medium
Gruvbox_Dark_Soft
Gruvbox_Github
Gruvbox_Light_Hard
Gruvbox_Light_Medium
Gruvbox_Light_Soft
Gruvbox_Material
Hack_The_Box
Hacker_Theme
Haikyu:_Hinata_Shoyo
Halcyon
Helsing
Hiberbee_Dark
High-Contrast-Theme
High_contrast
HyperTheme
Iceberg
InBedBy7
IntelliJ
IntelliJ_Light
Interesting
JahySama:_Jahy
JavierSC_dark
JetBrainsHighContrastTheme
KCoroutine
Kakegurui:_Jabami_Yumeko
KillLaKill:_Ryuko_Dark
KillLaKill:_Ryuko_Light
KillLaKill:_Satsuki_Dark
KillLaKill:_Satsuki_Light
KonoSuba:_Aqua
KonoSuba:_Darkness_Dark
KonoSuba:_Darkness_Light
KonoSuba:_Megumin
Kromatic
Kyoto
LS:_Konata
Light
Light_Custom_Theme_(Material)
Light_Flat
Light_Owl
Light_Owl_(Material)
Light_Owl_Contrast
Light_green
Light_with_Light_Header
Lotus_Dark
Lotus_Light
LoveLive:_Sonoda_Umi
Lumio
MacchuPicchu
Material_Darker
Material_Darker_Contrast
Material_Deep_Ocean
Material_Deep_Ocean_Contrast
Material_Forest
Material_Forest_Contrast
Material_Lighter
Material_Lighter_Contrast
Material_Oceanic
Material_Oceanic_Contrast
Material_Palenight
Material_Palenight_Contrast
Material_Sandy_Beach
Material_Sandy_Beach_Contrast
Material_Sky_Blue
Material_Sky_Blue_Contrast
Material_Theme:_Default
Material_Theme:_Lighter
Material_Theme:_Night
Material_Theme:_Ocean
Material_Volcano
Material_Volcano_Contrast
Mayukai_Alucard
Mayukai_Mirage
Mayukai_Mono
Mayukai_Reversal
Monarcula
Monarcula_Pro
Monarcula_Soft
Monocai
Monogatari:_Hanekawa_Tsubasa
Monokai_Pro
Monokai_Pro_(Classic)
Monokai_Pro_(Filter_Machine)
Monokai_Pro_(Filter_Octagon)
Monokai_Pro_(Filter_Ristretto)
Monokai_Pro_(Filter_Spectrum)
Monokai_Pro_(Material)
Monokai_Pro_Contrast
MonsterMusume:_Miia
Moonlight
Moonlight_(Material)
Moonlight_Contrast
Moto_Ducat
MyGruvbox
Napalmpapalam
NekoPara:_Azuki
NekoPara:_Chocola
NekoPara:_Christmas_Chocola
NekoPara:_Cinnamon
NekoPara:_Coconut
NekoPara:_Maple_Dark
NekoPara:_Maple_Light
NekoPara:_Shigure
NekoPara:_Vanilla
Nier:Automata_Theme
Night_Owl
Night_Owl_(Material)
Night_Owl_Contrast
Noctis
Noctis_Azureus
Noctis_Bordo
Noctis_Sereno
Noctis_Uva
Noctis_Voila
Nord
NotReallyMDTheme
OPM:_Genos
Obsidian
Obsidian_Bright
Oceanic_Dark_Theme
Oceanic_Primal
OneDarkMonokai
One_Dark
One_Dark_Italic
One_Dark_Vivid
One_Dark_Vivid_Italic
OreGairu:_Yukinoshita_Yukino
OreImo:_Kirino
Pink_as_Heck
Polar
Prpl
Purple
QQ:_Nakano_Miku
QQ:_Nakano_Nino
QQ:_Nakano_Yotsuba
Railgun:_Misaka_Mikoto
Re:Zero:_Beatrice
Re:Zero:_Echidna
Re:Zero:_Emilia_Dark
Re:Zero:_Emilia_Light
Re:Zero:_Ram
Re:Zero:_Rem
ReSharperDark
ReSharperDay
ReSharperLight
ReSharperNight
ReSharper_Dark
ReSharper_Light
Red
Red2
RiderDark
RiderDay
RiderLight
RiderMelonDark
RiderMelonDay
RiderMelonLight
RiderMelonNight
RiderNight
Rider_Dark
Rider_Day
Rider_Light
Rider_Melon_Dark
Rider_Melon_Light
Rider_Night
Roboticket_Light
Romeo-Theme
Rouge
SAO:_Asuna_Dark
SAO:_Asuna_Light
SG:_Makise_Kurisu
Sage
Salmon
Sepia
ShadeSmear_Dark
ShadeSmear_Light
Shades_Of_Purple
Shape
ShieldHero:_Raphtalia
Shokugeki:_Yukihira_Soma
Slime:_Rimiru_Tempest
Solarized_Dark
Solarized_Dark_(Material)
Solarized_Dark_Contrast
Solarized_Light
Solarized_Light_(Material)
Solarized_Light_Contrast
Solo_Coding
SpaceDay
Spacegray
Spacemacs
Starlight
StarlightDark
Sublime
Super_Dark
SynthWave_\u002784
SynthWave_\u002784_(Material)
SynthWave_\u002784_Contrast
Synthwave_Blue
Synthwave_Refined
System
Tanne
The_Above_Dark
The_Above_Light
Trash_Panda_Theme
Twitch_Dark_Theme
TypeMoon:_Astolfo
TypeMoon:_Gray
TypeMoon:_Ishtar_Dark
TypeMoon:_Ishtar_Light
TypeMoon:_Tohsaka_Rin
Ubuntu_Theme
Universe
Universe_Purple
VSCode_Dark
VisualAssistDark
VisualAssistDay
VisualAssistLight
VisualAssistNight
VisualStudioDark
VisualStudioDay
VisualStudioLight
VisualStudioNight
Visual_Assist_Dark
Visual_Assist_Light
Visual_Studio_2019_Dark
Visual_Studio_Code_Dark_Plus
Visual_Studio_Dark
Visual_Studio_Light
Vocaloid:_Hatsune_Miku
VoidTheme
VsCode_Monokai_HC
Windows_10_Light
Winter_Is_Coming
Xcode-Dark
Xcode_Dark
Xcode_Light
Yaru_Dark
YuruCamp:_Nadeshiko
YuruCamp:_Shima_Rin
[Doki]_AzurLane:_Essex
[Doki]_BlendS:_Maika
[Doki]_BunnySenpai:_Mai_Dark
[Doki]_BunnySenpai:_Mai_Light
[Doki]_DDLC:_Monika_Dark
[Doki]_DDLC:_Monika_Light
[Doki]_DDLC:_Natsuki_Dark
[Doki]_DDLC:_Natsuki_Light
[Doki]_DDLC:_Sayori_Dark
[Doki]_DDLC:_Sayori_Light
[Doki]_DDLC:_Yuri_Dark
[Doki]_DDLC:_Yuri_Light
[Doki]_DM:_Kanna
[Doki]_DM:_Tohru
[Doki]_DR:_Mioda_Ibuki_Dark
[Doki]_DR:_Mioda_Ibuki_Light
[Doki]_DTWMMN:_Hayase_Nagatoro
[Doki]_DxD:_Rias:_Crimson
[Doki]_DxD:_Rias:_Onyx
[Doki]_EVA:_Katsuragi_Misato
[Doki]_EVA:_Rei
[Doki]_EroManga:_Sagiri
[Doki]_Franxx:_Zero_Two_Dark
[Doki]_Franxx:_Zero_Two_Light
[Doki]_FutureDiary:_Gasai_Yuno
[Doki]_Gate:_Rory_Mercury
[Doki]_JahySama:_Jahy
[Doki]_Kakegurui:_Jabami_Yumeko
[Doki]_KillLaKill:_Ryuko_Dark
[Doki]_KillLaKill:_Ryuko_Light
[Doki]_KillLaKill:_Satsuki_Dark
[Doki]_KillLaKill:_Satsuki_Light
[Doki]_KonoSuba:_Aqua
[Doki]_KonoSuba:_Darkness_Dark
a.onji
ajaaibu
asiimov
celestial
color_blind_theme
dark-jeff
darkerla
deep-focus-theme
flat
foggy-night
hibNet_Midnight_Blue
jDark
jake-theme
macOSLight
macOS_Light
madrid
metalheart
minimal
naysayer88
nevaTheme
night-owl-native
nightfall
plaid
qubTheme
reykjavik
shirotelin
silkworm
soft-charcoal
spectre_theme
subtle-hacker-theme
theme-oldirony-dark
theme_eclipse
thursday
vuesion-theme
warm-night
white-sand
win10Light
xndlnk-monokai
{"blockSize":39,"length":18018,"version":"5744"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
1770239051000

View File

@@ -0,0 +1,3 @@
{
"dictionaries" : [ ]
}

View File

@@ -0,0 +1 @@
1749585903000

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
1770239060000

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
1764363862000

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
1761945432000

View File

@@ -0,0 +1,38 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
BigDecimal RES = 0
int i = 0
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
RES = RES.add(value, DECIMAL128)
i++
}
else if (value.toString().isBigDecimal()) {
RES = RES.add(value.toString().toBigDecimal(), DECIMAL128)
i++
}
}
}
if (i > 0) {
RES = RES.divide(i, DECIMAL128)
OUT.append(RES.toString())
}
else {
OUT.append("Not enough values")
}

View File

@@ -0,0 +1,53 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
def toBigDecimal = { value ->
value instanceof Number ? value as BigDecimal :
value.toString().isBigDecimal() ? value.toString() as BigDecimal :
null
}
def values = []
ROWS.each { row ->
COLUMNS.each { column ->
def bigDecimal = toBigDecimal(row.value(column))
if (bigDecimal != null) {
values.add(bigDecimal)
}
}
}
if (values.isEmpty()) {
OUT.append("Not enough values")
return
}
def sum = BigDecimal.ZERO
values.forEach { value ->
sum = sum.add(value, DECIMAL128)
}
def avg = sum.divide(values.size(), DECIMAL128)
def sumSquaredDiff = BigDecimal.ZERO
values.each { value ->
BigDecimal diff = value.subtract(avg, DECIMAL128)
sumSquaredDiff = sumSquaredDiff.add(diff.multiply(diff, DECIMAL128), DECIMAL128)
}
def variance = sumSquaredDiff.divide(values.size(), DECIMAL128)
def standardDeviation = variance.sqrt(DECIMAL128)
def cv = standardDeviation.divide(avg, DECIMAL128)
OUT.append((cv * 100).round(2) + "%")

View File

@@ -0,0 +1,15 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
OUT.append(COLUMNS.size().toString())

View File

@@ -0,0 +1,21 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
def RES = 0G
ROWS.each { row ->
COLUMNS.each { column ->
RES += 1
}
}
OUT.append(RES.toString())

View File

@@ -0,0 +1,27 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
def RES = 0G
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
RES += 1
}
else if (value.toString().isBigDecimal()) {
RES += 1
}
}
}
OUT.append(RES.toString())

View File

@@ -0,0 +1,32 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
values = new ArrayList<BigDecimal>()
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
values.add(value as BigDecimal)
}
else if (value.toString().isBigDecimal()) {
values.add(value.toString() as BigDecimal)
}
}
}
if (values.size() == 0) {
OUT.append("Not enough values")
return
}
OUT.append(Collections.max(values).toString())

View File

@@ -0,0 +1,42 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
def toBigDecimal = { value ->
value instanceof Number ? value as BigDecimal :
value.toString().isBigDecimal() ? value.toString() as BigDecimal :
null
}
def values = []
ROWS.each { row ->
COLUMNS.each { column ->
def bigDecimal = toBigDecimal(row.value(column))
if (bigDecimal != null) {
values.add(bigDecimal)
}
}
}
if (values.isEmpty()) {
OUT.append("Not enough values")
return
}
elementsNumber = values.size()
Collections.sort(values)
mid = (int)elementsNumber / 2
RES = elementsNumber % 2 != 0 ? values[mid] : values[mid].add(values[mid - 1], DECIMAL128).divide(2, DECIMAL128)
OUT.append(RES.toString())

View File

@@ -0,0 +1,31 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
values = new ArrayList<BigDecimal>()
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
values.add(value as BigDecimal)
}
else if (value.toString().isBigDecimal()) {
values.add(value.toString() as BigDecimal)
}
}
}
if (values.size() == 0) {
OUT.append("Not enough values")
return
}
OUT.append(Collections.min(values).toString())

View File

@@ -0,0 +1,15 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
OUT.append(ROWS.size().toString())

View File

@@ -0,0 +1,29 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
BigDecimal RES = 0
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
RES = RES.add(value, DECIMAL128)
}
else if (value.toString().isBigDecimal()) {
RES = RES.add(value.toString().toBigDecimal(), DECIMAL128)
}
}
}
OUT.append(RES.toString())

View File

@@ -0,0 +1,37 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEPARATOR = ","
QUOTE = "\""
NEWLINE = System.getProperty("line.separator")
def printRow = { values, valueToString ->
values.eachWithIndex { value, idx ->
def str = valueToString(value)
def q = str.contains(SEPARATOR) || str.contains(QUOTE) || str.contains(NEWLINE)
OUT.append(q ? QUOTE : "")
.append(str.replace(QUOTE, QUOTE + QUOTE))
.append(q ? QUOTE : "")
.append(idx != values.size() - 1 ? SEPARATOR : NEWLINE)
}
}
if (!TRANSPOSED) {
ROWS.each { row -> printRow(COLUMNS, { FORMATTER.format(row, it) }) }
}
else {
def values = COLUMNS.collect { new ArrayList<String>() }
ROWS.each { row -> COLUMNS.eachWithIndex { col, i -> values[i].add(FORMATTER.format(row, col)) } }
values.each { printRow(it, { it }) }
}

View File

@@ -0,0 +1,68 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static com.intellij.openapi.util.text.StringUtil.escapeXmlEntities
NEWLINE = System.getProperty("line.separator")
def HTML_PATTERN = ~"<.+>"
def printRow = { values, tag, valueToString ->
OUT.append("$NEWLINE<tr>$NEWLINE")
values.each {
def str = valueToString(it)
def escaped = str ==~ HTML_PATTERN
? str
: escapeXmlEntities((str as String).replaceAll("\\t|\\b|\\f", "")).replaceAll("\\r|\\n|\\r\\n", "<br/>")
OUT.append(" <$tag>$escaped</$tag>$NEWLINE")
}
OUT.append("</tr>")
}
OUT.append(
"""<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
</head>
<body>
<table border="1" style="border-collapse:collapse">
""")
OUT.append(" <colgroup>$NEWLINE")
// Make all columns same size in percentage
def colCount = COLUMNS.size()
def width = colCount > 0 ? 100.0 / colCount : 100.0
COLUMNS.each {
OUT.append(String.format(' <col width="%.2f%%"/>%s', width, NEWLINE))
}
OUT.append(" </colgroup>$NEWLINE")
if (!TRANSPOSED) {
printRow(COLUMNS, "th") { it.name() }
ROWS.each { row -> printRow(COLUMNS, "td") { FORMATTER.format(row, it) } }
}
else {
def values = COLUMNS.collect { new ArrayList<String>( [it.name()] ) }
ROWS.each { row -> COLUMNS.eachWithIndex { col, i -> values[i].add(FORMATTER.format(row, col)) } }
values.each { printRow(it, "td", { it }) }
}
OUT.append("""
</table>
</body>
</html>
""")

View File

@@ -0,0 +1,49 @@
function eachWithIdx(iterable, f) { var i = iterable.iterator(); var idx = 0; while (i.hasNext()) f(i.next(), idx++); }
function mapEach(iterable, f) { var vs = []; eachWithIdx(iterable, function (i) { vs.push(f(i));}); return vs; }
function escape(str) {
str = str.replace(/\t|\b|\f/g, "");
str = com.intellij.openapi.util.text.StringUtil.escapeXml(str);
str = str.replace(/\r|\n|\r\n/g, "<br/>");
return str;
}
var isHTML = RegExp.prototype.test.bind(/^<.+>$/);
var NEWLINE = "\n";
function output() { for (var i = 0; i < arguments.length; i++) { OUT.append(arguments[i]); } }
function outputRow(items, tag) {
output("<tr>");
for (var i = 0; i < items.length; i++)
output("<", tag, ">", isHTML(items[i]) ? items[i] : escape(items[i]), "</", tag, ">");
output("</tr>", NEWLINE);
}
output("<!DOCTYPE html>", NEWLINE,
"<html>", NEWLINE,
"<head>", NEWLINE,
"<title></title>", NEWLINE,
"<meta charset=\"UTF-8\">", NEWLINE,
"</head>", NEWLINE,
"<body>", NEWLINE,
"<table border=\"1\" style=\"border-collapse:collapse\">", NEWLINE);
if (TRANSPOSED) {
var values = mapEach(COLUMNS, function(col) { return [col.name()]; });
eachWithIdx(ROWS, function (row) {
eachWithIdx(COLUMNS, function (col, i) {
values[i].push(FORMATTER.format(row, col));
});
});
eachWithIdx(COLUMNS, function (_, i) { outputRow(values[i], "td"); });
}
else {
outputRow(mapEach(COLUMNS, function (col) { return col.name(); }), "th");
eachWithIdx(ROWS, function (row) {
outputRow(mapEach(COLUMNS, function (col) { return FORMATTER.format(row, col); }), "td")
});
}
output("</table>", NEWLINE,
"</body>", NEWLINE,
"</html>", NEWLINE);

View File

@@ -0,0 +1,70 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static com.intellij.openapi.util.text.StringUtil.escapeStringCharacters as escapeStr
NEWLINE = System.getProperty("line.separator")
INDENT = " "
def printJSON(level, col, o) {
switch (o) {
case null: OUT.append("null"); break
case Tuple: printJSON(level, o[0], o[1]); break
case Map:
OUT.append("{")
o.entrySet().eachWithIndex { entry, i ->
OUT.append("${i > 0 ? "," : ""}$NEWLINE${INDENT * (level + 1)}")
OUT.append("\"${escapeStr(entry.getKey().toString())}\"")
OUT.append(": ")
printJSON(level + 1, col, entry.getValue())
}
OUT.append("$NEWLINE${INDENT * level}}")
break
case Object[]:
case Iterable:
OUT.append("[")
def plain = true
o.eachWithIndex { item, i ->
plain = item == null || item instanceof Number || item instanceof Boolean || item instanceof String
if (plain) {
OUT.append(i > 0 ? ", " : "")
}
else {
OUT.append("${i > 0 ? "," : ""}$NEWLINE${INDENT * (level + 1)}")
}
printJSON(level + 1, col, item)
}
if (plain) OUT.append("]") else OUT.append("$NEWLINE${INDENT * level}]")
break
case Boolean: OUT.append("$o"); break
default:
def str = FORMATTER.formatValue(o, col)
def typeName = FORMATTER.getTypeName(o, col)
def shouldQuote = FORMATTER.isStringLiteral(o, col) && !(typeName.equalsIgnoreCase("json") || typeName.equalsIgnoreCase("jsonb"))
OUT.append(shouldQuote ? "\"${escapeStr(str)}\"" : str);
break
}
}
printJSON(0, null, ROWS.transform { row ->
def map = new LinkedHashMap<String, Object>()
COLUMNS.each { col ->
if (row.hasValue(col)) {
def val = row.value(col)
map.put(col.name(), new Tuple(col, val))
}
}
map
})

View File

@@ -0,0 +1,65 @@
package extensions.data.extractors
NEWLINE = System.getProperty("line.separator")
SEPARATOR = "|"
BACKSLASH = "\\"
BACKQUOTE = "`"
LTAG = "<"
RTAG = ">"
ASTERISK = "*"
UNDERSCORE = "_"
LPARENTH = "("
RPARENTH = ")"
LBRACKET = "["
RBRACKET = "]"
TILDE = "~"
def printRow = { values, firstBold = false, valueToString ->
values.eachWithIndex { value, idx ->
def str = valueToString(value)
.replace(BACKSLASH, BACKSLASH + BACKSLASH)
.replace(SEPARATOR, BACKSLASH + SEPARATOR)
.replace(BACKQUOTE, BACKSLASH + BACKQUOTE)
.replace(ASTERISK, BACKSLASH + ASTERISK)
.replace(UNDERSCORE, BACKSLASH + UNDERSCORE)
.replace(LPARENTH, BACKSLASH + LPARENTH)
.replace(RPARENTH, BACKSLASH + RPARENTH)
.replace(LBRACKET, BACKSLASH + LBRACKET)
.replace(RBRACKET, BACKSLASH + RBRACKET)
.replace(TILDE, BACKSLASH + TILDE)
.replace(LTAG, "&lt;")
.replace(RTAG, "&gt;")
.replaceAll("\r\n|\r|\n", "<br/>")
.replaceAll("\t|\b|\f", "")
OUT.append("| ")
.append(firstBold && idx == 0 ? "**" : "")
.append(str)
.append(firstBold && idx == 0 ? "**" : "")
.append(idx != values.size() - 1 ? " " : " |" + NEWLINE)
}
}
if (TRANSPOSED) {
def values = COLUMNS.collect { new ArrayList<String>([it.name()]) }
def rowCount = 0
ROWS.forEach { row ->
COLUMNS.eachWithIndex { col, i -> values[i].add(FORMATTER.format(row, col)) }
rowCount++
}
for (int i = 0; i <= rowCount; i++) {
OUT.append("| ")
}
OUT.append("|" + NEWLINE)
for (int i = 0; i <= rowCount; i++) {
OUT.append("| :- ")
}
OUT.append("|" + NEWLINE)
values.each { printRow(it, true) { it } }
}
else {
printRow(COLUMNS) { it.name() }
COLUMNS.each { OUT.append("| :--- ") }
OUT.append("|" + NEWLINE)
ROWS.each { row -> printRow(COLUMNS) { FORMATTER.format(row, it) } }
}

View File

@@ -0,0 +1,34 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEPARATOR = ", "
QUOTE = "'"
STRING_PREFIX = DIALECT.getDbms().isMicrosoft() ? "N" : ""
KEYWORDS_LOWERCASE = com.intellij.database.util.DbSqlUtil.areKeywordsLowerCase(PROJECT)
KW_NULL = KEYWORDS_LOWERCASE ? "null" : "NULL"
first = true
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
def stringValue = value == null ? KW_NULL : FORMATTER.formatValue(value, column)
def isStringLiteral = value != null && FORMATTER.isStringLiteral(value, column)
if (isStringLiteral && DIALECT.getDbms().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
OUT.append(first ? "" : SEPARATOR)
.append(isStringLiteral ? (STRING_PREFIX + QUOTE) : "")
.append(stringValue ? stringValue.replace(QUOTE, QUOTE + QUOTE) : stringValue)
.append(isStringLiteral ? QUOTE : "")
first = false
}
}

View File

@@ -0,0 +1,144 @@
import com.intellij.openapi.util.text.StringUtil
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
WIDTH_BASED_ON_CONTENT = -1
PIPE = "|"
SPACE = " "
CROSS = "+"
MINUS = "-"
ROW_SEPARATORS = false
COLUMN_WIDTH = WIDTH_BASED_ON_CONTENT
NEWLINE = System.getProperty("line.separator")
static def splitByLines(values, size) {
def splitValues = new ArrayList<>()
def maxLines = 0
for (int i = 0; i < size; i++) {
def splitValue = StringUtil.splitByLines(values(i))
splitValues.add(splitValue)
maxLines = Math.max(maxLines, splitValue.size())
}
def byLines = new ArrayList<>(maxLines)
for (int i = 0; i < maxLines; i++) {
def lineValues = new ArrayList<>()
byLines.add(lineValues)
for (int j = 0; j < splitValues.size(); j++) {
def splitValue = splitValues[j]
lineValues.add(splitValue.size() <= i ? null : splitValue[i])
}
}
return byLines
}
def printRow(values, size, width = { COLUMN_WIDTH }, padding = SPACE, separator = { PIPE }) {
def byLines = splitByLines(values, size)
byLines.each { line ->
def lineSize = line.size()
if (lineSize > 0) OUT.append(separator(-1))
for (int i = 0; i < lineSize; i++) {
def value = line[i] == null ? "" : line.get(i)
def curWidth = width(i)
OUT.append(value.padRight(curWidth, padding))
OUT.append(separator(i))
}
OUT.append(NEWLINE)
}
}
def printRows() {
def colNames = COLUMNS.collect { it.name() }
def calcWidth = COLUMN_WIDTH == WIDTH_BASED_ON_CONTENT
def rows
def width
def rowFormatter
if (calcWidth) {
rows = new ArrayList<>()
def widths = new int[COLUMNS.size()]
COLUMNS.eachWithIndex { column, idx -> widths[idx] = column.name().length() }
ROWS.each { row ->
def rowValues = COLUMNS.withIndex().collect { col, idx ->
def value = FORMATTER.format(row, col)
widths[idx] = Math.max(widths[idx], value.length())
value
}
rows.add(rowValues)
}
width = { widths[it] }
rowFormatter = { it }
}
else {
rows = ROWS
width = { COLUMN_WIDTH }
rowFormatter = { COLUMNS.collect { col -> FORMATTER.format(it, col) } }
}
printRow({""}, COLUMNS.size(), { width(it) }, MINUS) { CROSS }
printRow( { colNames[it] }, COLUMNS.size()) { width(it) }
def first = true
rows.each { row ->
def rowValues = rowFormatter(row)
if (first || ROW_SEPARATORS) printRow({""}, COLUMNS.size(), { width(it) }, MINUS) { first ? CROSS : MINUS }
printRow({ rowValues[it] }, rowValues.size()) { width(it) }
first = false
}
printRow({""}, COLUMNS.size(), { width(it) }, MINUS) { CROSS }
}
def printRowsTransposed() {
def calcWidth = COLUMN_WIDTH == WIDTH_BASED_ON_CONTENT
if (calcWidth) {
COLUMN_WIDTHS = new ArrayList<Integer>()
COLUMN_WIDTHS.add(0)
}
def valuesByRow = COLUMNS.collect { col ->
if (calcWidth) COLUMN_WIDTHS.set(0, Math.max(COLUMN_WIDTHS[0], col.name().length()))
new ArrayList<String>([col.name()])
}
def rowCount = 1
ROWS.each { row ->
rowCount++
COLUMNS.eachWithIndex { col, i ->
def formattedValue = FORMATTER.format(row, col)
valuesByRow[i].add(formattedValue)
def widthIdx = rowCount - 1
def length = formattedValue.length()
if (calcWidth) {
if (COLUMN_WIDTHS.size() == widthIdx) COLUMN_WIDTHS.add(length)
COLUMN_WIDTHS.set(widthIdx, Math.max(COLUMN_WIDTHS[widthIdx], length))
}
}
}
valuesByRow.each { row ->
printRow({ "" }, rowCount, { calcWidth ? COLUMN_WIDTHS[it] : COLUMN_WIDTH }, MINUS) {
it <= 0 ? CROSS : it == rowCount - 1 ? CROSS : MINUS
}
printRow({ row[it] }, row.size()) { calcWidth ? COLUMN_WIDTHS[it] : COLUMN_WIDTH }
}
printRow({ "" }, rowCount, { calcWidth ? COLUMN_WIDTHS[it] : COLUMN_WIDTH }, MINUS) {
it <= 0 ? CROSS : it == rowCount - 1 ? CROSS : MINUS
}
}
if (TRANSPOSED) {
printRowsTransposed()
}
else {
printRows()
}

View File

@@ -0,0 +1,62 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEP = ", "
QUOTE = "\'"
STRING_PREFIX = DIALECT.getDbms().isMicrosoft() ? "N" : ""
NEWLINE = System.getProperty("line.separator")
KEYWORDS_LOWERCASE = com.intellij.database.util.DbSqlUtil.areKeywordsLowerCase(PROJECT)
KW_INSERT_INTO = KEYWORDS_LOWERCASE ? "insert into " : "INSERT INTO "
KW_VALUES = KEYWORDS_LOWERCASE ? "values" : "VALUES"
KW_NULL = KEYWORDS_LOWERCASE ? "null" : "NULL"
begin = true
def record(columns, dataRow) {
if (begin) {
OUT.append(KW_INSERT_INTO)
if (TABLE == null) OUT.append("MY_TABLE")
else OUT.append(TABLE.getParent().getName()).append(".").append(TABLE.getName())
OUT.append(" (")
columns.eachWithIndex { column, idx ->
OUT.append(column.name()).append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(")").append(NEWLINE)
OUT.append(KW_VALUES).append(" (")
begin = false
}
else {
OUT.append(",").append(NEWLINE)
OUT.append(" (")
}
columns.eachWithIndex { column, idx ->
def value = dataRow.value(column)
def stringValue = value == null ? KW_NULL : FORMATTER.formatValue(value, column)
def isStringLiteral = value != null && FORMATTER.isStringLiteral(value, column)
if (isStringLiteral && DIALECT.getDbms().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
OUT.append(isStringLiteral ? (STRING_PREFIX + QUOTE) : "")
.append(stringValue ? stringValue.replace(QUOTE, QUOTE + QUOTE) : stringValue)
.append(isStringLiteral ? QUOTE : "")
.append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(")")
}
ROWS.each { row -> record(COLUMNS, row) }
OUT.append(";")

View File

@@ -0,0 +1,49 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEP = ", "
QUOTE = "\'"
STRING_PREFIX = DIALECT.getDbms().isMicrosoft() ? "N" : ""
NEWLINE = System.getProperty("line.separator")
KEYWORDS_LOWERCASE = com.intellij.database.util.DbSqlUtil.areKeywordsLowerCase(PROJECT)
KW_INSERT_INTO = KEYWORDS_LOWERCASE ? "insert into " : "INSERT INTO "
KW_VALUES = KEYWORDS_LOWERCASE ? ") values (" : ") VALUES ("
KW_NULL = KEYWORDS_LOWERCASE ? "null" : "NULL"
def record(columns, dataRow) {
OUT.append(KW_INSERT_INTO)
if (TABLE == null) OUT.append("MY_TABLE")
else OUT.append(TABLE.getParent().getName()).append(".").append(TABLE.getName())
OUT.append(" (")
columns.eachWithIndex { column, idx ->
OUT.append(column.name()).append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(KW_VALUES)
columns.eachWithIndex { column, idx ->
def value = dataRow.value(column)
def stringValue = value == null ? KW_NULL : FORMATTER.formatValue(value, column)
def isStringLiteral = value != null && FORMATTER.isStringLiteral(value, column)
if (isStringLiteral && DIALECT.getDbms().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
OUT.append(isStringLiteral ? (STRING_PREFIX + QUOTE) : "")
.append(isStringLiteral ? stringValue.replace(QUOTE, QUOTE + QUOTE) : stringValue)
.append(isStringLiteral ? QUOTE : "")
.append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(");").append(NEWLINE)
}
ROWS.each { row -> record(COLUMNS, row) }

View File

@@ -0,0 +1,93 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import com.intellij.openapi.util.text.StringUtil
import java.util.regex.Pattern
NEWLINE = System.getProperty("line.separator")
pattern = Pattern.compile("[^\\w\\d]")
def escapeTag(name) {
name = pattern.matcher(name).replaceAll("_")
return name.isEmpty() || !Character.isLetter(name.charAt(0)) ? "_$name" : name
}
def printRow(level, rowTag, values) {
def prefix = "$NEWLINE${StringUtil.repeat(" ", level)}"
OUT.append("$prefix<$rowTag>")
values.each { name, col, valuesName, value ->
switch (value) {
case Map:
def mapValues = new ArrayList<Tuple>()
value.each { key, v -> mapValues.add(new Tuple(escapeTag(key.toString()), col, key.toString(), v)) }
printRow(level + 1, name, mapValues)
break
case Object[]:
case Iterable:
def listItems = new ArrayList<Tuple>()
def itemName = valuesName != null ? escapeTag(StringUtil.unpluralize(valuesName) ?: "item") : "item"
value.collect { v -> listItems.add(new Tuple(itemName, col, null, v)) }
printRow(level + 1, name, listItems)
break
default:
OUT.append("$prefix <$name>")
if (value == null) OUT.append("null")
else {
def formattedValue = FORMATTER.formatValue(value, col)
if (isXmlString(formattedValue)) OUT.append(formattedValue)
else OUT.append(StringUtil.escapeXmlEntities(formattedValue))
}
OUT.append("</$name>")
}
}
OUT.append("$prefix</$rowTag>")
}
def isXmlString(string) {
return string.startsWith("<") && string.endsWith(">") && (string.contains("</") || string.contains("/>"))
}
OUT.append(
"""<?xml version="1.0" encoding="UTF-8"?>
<data>""")
if (!TRANSPOSED) {
ROWS.each { row ->
def values = COLUMNS
.findAll { col -> row.hasValue(col) }
.collect { col ->
new Tuple(escapeTag(col.name()), col, col.name(), row.value(col))
}
printRow(0, "row", values)
}
}
else {
def values = COLUMNS.collect { new ArrayList<Tuple>() }
ROWS.eachWithIndex { row, rowIdx ->
COLUMNS.eachWithIndex { col, colIdx ->
if (row.hasValue(col)) {
def value = row.value(col)
values[colIdx].add(new Tuple("row${rowIdx + 1}", col, col.name(), value))
}
}
}
values.eachWithIndex { it, index ->
printRow(0, escapeTag(COLUMNS[index].name()), it)
}
}
OUT.append("""
</data>
""")

View File

@@ -0,0 +1,160 @@
// IJ: extensions = json displayName = JSON tableFirstFormat=false
package extensions.data.loaders
@Grab("com.fasterxml.jackson.core:jackson-core:2.16.1")
@Grab("com.fasterxml.jackson.core:jackson-databind:2.16.1")
import com.fasterxml.jackson.core.*
import com.fasterxml.jackson.databind.ObjectMapper
LOADER.load { ctx ->
loadJson(ctx.getParameters()["FILE"], ctx.getDataConsumer())
}
def loadJson(path, dataConsumer) {
new ObjectMapper().createParser(new File(path)).withCloseable { reader ->
def tok = reader.nextToken()
if (tok == null) return
switch(tok) {
case JsonToken.START_OBJECT:
processMapAsRows(reader, dataConsumer)
break
case JsonToken.START_ARRAY:
processArrayAsRows(reader, dataConsumer)
break
default:
processValueAsRows(reader, dataConsumer)
break
}
}
}
def nextAnyValue(reader) {
reader.nextToken()
return readAnyValue(reader)
}
def readAnyValue(reader) {
def tok = reader.currentToken()
switch (tok) {
case JsonToken.START_OBJECT:
case JsonToken.START_ARRAY:
return reader.readValueAsTree()
default:
return reader.getText()
}
}
def processMapAsRows(reader, dataConsumer) {
while (true) {
def name = reader.nextFieldName()
if (name == null) break
def value = nextAnyValue(reader)
dataConsumer.consume(name, value)
}
}
def processArrayAsRows(reader, dataConsumer) {
def tok = reader.nextToken()
switch(tok) {
case JsonToken.START_OBJECT:
processArrayOfMapsAsRows(reader, dataConsumer)
break
case JsonToken.START_ARRAY:
processArrayOfArraysAsRows(reader, dataConsumer)
break
default:
processArrayOfValuesAsRows(reader, dataConsumer)
break
}
}
def processArrayOfXAsRows(reader, dataConsumer, X) {
while (true) {
def tok = reader.currentToken()
if (tok == null || tok == JsonToken.END_ARRAY) {
return
}
dataConsumer.consume(X())
reader.nextToken()
}
}
def processArrayOfArraysAsRows(reader, dataConsumer) {
processArrayOfXAsRows(reader, dataConsumer) {
extractArrayRow(reader).toArray()
}
}
def processArrayOfValuesAsRows(reader, dataConsumer) {
processArrayOfXAsRows(reader, dataConsumer) {
new Object[]{ readAnyValue(reader) }
}
}
def processArrayOfMapsAsRows(reader, dataConsumer) {
def colIdx = new HashMap<String, Integer>()
def processor = { extractMapRow(reader, colIdx).toArray() }
def row = processor()
def names = new ArrayList()
def types = new ArrayList()
colIdx.forEach { key, value ->
addValue(names, key, value)
addValue(types, row[value]?.getClass(), value)
}
dataConsumer.consumeColumns(names.toArray(new String[0]), types.toArray(new Class[0]))
dataConsumer.consume(row)
reader.nextToken()
processArrayOfXAsRows(reader, dataConsumer, processor)
}
def processValueAsRows(reader, dataConsumer) {
def value = nextAnyValue(reader)
dataConsumer.consume(name, value)
}
def extractArrayRow(reader) {
def res = new ArrayList()
if (reader.currentToken() != JsonToken.START_ARRAY) {
res.add(readAnyValue(reader))
return res
}
while (true) {
def tok = reader.nextToken()
if (tok == null || tok == JsonToken.END_ARRAY) {
return res
}
res.add(readAnyValue(reader))
}
}
def extractMapRow(reader, Map<String, Integer> colIdx) {
def res = new ArrayList(colIdx.size())
if (reader.currentToken() != JsonToken.START_OBJECT) {
res.add(readAnyValue(reader))
return res
}
while (true) {
def tok = reader.nextToken()
if (tok == null || tok == JsonToken.END_OBJECT) {
return res
}
def name = reader.getCurrentName()
def value = nextAnyValue(reader)
addValue(res, value, getOrAllocateIdx(name, colIdx))
}
}
int getOrAllocateIdx(String name, Map<String, Integer> colIdx) {
def idx = colIdx[name]
if (idx == null) {
idx = colIdx.size()
colIdx[name] = idx
}
return idx
}
def addValue(List res, value, int idx) {
while (res.size() < idx) res.add(null)
res[idx] = value
}

View File

@@ -0,0 +1,66 @@
// IJ: extensions = xls;xlsx displayName = XLS
package extensions.data.loaders
@Grab('org.apache.poi:poi:5.4.0')
@Grab('org.apache.poi:poi-ooxml:5.4.0')
import org.apache.poi.ss.usermodel.CellType
import org.apache.poi.ss.usermodel.WorkbookFactory
LOADER.load { ctx ->
loadXls(ctx.getParameters()["FILE"], ctx.getDataConsumer())
}
def loadXls(path, dataConsumer) {
def wb = WorkbookFactory.create(new File(path))
def evaluator = wb.getCreationHelper().createFormulaEvaluator();
def sheet = wb.getSheetAt(0)
produceSheet(sheet, evaluator, dataConsumer)
}
private void produceSheet(sheet, evaluator, dataConsumer) {
def idx = 0
sheet.forEach { row ->
def res = extractRow(row, evaluator)
if (!res.isEmpty()) {
def cur = row.getRowNum()
while (idx < cur - 1) {
dataConsumer.consume(new Object[0])
++idx
}
idx = cur
dataConsumer.consume(res.toArray())
}
}
}
private List<Object> extractRow(row, evaluator) {
def res = new ArrayList<Object>()
row.forEach { cell ->
def cur = cell.getColumnIndex()
while (res.size() < cur) {
res.add(null)
}
def v = evaluator.evaluate(cell)
def rv = cellVal(v)
res.add(rv)
}
res
}
def cellVal(cell) {
if (cell == null) return null
switch (cell.getCellType()) {
case CellType.BOOLEAN:
return cell.getBooleanValue()
case CellType.STRING:
return cell.getStringValue()
case CellType.NUMERIC:
return cell.getNumberValue()
case CellType.BLANK:
return null
default:
return cell.formatAsString()
}
}

View File

@@ -0,0 +1,53 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.DasUtil
import com.intellij.database.util.ObjectPath
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileScope { path -> fileScope(path) }
def baseName(obj) {
def db = DasUtil.getCatalog(obj)
def schema = DasUtil.getSchema(obj)
def file = fileName(obj)
if (db.isEmpty()) {
if (!schema.isEmpty()) return "anonymous/" + sanitize(schema) + "/" + file
return file
}
else if (schema.isEmpty()) {
return sanitize(db) + "/" + file
}
else {
return sanitize(db) + "/" + sanitize(schema) + "/" + file
}
}
def fileName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def fileScope(path) {
def root = path.getName(0).toString()
if (root.endsWith(".sql")) return null
def next = path.getName(1).toString()
if (next.endsWith(".sql")) {
if (root == "anonymous") return null
return ObjectPath.create(root, ObjectKind.DATABASE)
}
if (root == "anonymous") return ObjectPath.create(next, ObjectKind.SCHEMA)
return ObjectPath.create(root, ObjectKind.DATABASE).append(next, ObjectKind.SCHEMA)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,42 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.DasUtil
import com.intellij.database.util.ObjectPath
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileScope { path -> fileScope(path) }
def baseName(obj) {
def schema = DasUtil.getSchema(obj)
def file = fileName(obj)
if (schema.isEmpty()) {
return file
}
else {
return sanitize(schema) + "/" + obj.kind.code() + "/" + file
}
}
def fileName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def fileScope(path) {
def root = path.getName(0).toString()
if (root.endsWith(".sql")) return null
return ObjectPath.create(root, ObjectKind.SCHEMA)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,42 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.DasUtil
import com.intellij.database.util.ObjectPath
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileScope { path -> fileScope(path) }
def baseName(obj) {
def schema = DasUtil.getSchema(obj)
def file = fileName(obj)
if (schema.isEmpty()) {
return file
}
else {
return sanitize(schema) + "/" + file
}
}
def fileName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def fileScope(path) {
def root = path.getName(0).toString()
if (root.endsWith(".sql")) return null
return ObjectPath.create(root, ObjectKind.SCHEMA)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,21 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileName { ctx -> String.format("%03d-%s.sql", ctx.count, ctx.baseName) }
def baseName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,21 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
def baseName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,74 @@
import com.intellij.database.model.DasTable
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
/*
* Available context bindings:
* SELECTION Iterable<DasObject>
* PROJECT project
* FILES files helper
*/
packageName = "com.sample;"
typeMapping = [
(~/(?i)int/) : "long",
(~/(?i)float|double|decimal|real/): "double",
(~/(?i)datetime|timestamp/) : "java.sql.Timestamp",
(~/(?i)date/) : "java.sql.Date",
(~/(?i)time/) : "java.sql.Time",
(~/(?i)/) : "String"
]
FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->
SELECTION.filter { it instanceof DasTable }.each { generate(it, dir) }
}
def generate(table, dir) {
def className = javaName(table.getName(), true)
def fields = calcFields(table)
new File(dir, className + ".java").withPrintWriter { out -> generate(out, className, fields) }
}
def generate(out, className, fields) {
out.println "package $packageName"
out.println ""
out.println ""
out.println "public class $className {"
out.println ""
fields.each() {
if (it.annos != "") out.println " ${it.annos}"
out.println " private ${it.type} ${it.name};"
}
out.println ""
fields.each() {
out.println ""
out.println " public ${it.type} get${it.name.capitalize()}() {"
out.println " return ${it.name};"
out.println " }"
out.println ""
out.println " public void set${it.name.capitalize()}(${it.type} ${it.name}) {"
out.println " this.${it.name} = ${it.name};"
out.println " }"
out.println ""
}
out.println "}"
}
def calcFields(table) {
DasUtil.getColumns(table).reduce([]) { fields, col ->
def spec = Case.LOWER.apply(col.getDasType().getSpecification())
def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value
fields += [[
name : javaName(col.getName(), false),
type : typeStr,
annos: ""]]
}
}
def javaName(str, capitalize) {
def s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str)
.collect { Case.LOWER.apply(it).capitalize() }
.join("")
.replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/, "_")
capitalize || s.length() == 1? s : Case.LOWER.apply(s[0]) + s[1..-1]
}

View File

@@ -0,0 +1,3 @@
#Fri Feb 27 14:58:15 MSK 2026
checker-qual-3.42.0.jar>central=
checker-qual-3.42.0.pom>central=

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>3.42.0</version>
<name>Checker Qual</name>
<description>checker-qual contains annotations (type qualifiers) that a programmer
writes to specify Java code for type-checking by the Checker Framework.
</description>
<url>https://checkerframework.org/</url>
<licenses>
<license>
<name>The MIT License</name>
<url>http://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>mernst</id>
<name>Michael Ernst</name>
<email>mernst@cs.washington.edu</email>
<url>https://homes.cs.washington.edu/~mernst/</url>
<organization>University of Washington</organization>
<organizationUrl>https://www.cs.washington.edu/</organizationUrl>
</developer>
<developer>
<id>smillst</id>
<name>Suzanne Millstein</name>
<email>smillst@cs.washington.edu</email>
<organization>University of Washington</organization>
<organizationUrl>https://www.cs.washington.edu/</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/typetools/checker-framework.git</connection>
<developerConnection>scm:git:ssh://git@github.com/typetools/checker-framework.git</developerConnection>
<url>https://github.com/typetools/checker-framework.git</url>
</scm>
</project>

View File

@@ -0,0 +1,3 @@
#Fri Feb 27 14:58:15 MSK 2026
postgresql-42.7.3.jar>central=
postgresql-42.7.3.pom>central=

View File

@@ -0,0 +1 @@
24f3e9f7231428cd20eb4dde00dd3fce44e05464

View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.3</version>
<name>PostgreSQL JDBC Driver</name>
<description>PostgreSQL JDBC Driver Postgresql</description>
<url>https://jdbc.postgresql.org</url>
<inceptionYear>1997</inceptionYear>
<organization>
<name>PostgreSQL Global Development Group</name>
<url>https://jdbc.postgresql.org/</url>
</organization>
<licenses>
<license>
<name>BSD-2-Clause</name>
<url>https://jdbc.postgresql.org/about/license.html</url>
<distribution>repo</distribution>
<comments>BSD-2-Clause, copyright PostgreSQL Global Development Group</comments>
</license>
</licenses>
<developers>
<developer>
<id>davecramer</id>
<name>Dave Cramer</name>
</developer>
<developer>
<id>jurka</id>
<name>Kris Jurka</name>
</developer>
<developer>
<id>oliver</id>
<name>Oliver Jowett</name>
</developer>
<developer>
<id>ringerc</id>
<name>Craig Ringer</name>
</developer>
<developer>
<id>vlsi</id>
<name>Vladimir Sitnikov</name>
</developer>
<developer>
<id>bokken</id>
<name>Brett Okken</name>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>PostgreSQL JDBC development list</name>
<subscribe>https://lists.postgresql.org/</subscribe>
<unsubscribe>https://lists.postgresql.org/unsubscribe/</unsubscribe>
<post>pgsql-jdbc@postgresql.org</post>
<archive>https://www.postgresql.org/list/pgsql-jdbc/</archive>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:https://github.com/pgjdbc/pgjdbc.git</connection>
<developerConnection>scm:git:https://github.com/pgjdbc/pgjdbc.git</developerConnection>
<url>https://github.com/pgjdbc/pgjdbc</url>
</scm>
<issueManagement>
<system>GitHub issues</system>
<url>https://github.com/pgjdbc/pgjdbc/issues</url>
</issueManagement>
<dependencies>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>3.42.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.2</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.github.waffle</groupId>
<artifactId>waffle-jna</artifactId>
<version>1.9.1</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1 @@
eb8bced9ab0f68cea206a218d8bf5d8d1c297133

View File

@@ -0,0 +1,30 @@
BSD 2-clause "Simplified" License
The PostgreSQL JDBC Driver is distributed under the BSD-2-Clause License.
The simplest explanation of the licensing terms is that you can do whatever you want with the product
and source code as long as you don't claim you wrote it or sue us.
You should give it a read though, it's only half a page.
Copyright (c) 1997, PostgreSQL Global Development Group
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,6 @@
<application>
<component name="AIOnboardingPromoWindowAdvisor">
<option name="attempts" value="1" />
<option name="shouldShowNextTime" value="NO" />
</component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="CommonFeedbackSurveyService"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="DontShowAgainFeedbackService"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,12 @@
<application>
<component name="EventLogAllowedList">
<options recorder-id="ML">
<option name="cloud_logs_share" value="1" />
<option name="groupAlertThreshold" value="6000" />
<option name="local_logs_share" value="1" />
<option name="dataThreshold" value="15000" />
<option name="groupDataThreshold" value="10000" />
<option name="basic_logs" value="analyzed_triggered_filters,cache_extension_length,cache_hit_length,cloud_filter_model_probability,cloud_filter_model_response_type,completion_client,context_assemble_time,editor_type,experiment_group,file_language,fim_cache_hit,fim_cache_line_difference,fim_context_size,final_proposal_length,final_proposal_line,finish_type,first_proposal_len_generated,full_inference_time,full_insert_actions,generated_proposals,generation_id,incompatible_ux_mode,inline_api_provider,invalidation_event,lines_count,local_filter_model_pass,local_filter_model_response,local_filter_model_score,local_filter_model_time,next_line_actions,next_word_actions,proposal_id,proposal_length,proposal_next_line_similarity,proposal_prev_line_similarity,rag_context_computation_time,rag_context_size,rag_suggestion_similarity,raw_triggered_filters,received_proposal_length,received_proposal_lines,recent_context_computation_time,recent_context_number_of_chunks,recent_context_size,request_id,result_proposals,semantic_state,showing_time,silent_completion,time_to_start_showing,total_inserted_length,total_inserted_lines,used_generation_id,was_shown" />
</options>
</component>
</application>

View File

@@ -0,0 +1,109 @@
<application>
<component name="ActionsLocalSummary">
<e n="$SelectAll">
<i c="19" l="1772196196626" />
</e>
<e n="$Undo">
<i c="2" l="1772194009920" />
</e>
<e n="CommentByLineComment">
<i c="13" l="1772195196468" />
</e>
<e n="Console.Jdbc.Execute">
<i c="15" l="1772196197531" />
</e>
<e n="DatabaseView.AddActionGroupPopup">
<i c="1" l="1772193416666" />
</e>
<e n="EditorBackSpace">
<i c="280" l="1772198245836" />
</e>
<e n="EditorChooseLookupItem">
<i c="1" l="1772194629307" />
</e>
<e n="EditorChooseLookupItemReplace">
<i c="140" l="1772196191579" />
</e>
<e n="EditorCopy">
<i c="8" l="1772196106043" />
</e>
<e n="EditorCut">
<i c="2" l="1772196149223" />
</e>
<e n="EditorDeleteToWordStart">
<i c="20" l="1772196176872" />
</e>
<e n="EditorDown">
<i c="46" l="1772198219190" />
</e>
<e n="EditorDuplicate">
<i c="2" l="1772194479739" />
</e>
<e n="EditorEnter">
<i c="104" l="1772198244096" />
</e>
<e n="EditorEscape">
<i c="7" l="1772196028386" />
</e>
<e n="EditorLeft">
<i c="32" l="1772196162894" />
</e>
<e n="EditorNextWord">
<i c="8" l="1772196164954" />
</e>
<e n="EditorPaste">
<i c="21" l="1772196149668" />
</e>
<e n="EditorPreviousWord">
<i c="6" l="1772196167184" />
</e>
<e n="EditorRight">
<i c="26" l="1772195856401" />
</e>
<e n="EditorScrollDown">
<i c="1" l="1772195194032" />
</e>
<e n="EditorStartNewLine">
<i c="17" l="1772198238047" />
</e>
<e n="EditorToggleInsertState">
<i c="2" l="1772195872374" />
</e>
<e n="EditorUp">
<i c="15" l="1772198237727" />
</e>
<e n="ExpandAllRegions">
<i c="3" l="1772193968061" />
</e>
<e n="ExpandRegion">
<i c="2" l="1772193967611" />
</e>
<e n="Jdbc.OpenConsole.New.Generate">
<i c="1" l="1772195147371" />
</e>
<e n="Runner.CloseView">
<i c="1" l="1772194740354" />
</e>
<e n="SearchEverywhere">
<i c="1" l="1772194659977" />
</e>
<e n="ShowSettings">
<i c="2" l="1772193968648" />
</e>
<e n="WelcomeScreen.CreateDirectoryProject">
<i c="1" l="1772193290816" />
</e>
<e n="com.intellij.database.dataSource.LocalDataSourceManager$3">
<i c="1" l="1772193421872" />
</e>
<e n="com.intellij.ide.startup.importSettings.chooser.productChooser.SkipImportAction">
<i c="1" l="1772193284396" />
</e>
<e n="com.intellij.openapi.project.DumbAwareAction$SimpleDumbAwareAction">
<i c="1" l="1772194660854" />
</e>
<e n="com.intellij.toolWindow.ToolWindowHeader$HideAction">
<i c="3" l="1772196207626" />
</e>
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="EditorColorsManagerImpl">
<global_color_scheme name="Islands Dark" />
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="ConsoleFont">
<option name="VERSION" value="1" />
</component>
</application>

View File

@@ -0,0 +1,57 @@
<application>
<component name="CsvSettings" version="1">
<csv-formats>
<csv-format name="CSV" id="Comma-separated (CSV)_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator="," recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
<csv-format name="TSV" id="Tab-separated (TSV)_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator="&#9;" recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
<csv-format name="Pipe-separated" id="Pipe-separated_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator="|" recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
<csv-format name="Semicolon-separated" id="Semicolon-separated_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator=";" recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
</csv-formats>
</component>
<component name="ScriptedLoadersAssociations">
<extensions>
<set>
<option value="json" />
<option value="parquet" />
<option value="shp" />
<option value="xls" />
<option value="xlsx" />
</set>
</extensions>
</component>
</application>

View File

@@ -0,0 +1,9 @@
<application>
<component name="com.intellij.ide.ui.customization.CustomActionsSchema">
<group value="TopStripeActionGroup" is_action="true" action_type="1" position="0">
<path value="root" />
<path value="Main Toolbar" />
<path value="Center" />
</group>
</component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="DataGridAppearanceSettingsImpl" version="1" />
</application>

View File

@@ -0,0 +1,7 @@
<application>
<component name="LocalDatabaseDriverManager" version="201">
<driver id="postgresql">
<artifact id="PostgreSQL" name="PostgreSQL" use="true" version="42.7.3" />
</driver>
</component>
</application>

View File

@@ -0,0 +1,58 @@
<application>
<component name="DatabaseSettings" version="10">
<text-mode>
<parameter-patterns>
<parameter-pattern value="#(\w+)#" in-scripts="true" scope="XML" predefined="#name#" />
<parameter-pattern value="(?&lt;=\W|\A)\$(\d+|[a-zA-Z_](?:\w|\.)*)\$?(?=\W|\z)" in-scripts="true" scope="*,-SQL" predefined="$a.b.c$?" />
<parameter-pattern value="(?&lt;=\W|\A)#(\d+|[a-zA-Z_](?:\w|\.)*)#?(?=\W|\z)" in-scripts="true" scope="*,-SQL" predefined="#a.b.c#?" />
<parameter-pattern value="%\((\w+)\)s" in-scripts="true" scope="Python" predefined="%(name)s" />
<parameter-pattern value="%\w+" in-scripts="true" scope="JAVA,Python,PHP" predefined="%name" />
<parameter-pattern value="\:\'.*\'" in-scripts="true" scope="PostgreSQL" predefined=":'name'" />
<parameter-pattern value="\$\{([^\{\}]*)\}" in-scripts="true" predefined="${name}" />
<parameter-pattern value="\$\(([^\)]+)\)" in-scripts="true" predefined="$(name)" />
</parameter-patterns>
</text-mode>
<csv-formats>
<csv-format name="CSV" id="Comma-separated (CSV)_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator="," recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
<csv-format name="TSV" id="Tab-separated (TSV)_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator="&#9;" recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
<csv-format name="Pipe-separated" id="Pipe-separated_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator="|" recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
<csv-format name="Semicolon-separated" id="Semicolon-separated_id">
<data>
<record-format prefix="" suffix="" nullText="" quotationPolicy="as needed" valueSeparator=";" recordSeparator="&#10;">
<quotation>
<quotes left="&quot;" right="&quot;" leftEscaped="&quot;&quot;" rightEscaped="&quot;&quot;" />
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
</quotation>
</record-format>
</data>
</csv-format>
</csv-formats>
</component>
</application>

View File

@@ -0,0 +1,6 @@
<application>
<component name="XDebuggerSettings">
<data-views />
<general />
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="ExternalDiffSettings">
<option name="MIGRATE_OLD_SETTINGS" value="true" />
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="DefaultFont">
<option name="VERSION" value="1" />
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="CodeInsightSettings">
<option name="REFORMAT_ON_PASTE" value="1" />
</component>
</application>

View File

@@ -0,0 +1,118 @@
<application>
<component name="FeatureUsageStatistics" first-run="1772193290748" have-been-shown="false" show-in-other="true" show-in-compilation="true">
<feature id="editing.completion.camelHumps" count="1" last-shown="0" last-used="1772195174491" shown-count="0" />
<feature id="codeassists.surroundwith.statement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.file.line" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.symbol" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="switcher" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.replace" count="140" last-shown="1772193978080" last-used="1772196191593" shown-count="1" />
<feature id="codeassists.complete.statement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.show.quick.list" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.convert.line.separators" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.console.execute" count="15" last-shown="0" last-used="1772196197546" shown-count="0" />
<feature id="navigation.recent.files" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="scratch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.pull.requests" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.annotate" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.open.last.tool.window" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.reformat.code" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.show.liveTemplates" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.copy.line" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.find.in.files" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.copy.table" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.hide.tool.window" count="3" last-shown="0" last-used="1772196207633" shown-count="0" />
<feature id="navigation.find.replace.in.files.toggle" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="intentions.check.regexp" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="profiler.open.snapshot" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.comment.line" count="13" last-shown="0" last-used="1772195196470" shown-count="0" />
<feature id="SearchEverywhere" count="1" last-shown="0" last-used="1772194660192" shown-count="0" />
<feature id="editor.delete.line" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.inheritance.hierarchy" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.duplicate" count="2" last-shown="0" last-used="1772194479742" shown-count="0" />
<feature id="editing.copy.reference" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.find" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickdefinition" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.basic" count="1" last-shown="0" last-used="1772194629321" shown-count="0" />
<feature id="editing.completion.postfix" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="dir.diff" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.recent.locations" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.select.word" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.close.other.editors" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="debugger.evaluate.expression" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.highlight.usages" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="debugger.breakpoint.edit" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassist.inspect.batch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.table.editor" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.liveTemplates" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.usages" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="intentions.edit.regexp" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickdefinition.lookup" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.find.usages" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.clipboard.history" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.compare.editor.with.clipboard" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.rename" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.action" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.show.quick.list" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.forget.cached.schemas" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.cancelByControlArrows" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="find.recent.search" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.inspection" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.show.local.history" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.use.integration" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.file" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.overrideimplement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.console.run.intention" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.diff" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.close.all.editors" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.wildcards" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.introduceVariable" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.extractMethod" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.generate.code" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.declaration" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.finishByDotEtc" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.open.project.tool.window" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.join.lines" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="debugger.breakpoint.non.suspending" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.finishByCtrlDot" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.context.actions" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.select.in" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.tree.speedsearch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.horizontal.scrolling" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.replace" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.camelprefix" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.class" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.parameterInfo" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.table.editor.wrapper" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="find.completion" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="tag.name.completion" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.introduceVariable.incompleteStatement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.readonly.datasource" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.compare.file.versions" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.find.replace.toggle" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.add.carets.using.double.ctrl" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.console" count="1" last-shown="0" last-used="1772195147410" shown-count="0" />
<feature id="codeassists.quickjavadoc.lookup" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.scheme.quickswitch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.replace.in.files" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.file.structure" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickjavadoc.ctrln" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickjavadoc" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.recentchanges" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.move.statement.up.down" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.changeSorting" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.assign.color" count="0" last-shown="0" last-used="0" shown-count="0" />
<completionStatsTag>
<option name="sparedCharacters" value="796" />
<option name="invocations" value="124" />
<option name="startDate" value="1772139600000" />
<option name="dayCount" value="1" />
<option name="lastDate" value="1772139600000" />
</completionStatsTag>
<fixesStatsTag>
<option name="invocations" value="5" />
<option name="startDate" value="1772139600000" />
<option name="dayCount" value="1" />
<option name="lastDate" value="1772139600000" />
</fixesStatsTag>
</component>
</application>

View File

@@ -0,0 +1,7 @@
<application>
<component name="FindSettings">
<mask>*.css</mask>
<mask>*.html</mask>
<mask>*.xml</mask>
</component>
</application>

View File

@@ -0,0 +1,19 @@
<application>
<component name="GraziConfig">
<option name="userDisabledRules">
<set>
<option value="LanguageTool.EN.OXFORD_SPELLING_Z_NOT_S" />
<option value="LanguageTool.EN.OXFORD_SPELLING_GRAM" />
</set>
</option>
<option name="detectionContext">
<State>
<option name="disabled">
<set>
<option value="RUSSIAN" />
</set>
</option>
</State>
</option>
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="GeneralLocalSettings">
<option name="defaultProjectDirectory" />
</component>
</application>

View File

@@ -0,0 +1,6 @@
<application>
<component name="Registry">
<entry key="moved.to.new.ui" value="true" source="SYSTEM" />
<entry key="ide.experimental.ui" value="true" source="SYSTEM" />
</component>
</application>

View File

@@ -0,0 +1,12 @@
<application>
<component name="TimeBetweenTyping">
<dailyDataMap>
<entry key="2026-02-27">
<DailyData>
<option name="count" value="1387" />
<option name="totalTime" value="1124893" />
</DailyData>
</entry>
</dailyDataMap>
</component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="Logs.Categories"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,46 @@
<application>
<component name="FileEditorProviderManager"><![CDATA[{}]]></component>
<component name="NotRoamableUiSettings">
<option name="ideScale" value="1.25" />
<option name="presentationModeIdeScale" value="1.75" />
<option name="experimentalSingleStripe" value="true" />
</component>
<component name="PropertyService"><![CDATA[{
"keyToString": {
"DG.SingleStripe.Customization2": "true",
"DG.SingleStripe.LastLocale": "en",
"LAST_CALCULATED_COLOR_INDEX_KEY": "3",
"LAST_EXTRACTOR_SCRIPTS_CLEANUP_VERSION/data/aggregators": "DB-253.31033.21",
"LAST_EXTRACTOR_SCRIPTS_CLEANUP_VERSION/data/extractors": "DB-253.31033.21",
"RunOnceActivity.VFSInitializationConditionsToFusReporter": "true",
"RunOnceActivity.git.modal.commit.toggle": "true",
"RunOnceActivity.reset.auto.reparse.settings.to.default": "true",
"ask.about.ctrl.y.shortcut.v2": "true",
"database.notebook.setting.id": "991df818-4576-4c31-a463-74da7b2bd640",
"evlsprt.253": "19c2027b880",
"evlsprt3.253": "3",
"experimental.ui.on.first.startup": "true",
"experimental.ui.used.version": "253.31033.21",
"fileTypeChangedCounter": "1",
"fontSizeToResetConsole": "13.0",
"fontSizeToResetEditor": "13.0",
"got.it.tooltip.database.cloud.explorer.promo": "1",
"got.it.tooltip.database.schema.control.got.it": "1",
"ide.islands.ab3": "true",
"input.method.disabler.muted": "true",
"llm.installer.last.toolwindow.state": "LLM_INSTALLER",
"migrated.non.roamable.values.from.general.settings": "true",
"previousColorScheme": "_@user_Islands Dark",
"registry.to.advanced.settings.migration.build": "DB-253.31033.21",
"tab_selection_count": "5",
"trial.state.last.availability.check": "0"
},
"keyToStringList": {
"fileTypeDetectors": [
"com.intellij.ide.scratch.ScratchFileServiceImpl$Detector",
"com.intellij.database.vfs.DbStorageFileType$Detector",
"org.jetbrains.plugins.textmate.TextMateFileType$TextMateFileDetector"
]
}
}]]></component>
</application>

View File

@@ -0,0 +1,6 @@
<application>
<component name="ProfilerRunConfigurations">
<profilerRunConfigurations />
<knownConfigurationTypes />
</component>
</application>

Some files were not shown because too many files have changed in this diff Show More