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{String => BasicObject} 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 = File.absolute_path(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{String => BasicObject} (readonly)
18 19 20 |
# File 'lib/solargraph/workspace/config.rb', line 18 def raw_data @raw_data end |
Instance Method Details
#allow?(filename) ⇒ Boolean
45 46 47 48 49 50 |
# File 'lib/solargraph/workspace/config.rb', line 45 def allow? filename filename = File.absolute_path(filename, directory) 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.
55 56 57 58 |
# File 'lib/solargraph/workspace/config.rb', line 55 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.
65 66 67 |
# File 'lib/solargraph/workspace/config.rb', line 65 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
93 94 95 |
# File 'lib/solargraph/workspace/config.rb', line 93 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.
107 108 109 |
# File 'lib/solargraph/workspace/config.rb', line 107 def max_files raw_data['max_files'] end |
#plugins ⇒ Array<String>
An array of plugins to require.
100 101 102 |
# File 'lib/solargraph/workspace/config.rb', line 100 def plugins raw_data['plugins'] end |
#reporters ⇒ Array<String>
An array of reporters to use for diagnostics.
86 87 88 |
# File 'lib/solargraph/workspace/config.rb', line 86 def reporters raw_data['reporters'] end |
#require_paths ⇒ Array<String>
An array of load paths for required paths.
79 80 81 |
# File 'lib/solargraph/workspace/config.rb', line 79 def require_paths raw_data['require_paths'] || [] end |
#required ⇒ Array<String>
An array of required paths to add to the workspace.
72 73 74 |
# File 'lib/solargraph/workspace/config.rb', line 72 def required raw_data['require'] end |