Class: ThemeCheck::LanguageServer::Configuration
- Inherits:
-
Object
- Object
- ThemeCheck::LanguageServer::Configuration
- Defined in:
- lib/theme_check/language_server/configuration.rb
Constant Summary collapse
- CHECK_ON_OPEN =
:"themeCheck.checkOnOpen"
- CHECK_ON_SAVE =
:"themeCheck.checkOnSave"
- CHECK_ON_CHANGE =
:"themeCheck.checkOnChange"
- ONLY_SINGLE_FILE =
:"themeCheck.onlySingleFileChecks"
Instance Method Summary collapse
- #check_on_change? ⇒ Boolean
- #check_on_open? ⇒ Boolean
- #check_on_save? ⇒ Boolean
- #fetch(force: nil) ⇒ Object
-
#initialize(bridge, capabilities) ⇒ Configuration
constructor
A new instance of Configuration.
- #initialized? ⇒ Boolean
- #null_coalesce(value, default) ⇒ Object
- #only_single_file? ⇒ Boolean
- #register_did_change_capability ⇒ Object
Constructor Details
#initialize(bridge, capabilities) ⇒ Configuration
Returns a new instance of Configuration.
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/theme_check/language_server/configuration.rb', line 11 def initialize(bridge, capabilities) @bridge = bridge @capabilities = capabilities @mutex = Mutex.new @initialized = false @config = { CHECK_ON_OPEN => null_coalesce(@capabilities.initialization_option(CHECK_ON_OPEN), true), CHECK_ON_SAVE => null_coalesce(@capabilities.initialization_option(CHECK_ON_SAVE), true), CHECK_ON_CHANGE => null_coalesce(@capabilities.initialization_option(CHECK_ON_CHANGE), true), ONLY_SINGLE_FILE => null_coalesce(@capabilities.initialization_option(ONLY_SINGLE_FILE), false), } end |
Instance Method Details
#check_on_change? ⇒ Boolean
73 74 75 76 |
# File 'lib/theme_check/language_server/configuration.rb', line 73 def check_on_change? fetch # making sure we have for an initialized value @config[CHECK_ON_CHANGE] end |
#check_on_open? ⇒ Boolean
63 64 65 66 |
# File 'lib/theme_check/language_server/configuration.rb', line 63 def check_on_open? fetch # making sure we have an initialized value @config[CHECK_ON_OPEN] end |
#check_on_save? ⇒ Boolean
68 69 70 71 |
# File 'lib/theme_check/language_server/configuration.rb', line 68 def check_on_save? fetch # making sure we have for an initialized value @config[CHECK_ON_SAVE] end |
#fetch(force: nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/theme_check/language_server/configuration.rb', line 24 def fetch(force: nil) @mutex.synchronize do return unless @capabilities.supports_workspace_configuration? return if initialized? && !force keys = [ CHECK_ON_OPEN, CHECK_ON_SAVE, CHECK_ON_CHANGE, ONLY_SINGLE_FILE, ] configs = @bridge.send_request( "workspace/configuration", items: keys.map do |key| { section: key } end ) keys.each.with_index do |key, i| @config[key] = configs[i] unless configs[i].nil? end @initialized = true end end |
#initialized? ⇒ Boolean
59 60 61 |
# File 'lib/theme_check/language_server/configuration.rb', line 59 def initialized? @initialized end |
#null_coalesce(value, default) ⇒ Object
83 84 85 |
# File 'lib/theme_check/language_server/configuration.rb', line 83 def null_coalesce(value, default) value.nil? ? default : value end |
#only_single_file? ⇒ Boolean
78 79 80 81 |
# File 'lib/theme_check/language_server/configuration.rb', line 78 def only_single_file? fetch # making sure we have for an initialized value @config[ONLY_SINGLE_FILE] end |
#register_did_change_capability ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/theme_check/language_server/configuration.rb', line 51 def register_did_change_capability return unless @capabilities.supports_workspace_did_change_configuration_dynamic_registration? @bridge.send_request('client/registerCapability', registrations: [{ id: "workspace/didChangeConfiguration", method: "workspace/didChangeConfiguration", }]) end |