first commit
This commit is contained in:
1
JetBrains/DataGrip2025.3/.lock
Normal file
1
JetBrains/DataGrip2025.3/.lock
Normal file
@@ -0,0 +1 @@
|
||||
4809
|
||||
BIN
JetBrains/DataGrip2025.3/app-internal-state.db
Normal file
BIN
JetBrains/DataGrip2025.3/app-internal-state.db
Normal file
Binary file not shown.
37
JetBrains/DataGrip2025.3/bundled_plugins.txt
Normal file
37
JetBrains/DataGrip2025.3/bundled_plugins.txt
Normal 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
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
BIN
JetBrains/DataGrip2025.3/datagrip.key
Normal file
BIN
JetBrains/DataGrip2025.3/datagrip.key
Normal file
Binary file not shown.
4
JetBrains/DataGrip2025.3/datagrip64.vmoptions
Normal file
4
JetBrains/DataGrip2025.3/datagrip64.vmoptions
Normal 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
|
||||
6
JetBrains/DataGrip2025.3/early-access-registry.txt
Normal file
6
JetBrains/DataGrip2025.3/early-access-registry.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
i18n.locale
|
||||
|
||||
ide.experimental.ui
|
||||
true
|
||||
moved.to.new.ui
|
||||
true
|
||||
@@ -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"}
|
||||
@@ -0,0 +1 @@
|
||||
1746475479000
|
||||
@@ -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" ]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
1751918809000
|
||||
@@ -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"}
|
||||
@@ -0,0 +1 @@
|
||||
1746475479000
|
||||
@@ -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"}
|
||||
@@ -0,0 +1 @@
|
||||
1746475479000
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1 @@
|
||||
1762361097000
|
||||
@@ -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"}
|
||||
@@ -0,0 +1 @@
|
||||
1757275432000
|
||||
@@ -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"}
|
||||
@@ -0,0 +1 @@
|
||||
1746475479000
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1 @@
|
||||
1767610832000
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
1770239051000
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"dictionaries" : [ ]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
1749585903000
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
1770239060000
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
1764363862000
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
1761945432000
|
||||
@@ -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")
|
||||
}
|
||||
@@ -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) + "%")
|
||||
@@ -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())
|
||||
@@ -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())
|
||||
@@ -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())
|
||||
@@ -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())
|
||||
@@ -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())
|
||||
@@ -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())
|
||||
@@ -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())
|
||||
@@ -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())
|
||||
@@ -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 }) }
|
||||
}
|
||||
@@ -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>
|
||||
""")
|
||||
@@ -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);
|
||||
@@ -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
|
||||
})
|
||||
@@ -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, "<")
|
||||
.replace(RTAG, ">")
|
||||
.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) } }
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
@@ -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(";")
|
||||
@@ -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) }
|
||||
@@ -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>
|
||||
""")
|
||||
@@ -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
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
@@ -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')
|
||||
}
|
||||
@@ -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')
|
||||
}
|
||||
@@ -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')
|
||||
}
|
||||
@@ -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')
|
||||
}
|
||||
@@ -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')
|
||||
}
|
||||
@@ -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]
|
||||
}
|
||||
@@ -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=
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
638ec33f363a94d41a4f03c3e7d3dcfba64e402d
|
||||
@@ -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>
|
||||
@@ -0,0 +1 @@
|
||||
49d71d964f0ac5505caa5f996c8497c9462e9eeb
|
||||
@@ -0,0 +1,3 @@
|
||||
#Fri Feb 27 14:58:15 MSK 2026
|
||||
postgresql-42.7.3.jar>central=
|
||||
postgresql-42.7.3.pom>central=
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
24f3e9f7231428cd20eb4dde00dd3fce44e05464
|
||||
@@ -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>
|
||||
@@ -0,0 +1 @@
|
||||
eb8bced9ab0f68cea206a218d8bf5d8d1c297133
|
||||
@@ -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.
|
||||
1485
JetBrains/DataGrip2025.3/jdbc-drivers/jdbc-drivers.xml
Normal file
1485
JetBrains/DataGrip2025.3/jdbc-drivers/jdbc-drivers.xml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
<application>
|
||||
<component name="AIOnboardingPromoWindowAdvisor">
|
||||
<option name="attempts" value="1" />
|
||||
<option name="shouldShowNextTime" value="NO" />
|
||||
</component>
|
||||
</application>
|
||||
@@ -0,0 +1,3 @@
|
||||
<application>
|
||||
<component name="CommonFeedbackSurveyService"><![CDATA[{}]]></component>
|
||||
</application>
|
||||
@@ -0,0 +1,3 @@
|
||||
<application>
|
||||
<component name="DontShowAgainFeedbackService"><![CDATA[{}]]></component>
|
||||
</application>
|
||||
12
JetBrains/DataGrip2025.3/options/EventLogAllowedList.xml
Normal file
12
JetBrains/DataGrip2025.3/options/EventLogAllowedList.xml
Normal 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>
|
||||
109
JetBrains/DataGrip2025.3/options/actionSummary.xml
Normal file
109
JetBrains/DataGrip2025.3/options/actionSummary.xml
Normal 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>
|
||||
5
JetBrains/DataGrip2025.3/options/colors.scheme.xml
Normal file
5
JetBrains/DataGrip2025.3/options/colors.scheme.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<application>
|
||||
<component name="EditorColorsManagerImpl">
|
||||
<global_color_scheme name="Islands Dark" />
|
||||
</component>
|
||||
</application>
|
||||
5
JetBrains/DataGrip2025.3/options/console-font.xml
Normal file
5
JetBrains/DataGrip2025.3/options/console-font.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<application>
|
||||
<component name="ConsoleFont">
|
||||
<option name="VERSION" value="1" />
|
||||
</component>
|
||||
</application>
|
||||
57
JetBrains/DataGrip2025.3/options/csvSettings.xml
Normal file
57
JetBrains/DataGrip2025.3/options/csvSettings.xml
Normal 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=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<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="	" recordSeparator=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<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=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<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=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<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>
|
||||
9
JetBrains/DataGrip2025.3/options/customization.xml
Normal file
9
JetBrains/DataGrip2025.3/options/customization.xml
Normal 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>
|
||||
3
JetBrains/DataGrip2025.3/options/dataViewsSettings.xml
Normal file
3
JetBrains/DataGrip2025.3/options/dataViewsSettings.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<application>
|
||||
<component name="DataGridAppearanceSettingsImpl" version="1" />
|
||||
</application>
|
||||
7
JetBrains/DataGrip2025.3/options/databaseDrivers.xml
Normal file
7
JetBrains/DataGrip2025.3/options/databaseDrivers.xml
Normal 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>
|
||||
58
JetBrains/DataGrip2025.3/options/databaseSettings.xml
Normal file
58
JetBrains/DataGrip2025.3/options/databaseSettings.xml
Normal 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="(?<=\W|\A)\$(\d+|[a-zA-Z_](?:\w|\.)*)\$?(?=\W|\z)" in-scripts="true" scope="*,-SQL" predefined="$a.b.c$?" />
|
||||
<parameter-pattern value="(?<=\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=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<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="	" recordSeparator=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<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=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<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=" ">
|
||||
<quotation>
|
||||
<quotes left=""" right=""" leftEscaped="""" rightEscaped="""" />
|
||||
<quotes left="'" right="'" leftEscaped="''" rightEscaped="''" />
|
||||
</quotation>
|
||||
</record-format>
|
||||
</data>
|
||||
</csv-format>
|
||||
</csv-formats>
|
||||
</component>
|
||||
</application>
|
||||
6
JetBrains/DataGrip2025.3/options/debugger.xml
Normal file
6
JetBrains/DataGrip2025.3/options/debugger.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<application>
|
||||
<component name="XDebuggerSettings">
|
||||
<data-views />
|
||||
<general />
|
||||
</component>
|
||||
</application>
|
||||
5
JetBrains/DataGrip2025.3/options/diff.xml
Normal file
5
JetBrains/DataGrip2025.3/options/diff.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<application>
|
||||
<component name="ExternalDiffSettings">
|
||||
<option name="MIGRATE_OLD_SETTINGS" value="true" />
|
||||
</component>
|
||||
</application>
|
||||
5
JetBrains/DataGrip2025.3/options/editor-font.xml
Normal file
5
JetBrains/DataGrip2025.3/options/editor-font.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<application>
|
||||
<component name="DefaultFont">
|
||||
<option name="VERSION" value="1" />
|
||||
</component>
|
||||
</application>
|
||||
5
JetBrains/DataGrip2025.3/options/editor.xml
Normal file
5
JetBrains/DataGrip2025.3/options/editor.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<application>
|
||||
<component name="CodeInsightSettings">
|
||||
<option name="REFORMAT_ON_PASTE" value="1" />
|
||||
</component>
|
||||
</application>
|
||||
118
JetBrains/DataGrip2025.3/options/features.usage.statistics.xml
Normal file
118
JetBrains/DataGrip2025.3/options/features.usage.statistics.xml
Normal 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>
|
||||
7
JetBrains/DataGrip2025.3/options/find.xml
Normal file
7
JetBrains/DataGrip2025.3/options/find.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<application>
|
||||
<component name="FindSettings">
|
||||
<mask>*.css</mask>
|
||||
<mask>*.html</mask>
|
||||
<mask>*.xml</mask>
|
||||
</component>
|
||||
</application>
|
||||
19
JetBrains/DataGrip2025.3/options/grazie_global.xml
Normal file
19
JetBrains/DataGrip2025.3/options/grazie_global.xml
Normal 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>
|
||||
5
JetBrains/DataGrip2025.3/options/ide.general.local.xml
Normal file
5
JetBrains/DataGrip2025.3/options/ide.general.local.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<application>
|
||||
<component name="GeneralLocalSettings">
|
||||
<option name="defaultProjectDirectory" />
|
||||
</component>
|
||||
</application>
|
||||
6
JetBrains/DataGrip2025.3/options/ide.general.xml
Normal file
6
JetBrains/DataGrip2025.3/options/ide.general.xml
Normal 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>
|
||||
@@ -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>
|
||||
3
JetBrains/DataGrip2025.3/options/log-categories.xml
Normal file
3
JetBrains/DataGrip2025.3/options/log-categories.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<application>
|
||||
<component name="Logs.Categories"><![CDATA[{}]]></component>
|
||||
</application>
|
||||
46
JetBrains/DataGrip2025.3/options/other.xml
Normal file
46
JetBrains/DataGrip2025.3/options/other.xml
Normal 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>
|
||||
@@ -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
Reference in New Issue
Block a user