@@ -407,55 +407,34 @@ endfunction
407
407
408
408
function ! s: drawer .add_db (db) abort
409
409
let db_name = a: db .name
410
+
410
411
if ! empty (a: db .conn_error)
411
412
let db_name .= ' ' .g: db_ui_icons .connection_error
412
413
elseif ! empty (a: db .conn)
413
414
let db_name .= ' ' .g: db_ui_icons .connection_ok
414
415
endif
416
+
415
417
if self .show_details
416
418
let db_name .= ' (' .a: db .scheme.' - ' .a: db .source .' )'
417
419
endif
420
+
418
421
call self .add (db_name, ' toggle' , ' db' , self .get_toggle_icon (' db' , a: db ), a: db .key_name, 0 , { ' expanded' : a: db .expanded })
419
422
if ! a: db .expanded
420
423
return a: db
421
424
endif
422
425
423
- call self .add (' New query' , ' open' , ' query' , g: db_ui_icons .new_query, a: db .key_name, 1 )
424
- if ! empty (a: db .buffers .list )
425
- call self .add (' Buffers (' .len (a: db .buffers .list ).' )' , ' toggle' , ' buffers' , self .get_toggle_icon (' buffers' , a: db .buffers ), a: db .key_name, 1 , { ' expanded' : a: db .buffers .expanded })
426
- if a: db .buffers .expanded
427
- for buf in a: db .buffers .list
428
- let buflabel = self .get_buffer_name (a: db , buf )
429
- if self .dbui.is_tmp_location_buffer (a: db , buf )
430
- let buflabel .= ' *'
431
- endif
432
- call self .add (buflabel, ' open' , ' buffer' , g: db_ui_icons .buffers , a: db .key_name, 2 , { ' file_path' : buf })
433
- endfor
426
+ " Render sections based on g:db_ui_drawer_sections configuration
427
+ for section in g: db_ui_drawer_sections
428
+ if section == # ' new_query'
429
+ call self ._render_new_query_section (a: db )
430
+ elseif section == # ' buffers' && ! empty (a: db .buffers .list )
431
+ call self ._render_buffers_section (a: db )
432
+ elseif section == # ' saved_queries'
433
+ call self ._render_saved_queries_section (a: db )
434
+ elseif section == # ' schemas'
435
+ call self ._render_schemas_section (a: db )
434
436
endif
435
- endif
436
- call self .add (' Saved queries (' .len (a: db .saved_queries.list ).' )' , ' toggle' , ' saved_queries' , self .get_toggle_icon (' saved_queries' , a: db .saved_queries), a: db .key_name, 1 , { ' expanded' : a: db .saved_queries.expanded })
437
- if a: db .saved_queries.expanded
438
- for saved_query in a: db .saved_queries.list
439
- call self .add (fnamemodify (saved_query, ' :t' ), ' open' , ' buffer' , g: db_ui_icons .saved_query, a: db .key_name, 2 , { ' file_path' : saved_query, ' saved' : 1 })
440
- endfor
441
- endif
442
-
443
- if a: db .schema_support
444
- call self .add (' Schemas (' .len (a: db .schemas.items ).' )' , ' toggle' , ' schemas' , self .get_toggle_icon (' schemas' , a: db .schemas), a: db .key_name, 1 , { ' expanded' : a: db .schemas.expanded })
445
- if a: db .schemas.expanded
446
- for schema in a: db .schemas.list
447
- let schema_item = a: db .schemas.items [schema]
448
- let tables = schema_item.tables
449
- call self .add (schema.' (' .len (tables.items ).' )' , ' toggle' , ' schemas->items->' .schema, self .get_toggle_icon (' schema' , schema_item), a: db .key_name, 2 , { ' expanded' : schema_item.expanded })
450
- if schema_item.expanded
451
- call self .render_tables (tables, a: db ,' schemas->items->' .schema.' ->tables->items' , 3 , schema)
452
- endif
453
- endfor
454
- endif
455
- else
456
- call self .add (' Tables (' .len (a: db .tables.items ).' )' , ' toggle' , ' tables' , self .get_toggle_icon (' tables' , a: db .tables), a: db .key_name, 1 , { ' expanded' : a: db .tables.expanded })
457
- call self .render_tables (a: db .tables, a: db , ' tables->items' , 2 , ' ' )
458
- endif
437
+ endfor
459
438
endfunction
460
439
461
440
function ! s: drawer .render_tables (tables, db, path , level , schema) abort
@@ -719,6 +698,51 @@ function! s:drawer.get_buffer_name(db, buffer)
719
698
return substitute (name, ' ^' .db_ui#utils#slug (a: db .name).' -' , ' ' , ' ' )
720
699
endfunction
721
700
701
+ function ! s: drawer ._render_new_query_section (db) abort
702
+ call self .add (' New query' , ' open' , ' query' , g: db_ui_icons .new_query, a: db .key_name, 1 )
703
+ endfunction
704
+
705
+ function ! s: drawer ._render_buffers_section (db) abort
706
+ call self .add (' Buffers (' .len (a: db .buffers .list ).' )' , ' toggle' , ' buffers' , self .get_toggle_icon (' buffers' , a: db .buffers ), a: db .key_name, 1 , { ' expanded' : a: db .buffers .expanded })
707
+ if a: db .buffers .expanded
708
+ for buf in a: db .buffers .list
709
+ let buflabel = self .get_buffer_name (a: db , buf )
710
+ if self .dbui.is_tmp_location_buffer (a: db , buf )
711
+ let buflabel .= ' *'
712
+ endif
713
+ call self .add (buflabel, ' open' , ' buffer' , g: db_ui_icons .buffers , a: db .key_name, 2 , { ' file_path' : buf })
714
+ endfor
715
+ endif
716
+ endfunction
717
+
718
+ function ! s: drawer ._render_saved_queries_section (db) abort
719
+ call self .add (' Saved queries (' .len (a: db .saved_queries.list ).' )' , ' toggle' , ' saved_queries' , self .get_toggle_icon (' saved_queries' , a: db .saved_queries), a: db .key_name, 1 , { ' expanded' : a: db .saved_queries.expanded })
720
+ if a: db .saved_queries.expanded
721
+ for saved_query in a: db .saved_queries.list
722
+ call self .add (fnamemodify (saved_query, ' :t' ), ' open' , ' buffer' , g: db_ui_icons .saved_query, a: db .key_name, 2 , { ' file_path' : saved_query, ' saved' : 1 })
723
+ endfor
724
+ endif
725
+ endfunction
726
+
727
+ function ! s: drawer ._render_schemas_section (db) abort
728
+ if a: db .schema_support
729
+ call self .add (' Schemas (' .len (a: db .schemas.items ).' )' , ' toggle' , ' schemas' , self .get_toggle_icon (' schemas' , a: db .schemas), a: db .key_name, 1 , { ' expanded' : a: db .schemas.expanded })
730
+ if a: db .schemas.expanded
731
+ for schema in a: db .schemas.list
732
+ let schema_item = a: db .schemas.items [schema]
733
+ let tables = schema_item.tables
734
+ call self .add (schema.' (' .len (tables.items ).' )' , ' toggle' , ' schemas->items->' .schema, self .get_toggle_icon (' schema' , schema_item), a: db .key_name, 2 , { ' expanded' : schema_item.expanded })
735
+ if schema_item.expanded
736
+ call self .render_tables (tables, a: db ,' schemas->items->' .schema.' ->tables->items' , 3 , schema)
737
+ endif
738
+ endfor
739
+ endif
740
+ else
741
+ call self .add (' Tables (' .len (a: db .tables.items ).' )' , ' toggle' , ' tables' , self .get_toggle_icon (' tables' , a: db .tables), a: db .key_name, 1 , { ' expanded' : a: db .tables.expanded })
742
+ call self .render_tables (a: db .tables, a: db , ' tables->items' , 2 , ' ' )
743
+ endif
744
+ endfunction
745
+
722
746
function ! s: drawer ._is_schema_ignored (schema_name)
723
747
for ignored_schema in g: db_ui_hide_schemas
724
748
if match (a: schema_name , ignored_schema) > -1
0 commit comments