@@ -192,8 +192,8 @@ func main() {
192
192
fileSystemFrameColor : gocui .ColorDefault ,
193
193
dockerFrameColor : gocui .ColorDefault ,
194
194
autoScroll : true ,
195
- trimHttpRegex : regexp .MustCompile (`^.*http://|([^a-zA-Z0-9:/._?&=-].*)$` ), // исключаем все до http:// (включительно) в начале строки
196
- trimHttpsRegex : regexp .MustCompile (`^.*https://|([^a-zA-Z0-9:/._?&=-].*)$` ), // и после любого символа, который не может содержать в себе url
195
+ trimHttpRegex : regexp .MustCompile (`^.*http://|([^a-zA-Z0-9:/._?&=+ -].*)$` ), // исключаем все до http:// (включительно) в начале строки
196
+ trimHttpsRegex : regexp .MustCompile (`^.*https://|([^a-zA-Z0-9:/._?&=+ -].*)$` ), // и после любого символа, который не может содержать в себе url
197
197
trimPrefixPathRegex : regexp .MustCompile (`^[^/]+` ), // иключаем все до первого символа слэша (не включительно)
198
198
trimPostfixPathRegex : regexp .MustCompile (`[=:'"(){}\[\]]+.*$` ), // исключаем все после первого символа, который не должен (но может) содержаться в пути
199
199
hexByteRegex : regexp .MustCompile (`\b0x[0-9A-Fa-f]+\b` ), // Байты или числа в шестнадцатеричном формате: 0x2 || 0xc0000001
@@ -2356,6 +2356,17 @@ func (app *App) wordColor(inputWord string) string {
2356
2356
// Значение по умолчанию
2357
2357
var coloredWord string = inputWord
2358
2358
switch {
2359
+ // Пурпурный (url и директории) [35m]
2360
+ case strings .Contains (inputWord , "http://" ):
2361
+ cleanedWord := app .trimHttpRegex .ReplaceAllString (inputWord , "" )
2362
+ coloredWord = strings .ReplaceAll (inputWord , "http://" + cleanedWord , "\033 [35m" + "http://" + cleanedWord + "\033 [0m" )
2363
+ case strings .Contains (inputWord , "https://" ):
2364
+ cleanedWord := app .trimHttpsRegex .ReplaceAllString (inputWord , "" )
2365
+ coloredWord = strings .ReplaceAll (inputWord , "https://" + cleanedWord , "\033 [35m" + "https://" + cleanedWord + "\033 [0m" )
2366
+ case app .containsPath (inputWord ):
2367
+ cleanedWord := app .trimPrefixPathRegex .ReplaceAllString (inputWord , "" )
2368
+ cleanedWord = app .trimPostfixPathRegex .ReplaceAllString (cleanedWord , "" )
2369
+ coloredWord = strings .ReplaceAll (inputWord , cleanedWord , "\033 [35m" + cleanedWord + "\033 [0m" )
2359
2370
// Желтый (известные имена: hostname и username) [33m]
2360
2371
case strings .Contains (inputWord , app .hostName ):
2361
2372
coloredWord = strings .ReplaceAll (inputWord , app .hostName , "\033 [33m" + app .hostName + "\033 [0m" )
@@ -2710,17 +2721,6 @@ func (app *App) wordColor(inputWord string) string {
2710
2721
coloredWord = app .replaceWordLower (inputWord , "done" , "\033 [32m" )
2711
2722
case strings .Contains (inputWordLower , "true" ):
2712
2723
coloredWord = app .replaceWordLower (inputWord , "true" , "\033 [32m" )
2713
- // Пурпурный (url и директории) [35m]
2714
- case strings .Contains (inputWord , "http://" ):
2715
- cleanedWord := app .trimHttpRegex .ReplaceAllString (inputWord , "" )
2716
- coloredWord = strings .ReplaceAll (inputWord , "http://" + cleanedWord , "\033 [35m" + "http://" + cleanedWord + "\033 [0m" )
2717
- case strings .Contains (inputWord , "https://" ):
2718
- cleanedWord := app .trimHttpsRegex .ReplaceAllString (inputWord , "" )
2719
- coloredWord = strings .ReplaceAll (inputWord , "https://" + cleanedWord , "\033 [35m" + "https://" + cleanedWord + "\033 [0m" )
2720
- case app .containsPath (inputWord ):
2721
- cleanedWord := app .trimPrefixPathRegex .ReplaceAllString (inputWord , "" )
2722
- cleanedWord = app .trimPostfixPathRegex .ReplaceAllString (cleanedWord , "" )
2723
- coloredWord = strings .ReplaceAll (inputWord , cleanedWord , "\033 [35m" + cleanedWord + "\033 [0m" )
2724
2724
// Синий (статусы) [36m]
2725
2725
case strings .Contains (inputWordLower , "out" ):
2726
2726
words := []string {"stdout" , "timeout" , "output" }
@@ -3282,22 +3282,6 @@ func (app *App) setupKeybindings() error {
3282
3282
}); err != nil {
3283
3283
return err
3284
3284
}
3285
- // Pgdn 1
3286
- if err := app .gui .SetKeybinding ("services" , gocui .KeyPgdn , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3287
- return app .nextService (v , 1 )
3288
- }); err != nil {
3289
- return err
3290
- }
3291
- if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyPgdn , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3292
- return app .nextFileName (v , 1 )
3293
- }); err != nil {
3294
- return err
3295
- }
3296
- if err := app .gui .SetKeybinding ("docker" , gocui .KeyPgdn , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3297
- return app .nextDockerContainer (v , 1 )
3298
- }); err != nil {
3299
- return err
3300
- }
3301
3285
// Быстрое пролистывание вниз через 10 записей (<Shift/Alt>+Down)
3302
3286
if err := app .gui .SetKeybinding ("services" , gocui .KeyArrowDown , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3303
3287
return app .nextService (v , 10 )
@@ -3330,7 +3314,23 @@ func (app *App) setupKeybindings() error {
3330
3314
}); err != nil {
3331
3315
return err
3332
3316
}
3333
- // Pgdn 10
3317
+ // Pgdn 1
3318
+ if err := app .gui .SetKeybinding ("services" , gocui .KeyPgdn , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3319
+ return app .nextService (v , 1 )
3320
+ }); err != nil {
3321
+ return err
3322
+ }
3323
+ if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyPgdn , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3324
+ return app .nextFileName (v , 1 )
3325
+ }); err != nil {
3326
+ return err
3327
+ }
3328
+ if err := app .gui .SetKeybinding ("docker" , gocui .KeyPgdn , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3329
+ return app .nextDockerContainer (v , 1 )
3330
+ }); err != nil {
3331
+ return err
3332
+ }
3333
+ // Shift+Pgdn 10
3334
3334
if err := app .gui .SetKeybinding ("services" , gocui .KeyPgdn , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3335
3335
return app .nextService (v , 10 )
3336
3336
}); err != nil {
@@ -3346,6 +3346,7 @@ func (app *App) setupKeybindings() error {
3346
3346
}); err != nil {
3347
3347
return err
3348
3348
}
3349
+ // Alt+Pgdn 100
3349
3350
if err := app .gui .SetKeybinding ("services" , gocui .KeyPgdn , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3350
3351
return app .nextService (v , 100 )
3351
3352
}); err != nil {
@@ -3361,7 +3362,7 @@ func (app *App) setupKeybindings() error {
3361
3362
}); err != nil {
3362
3363
return err
3363
3364
}
3364
- // Пролистывание вверх (<Shift/Alt>+Up)
3365
+ // Пролистывание вверх
3365
3366
if err := app .gui .SetKeybinding ("services" , gocui .KeyArrowUp , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3366
3367
return app .prevService (v , 1 )
3367
3368
}); err != nil {
@@ -3377,71 +3378,71 @@ func (app *App) setupKeybindings() error {
3377
3378
}); err != nil {
3378
3379
return err
3379
3380
}
3380
- // Pgup 1
3381
- if err := app .gui .SetKeybinding ("services" , gocui .KeyPgup , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3382
- return app .prevService (v , 1 )
3381
+ // Shift+Up 10
3382
+ if err := app .gui .SetKeybinding ("services" , gocui .KeyArrowUp , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3383
+ return app .prevService (v , 10 )
3383
3384
}); err != nil {
3384
3385
return err
3385
3386
}
3386
- if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyPgup , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3387
- return app .prevFileName (v , 1 )
3387
+ if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyArrowUp , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3388
+ return app .prevFileName (v , 10 )
3388
3389
}); err != nil {
3389
3390
return err
3390
3391
}
3391
- if err := app .gui .SetKeybinding ("docker" , gocui .KeyPgup , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3392
- return app .prevDockerContainer (v , 1 )
3392
+ if err := app .gui .SetKeybinding ("docker" , gocui .KeyArrowUp , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3393
+ return app .prevDockerContainer (v , 10 )
3393
3394
}); err != nil {
3394
3395
return err
3395
3396
}
3396
- // up 10
3397
- if err := app .gui .SetKeybinding ("services" , gocui .KeyArrowUp , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3398
- return app .prevService (v , 10 )
3397
+ // Alt+Up 100
3398
+ if err := app .gui .SetKeybinding ("services" , gocui .KeyArrowUp , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3399
+ return app .prevService (v , 100 )
3399
3400
}); err != nil {
3400
3401
return err
3401
3402
}
3402
- if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyArrowUp , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3403
- return app .prevFileName (v , 10 )
3403
+ if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyArrowUp , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3404
+ return app .prevFileName (v , 100 )
3404
3405
}); err != nil {
3405
3406
return err
3406
3407
}
3407
- if err := app .gui .SetKeybinding ("docker" , gocui .KeyArrowUp , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3408
- return app .prevDockerContainer (v , 10 )
3408
+ if err := app .gui .SetKeybinding ("docker" , gocui .KeyArrowUp , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3409
+ return app .prevDockerContainer (v , 100 )
3409
3410
}); err != nil {
3410
3411
return err
3411
3412
}
3412
- // Pgup 10
3413
- if err := app .gui .SetKeybinding ("services" , gocui .KeyPgup , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3414
- return app .prevService (v , 10 )
3413
+ // Pgup 1
3414
+ if err := app .gui .SetKeybinding ("services" , gocui .KeyPgup , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3415
+ return app .prevService (v , 1 )
3415
3416
}); err != nil {
3416
3417
return err
3417
3418
}
3418
- if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyPgup , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3419
- return app .prevFileName (v , 10 )
3419
+ if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyPgup , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3420
+ return app .prevFileName (v , 1 )
3420
3421
}); err != nil {
3421
3422
return err
3422
3423
}
3423
- if err := app .gui .SetKeybinding ("docker" , gocui .KeyPgup , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3424
- return app .prevDockerContainer (v , 10 )
3424
+ if err := app .gui .SetKeybinding ("docker" , gocui .KeyPgup , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3425
+ return app .prevDockerContainer (v , 1 )
3425
3426
}); err != nil {
3426
3427
return err
3427
3428
}
3428
- // up 100
3429
- if err := app .gui .SetKeybinding ("services" , gocui .KeyArrowUp , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3430
- return app .prevService (v , 100 )
3429
+ // Shift+Pgup 10
3430
+ if err := app .gui .SetKeybinding ("services" , gocui .KeyPgup , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3431
+ return app .prevService (v , 10 )
3431
3432
}); err != nil {
3432
3433
return err
3433
3434
}
3434
- if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyArrowUp , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3435
- return app .prevFileName (v , 100 )
3435
+ if err := app .gui .SetKeybinding ("varLogs" , gocui .KeyPgup , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3436
+ return app .prevFileName (v , 10 )
3436
3437
}); err != nil {
3437
3438
return err
3438
3439
}
3439
- if err := app .gui .SetKeybinding ("docker" , gocui .KeyArrowUp , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3440
- return app .prevDockerContainer (v , 100 )
3440
+ if err := app .gui .SetKeybinding ("docker" , gocui .KeyPgup , gocui .ModShift , func (g * gocui.Gui , v * gocui.View ) error {
3441
+ return app .prevDockerContainer (v , 10 )
3441
3442
}); err != nil {
3442
3443
return err
3443
3444
}
3444
- // Pgup 100
3445
+ // Alt+ Pgup 100
3445
3446
if err := app .gui .SetKeybinding ("services" , gocui .KeyPgup , gocui .ModAlt , func (g * gocui.Gui , v * gocui.View ) error {
3446
3447
return app .prevService (v , 100 )
3447
3448
}); err != nil {
@@ -3496,14 +3497,21 @@ func (app *App) setupKeybindings() error {
3496
3497
if err := app .gui .SetKeybinding ("filter" , gocui .KeyArrowDown , gocui .ModNone , app .setFilterModeLeft ); err != nil {
3497
3498
return err
3498
3499
}
3500
+ // PgUp/PgDn Filter
3501
+ if err := app .gui .SetKeybinding ("filter" , gocui .KeyPgup , gocui .ModNone , app .setFilterModeRight ); err != nil {
3502
+ return err
3503
+ }
3504
+ if err := app .gui .SetKeybinding ("filter" , gocui .KeyPgdn , gocui .ModNone , app .setFilterModeLeft ); err != nil {
3505
+ return err
3506
+ }
3499
3507
// Переключение для количества выводимых строк через Left/Right для выбранного окна (logs)
3500
3508
if err := app .gui .SetKeybinding ("logs" , gocui .KeyArrowLeft , gocui .ModNone , app .setCountLogViewDown ); err != nil {
3501
3509
return err
3502
3510
}
3503
3511
if err := app .gui .SetKeybinding ("logs" , gocui .KeyArrowRight , gocui .ModNone , app .setCountLogViewUp ); err != nil {
3504
3512
return err
3505
3513
}
3506
- // Пролистывание вывода журнала через 1/10/500 записей
3514
+ // Пролистывание вывода журнала через 1/10/500 записей вниз
3507
3515
if err := app .gui .SetKeybinding ("logs" , gocui .KeyArrowDown , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3508
3516
return app .scrollDownLogs (1 )
3509
3517
}); err != nil {
@@ -3519,6 +3527,7 @@ func (app *App) setupKeybindings() error {
3519
3527
}); err != nil {
3520
3528
return err
3521
3529
}
3530
+ // Up Logs
3522
3531
if err := app .gui .SetKeybinding ("logs" , gocui .KeyArrowUp , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3523
3532
return app .scrollUpLogs (1 )
3524
3533
}); err != nil {
@@ -3534,7 +3543,7 @@ func (app *App) setupKeybindings() error {
3534
3543
}); err != nil {
3535
3544
return err
3536
3545
}
3537
- // KeyPgdn/KeyPgup
3546
+ // KeyPgdn Logs
3538
3547
if err := app .gui .SetKeybinding ("logs" , gocui .KeyPgdn , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3539
3548
return app .scrollDownLogs (1 )
3540
3549
}); err != nil {
@@ -3550,6 +3559,7 @@ func (app *App) setupKeybindings() error {
3550
3559
}); err != nil {
3551
3560
return err
3552
3561
}
3562
+ // KeyPgup Logs
3553
3563
if err := app .gui .SetKeybinding ("logs" , gocui .KeyPgup , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3554
3564
return app .scrollUpLogs (1 )
3555
3565
}); err != nil {
@@ -3565,7 +3575,7 @@ func (app *App) setupKeybindings() error {
3565
3575
}); err != nil {
3566
3576
return err
3567
3577
}
3568
- // Ручное обновление вывода журнала и перемещение к концу журнала (Ctrl+D/End)
3578
+ // Перемещение к концу журнала (Ctrl+D/End)
3569
3579
if err := app .gui .SetKeybinding ("" , gocui .KeyCtrlD , gocui .ModNone , func (g * gocui.Gui , v * gocui.View ) error {
3570
3580
app .updateLogsView (true )
3571
3581
return nil
0 commit comments