Class: Solargraph::Workspace::Config
- Inherits:
-
Object
- Object
- Solargraph::Workspace::Config
- Defined in:
- lib/solargraph/workspace/config.rb
Overview
Configuration data for a workspace.
Constant Summary collapse
- MAX_FILES =
The maximum number of files that can be added to a workspace. The workspace’s .solargraph.yml can override this value.
5000
Instance Attribute Summary collapse
- #directory ⇒ String readonly
- #raw_data ⇒ Hash readonly
Instance Method Summary collapse
- #allow?(filename) ⇒ Boolean
-
#calculated ⇒ Array<String>
The calculated array of (included - excluded) files in the workspace.
-
#domains ⇒ Array<String>
An array of domains configured for the workspace.
-
#excluded ⇒ Array<String>
An array of files excluded from the workspace.
-
#formatter ⇒ Hash
A hash of options supported by the formatter.
-
#included ⇒ Array<String>
An array of files included in the workspace (before calculating excluded files).
-
#initialize(directory = '') ⇒ Config
constructor
A new instance of Config.
-
#max_files ⇒ Integer
The maximum number of files to parse from the workspace.
-
#plugins ⇒ Array<String>
An array of plugins to require.
-
#reporters ⇒ Array<String>
An array of reporters to use for diagnostics.
-
#require_paths ⇒ Array<String>
An array of load paths for required paths.
-
#required ⇒ Array<String>
An array of required paths to add to the workspace.
Constructor Details
#initialize(directory = '') ⇒ Config
Returns a new instance of Config.
21 22 23 24 25 26 |
# File 'lib/solargraph/workspace/config.rb', line 21 def initialize directory = '' @directory = directory @raw_data = config_data included excluded end |
Instance Attribute Details
#directory ⇒ String (readonly)
15 16 17 |
# File 'lib/solargraph/workspace/config.rb', line 15 def directory @directory end |
#raw_data ⇒ Hash (readonly)
18 19 20 |
# File 'lib/solargraph/workspace/config.rb', line 18 def raw_data @raw_data end |
Instance Method Details
#allow?(filename) ⇒ Boolean
44 45 46 47 48 |
# File 'lib/solargraph/workspace/config.rb', line 44 def allow? filename filename.start_with?(directory) && !excluded.include?(filename) && excluded_directories.none? { |d| filename.start_with?(d) } end |
#calculated ⇒ Array<String>
The calculated array of (included - excluded) files in the workspace.
53 54 55 56 |
# File 'lib/solargraph/workspace/config.rb', line 53 def calculated Solargraph.logger.info "Indexing workspace files in #{directory}" unless @calculated || directory.empty? || directory == '*' @calculated ||= included - excluded end |
#domains ⇒ Array<String>
An array of domains configured for the workspace. A domain is a namespace that the ApiMap should include in the global namespace. It’s typically used to identify available DSLs.
63 64 65 |
# File 'lib/solargraph/workspace/config.rb', line 63 def domains raw_data['domains'] end |
#excluded ⇒ Array<String>
An array of files excluded from the workspace.
39 40 41 42 |
# File 'lib/solargraph/workspace/config.rb', line 39 def excluded return [] if directory.empty? || directory == '*' @excluded ||= process_exclusions(@raw_data['exclude']) end |
#formatter ⇒ Hash
A hash of options supported by the formatter
91 92 93 |
# File 'lib/solargraph/workspace/config.rb', line 91 def formatter raw_data['formatter'] end |
#included ⇒ Array<String>
An array of files included in the workspace (before calculating excluded files).
31 32 33 34 |
# File 'lib/solargraph/workspace/config.rb', line 31 def included return [] if directory.empty? || directory == '*' @included ||= process_globs(@raw_data['include']) end |
#max_files ⇒ Integer
The maximum number of files to parse from the workspace.
105 106 107 |
# File 'lib/solargraph/workspace/config.rb', line 105 def max_files raw_data['max_files'] end |
#plugins ⇒ Array<String>
An array of plugins to require.
98 99 100 |
# File 'lib/solargraph/workspace/config.rb', line 98 def plugins raw_data['plugins'] end |
#reporters ⇒ Array<String>
An array of reporters to use for diagnostics.
84 85 86 |
# File 'lib/solargraph/workspace/config.rb', line 84 def reporters raw_data['reporters'] end |
#require_paths ⇒ Array<String>
An array of load paths for required paths.
77 78 79 |
# File 'lib/solargraph/workspace/config.rb', line 77 def require_paths raw_data['require_paths'] || [] end |
#required ⇒ Array<String>
An array of required paths to add to the workspace.
70 71 72 |
# File 'lib/solargraph/workspace/config.rb', line 70 def required raw_data['require'] end |