
    Je                         d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ d	Z G d
 de
      Zy)z.
Language Server Protocol configuration tabs.
    )Qt)	QGroupBoxQGridLayoutQLabelQPushButtonQVBoxLayout)SpyderPreferencesTab)_)SUPPORTED_LANGUAGES)LSPServerTable)imaz4https://microsoft.github.io/language-server-protocolc                   J     e Zd ZdZ ed      Z fdZd Zd Zd Z	d Z
 xZS )OtherLanguagesConfigTabz-LSP server configuration for other languages.zOther languagesc                    t         
|   |       t        t        d      j	                  t
                    }|j                  d       |j                  d       |j                  t        j                         t        t        d            }t        | t        j                        | _        | j                  j!                  d       t#               }|j%                  | j                         |j'                  |       t)        t        d            | _        t)        t        d            | _        t)        t        d	            | _        | j.                  j1                  d
       | j,                  j2                  j5                  | j6                         | j*                  j2                  j5                  | j8                         | j.                  j2                  j5                  | j:                         | j,                  | j.                  | j*                  g}t=               }t?        |      D ]  \  }}|j%                  ||d        |jA                  dd       |jA                  dd       |jA                  dd       t#               }	|	jC                  d       |	j%                  |       |	j%                  |       |	jC                  d       |	jE                  |       | j'                  |	       y )Na  Spyder uses the <a href="{lsp_url}">Language Server Protocol</a> to provide code completion and linting for its Editor. Here, you can setup and configure LSP servers for languages other than Python, so Spyder can provide such features for those languages as well.)lsp_urlTzAvailable servers:)
text_color   zReset to default valueszSet up a new serverz Delete currently selected serverF   r      i
   )#super__init__r   r
   formatLSP_URLsetOpenExternalLinkssetWordWrapsetAlignmentr   AlignJustifyr   r   r   MAIN_FG_COLORtablesetMaximumHeightr   	addWidget	setLayoutr   	reset_btnnew_btn
delete_btn
setEnabledclickedconnectcreate_new_serverreset_to_defaultdelete_serverr   	enumeratesetColumnStretch
addSpacing	addLayout)selfparentservers_labeltable_grouptable_layoutbtnsbuttons_layoutibtnservers_layout	__class__s             l/usr/lib/python3/dist-packages/spyder/plugins/completion/providers/languageserver/conftabs/otherlanguages.pyr   z OtherLanguagesConfigTab.__init__    s?     6 
 w') 	**40!!$'""2??3  "6 78#DS5F5FG


##C("}tzz*l+ %Q'@%AB"1%:#;<%a(J&KL""5) 	$$T%;%;<&&t'<'<=''(:(:; doot~~>$o 	0FAs$$S!Q/	0''1-''1-''1- %!!#&  /  -!!"%  0~&    c                 <    | j                   j                  d       y )NT)
new_server)r    show_editorr1   s    r<   r*   z)OtherLanguagesConfigTab.create_new_serverT   s    

$/r=   c                     | j                   j                         j                         }| j                   j                  |       | j	                  d       | j
                  j                  d       y )NTF)r    currentIndexrowr,   set_modifiedr&   r'   )r1   idxs     r<   r,   z%OtherLanguagesConfigTab.delete_serverW   sO    jj%%'++-

  %$""5)r=   c                     t         D ]C  }|j                         }| j                  |d       }|)| j                  j	                  |       E y )N)default)r   lower
get_optionr    delete_server_by_lang)r1   languageconfs      r<   r+   z(OtherLanguagesConfigTab.reset_to_default]   sI     , 	;H~~'H??8T?:D

00:		;r=   c                 6    | j                   j                         S )N)r    save_serversrA   s    r<   apply_settingsz&OtherLanguagesConfigTab.apply_settingsg   s    zz&&((r=   )__name__
__module____qualname____doc__r
   TITLEr   r*   r,   r+   rP   __classcell__)r;   s   @r<   r   r      s+    7 E2'h0*;)r=   r   N)rT   qtpy.QtCorer   qtpy.QtWidgetsr   r   r   r   r   spyder.api.preferencesr	   spyder.config.baser
   spyder.plugins.completion.apir   :spyder.plugins.completion.providers.languageserver.widgetsr   spyder.utils.icon_managerr   r   r    r=   r<   <module>r_      s@   
 6 6 8   = )
@M)2 M)r=   