Module: Solargraph
- Defined in:
- lib/solargraph.rb,
lib/solargraph/pin.rb,
lib/solargraph/page.rb,
lib/solargraph/bench.rb,
lib/solargraph/range.rb,
lib/solargraph/shell.rb,
lib/solargraph/parser.rb,
lib/solargraph/source.rb,
lib/solargraph/yardoc.rb,
lib/solargraph/api_map.rb,
lib/solargraph/doc_map.rb,
lib/solargraph/environ.rb,
lib/solargraph/library.rb,
lib/solargraph/logging.rb,
lib/solargraph/rbs_map.rb,
lib/solargraph/version.rb,
lib/solargraph/equality.rb,
lib/solargraph/gem_pins.rb,
lib/solargraph/location.rb,
lib/solargraph/pin/base.rb,
lib/solargraph/position.rb,
lib/solargraph/yard_map.rb,
lib/solargraph/pin/block.rb,
lib/solargraph/pin/until.rb,
lib/solargraph/pin/while.rb,
lib/solargraph/pin_cache.rb,
lib/solargraph/workspace.rb,
lib/solargraph/yard_tags.rb,
lib/solargraph/convention.rb,
lib/solargraph/pin/common.rb,
lib/solargraph/pin/method.rb,
lib/solargraph/pin/search.rb,
lib/solargraph/pin/symbol.rb,
lib/solargraph/source_map.rb,
lib/solargraph/diagnostics.rb,
lib/solargraph/pin/closure.rb,
lib/solargraph/pin/keyword.rb,
lib/solargraph/complex_type.rb,
lib/solargraph/pin/callable.rb,
lib/solargraph/pin/constant.rb,
lib/solargraph/source/chain.rb,
lib/solargraph/type_checker.rb,
lib/solargraph/api_map/cache.rb,
lib/solargraph/api_map/index.rb,
lib/solargraph/api_map/store.rb,
lib/solargraph/parser/region.rb,
lib/solargraph/pin/breakable.rb,
lib/solargraph/pin/namespace.rb,
lib/solargraph/pin/parameter.rb,
lib/solargraph/pin/reference.rb,
lib/solargraph/pin/signature.rb,
lib/solargraph/pin/singleton.rb,
lib/solargraph/source/change.rb,
lib/solargraph/source/cursor.rb,
lib/solargraph/parser/snippet.rb,
lib/solargraph/pin/proxy_type.rb,
lib/solargraph/rbs_translator.rb,
lib/solargraph/server_methods.rb,
lib/solargraph/source/updater.rb,
lib/solargraph/yard_map/cache.rb,
lib/solargraph/yard_map/macro.rb,
lib/solargraph/convention/base.rb,
lib/solargraph/language_server.rb,
lib/solargraph/pin/conversions.rb,
lib/solargraph/pin/documenting.rb,
lib/solargraph/pin/duck_method.rb,
lib/solargraph/source/chain/if.rb,
lib/solargraph/source/chain/or.rb,
lib/solargraph/source_map/clip.rb,
lib/solargraph/source_map/data.rb,
lib/solargraph/yard_map/mapper.rb,
lib/solargraph/diagnostics/base.rb,
lib/solargraph/pin/method_alias.rb,
lib/solargraph/rbs_map/core_map.rb,
lib/solargraph/workspace/config.rb,
lib/solargraph/yard_map/helpers.rb,
lib/solargraph/api_map/constants.rb,
lib/solargraph/parser/parser_gem.rb,
lib/solargraph/pin/base_variable.rb,
lib/solargraph/pin/keyword_param.rb,
lib/solargraph/source/chain/call.rb,
lib/solargraph/source/chain/hash.rb,
lib/solargraph/source/chain/head.rb,
lib/solargraph/source/chain/link.rb,
lib/solargraph/source_map/mapper.rb,
lib/solargraph/convention/gemfile.rb,
lib/solargraph/convention/gemspec.rb,
lib/solargraph/pin/class_variable.rb,
lib/solargraph/pin/local_variable.rb,
lib/solargraph/rbs_map/core_fills.rb,
lib/solargraph/rbs_map/stdlib_map.rb,
lib/solargraph/source/chain/array.rb,
lib/solargraph/type_checker/rules.rb,
lib/solargraph/workspace/gemspecs.rb,
lib/solargraph/convention/rakefile.rb,
lib/solargraph/diagnostics/rubocop.rb,
lib/solargraph/pin/global_variable.rb,
lib/solargraph/rbs_map/conversions.rb,
lib/solargraph/source/chain/q_call.rb,
lib/solargraph/yard_map/directives.rb,
lib/solargraph/language_server/host.rb,
lib/solargraph/pin/delegated_method.rb,
lib/solargraph/pin/reference/extend.rb,
lib/solargraph/source/chain/literal.rb,
lib/solargraph/source/chain/z_super.rb,
lib/solargraph/type_checker/problem.rb,
lib/solargraph/parser/comment_ripper.rb,
lib/solargraph/parser/node_processor.rb,
lib/solargraph/pin/instance_variable.rb,
lib/solargraph/pin/reference/include.rb,
lib/solargraph/pin/reference/prepend.rb,
lib/solargraph/pin/reference/require.rb,
lib/solargraph/source/chain/constant.rb,
lib/solargraph/source/chain/variable.rb,
lib/solargraph/source/encoding_fixes.rb,
lib/solargraph/source/source_chainer.rb,
lib/solargraph/source_map/completion.rb,
lib/solargraph/api_map/source_to_yard.rb,
lib/solargraph/diagnostics/severities.rb,
lib/solargraph/diagnostics/type_check.rb,
lib/solargraph/pin/compound_statement.rb,
lib/solargraph/pin/reference/override.rb,
lib/solargraph/language_server/message.rb,
lib/solargraph/language_server/request.rb,
lib/solargraph/workspace/require_paths.rb,
lib/solargraph/complex_type/conformance.rb,
lib/solargraph/complex_type/unique_type.rb,
lib/solargraph/language_server/progress.rb,
lib/solargraph/pin/reference/superclass.rb,
lib/solargraph/pin/reference/type_alias.rb,
lib/solargraph/complex_type/type_methods.rb,
lib/solargraph/diagnostics/update_errors.rb,
lib/solargraph/language_server/transport.rb,
lib/solargraph/source/chain/block_symbol.rb,
lib/solargraph/yard_map/mapper/to_method.rb,
lib/solargraph/convention/data_definition.rb,
lib/solargraph/parser/node_processor/base.rb,
lib/solargraph/diagnostics/rubocop_helpers.rb,
lib/solargraph/language_server/error_codes.rb,
lib/solargraph/language_server/uri_helpers.rb,
lib/solargraph/source/chain/block_variable.rb,
lib/solargraph/source/chain/class_variable.rb,
lib/solargraph/yard_map/mapper/to_constant.rb,
lib/solargraph/convention/struct_definition.rb,
lib/solargraph/language_server/host/sources.rb,
lib/solargraph/language_server/message/base.rb,
lib/solargraph/language_server/symbol_kinds.rb,
lib/solargraph/parser/flow_sensitive_typing.rb,
lib/solargraph/source/chain/global_variable.rb,
lib/solargraph/yard_map/mapper/to_namespace.rb,
lib/solargraph/diagnostics/require_not_found.rb,
lib/solargraph/language_server/host/dispatch.rb,
lib/solargraph/language_server/message_types.rb,
lib/solargraph/language_server/host/diagnoser.rb,
lib/solargraph/language_server/message/client.rb,
lib/solargraph/parser/parser_gem/node_chainer.rb,
lib/solargraph/parser/parser_gem/node_methods.rb,
lib/solargraph/source/chain/instance_variable.rb,
lib/solargraph/parser/parser_gem/class_methods.rb,
lib/solargraph/language_server/message/extended.rb,
lib/solargraph/language_server/message/shutdown.rb,
lib/solargraph/parser/parser_gem/flawed_builder.rb,
lib/solargraph/convention/active_support_concern.rb,
lib/solargraph/language_server/message/workspace.rb,
lib/solargraph/language_server/transport/adapter.rb,
lib/solargraph/parser/parser_gem/node_processors.rb,
lib/solargraph/language_server/message/initialize.rb,
lib/solargraph/language_server/host/message_worker.rb,
lib/solargraph/language_server/message/initialized.rb,
lib/solargraph/yard_map/directives/parse_directive.rb,
lib/solargraph/yard_map/directives/domain_directive.rb,
lib/solargraph/yard_map/directives/method_directive.rb,
lib/solargraph/language_server/completion_item_kinds.rb,
lib/solargraph/language_server/message/text_document.rb,
lib/solargraph/language_server/transport/data_reader.rb,
lib/solargraph/language_server/message/cancel_request.rb,
lib/solargraph/yard_map/directives/override_directive.rb,
lib/solargraph/language_server/message/completion_item.rb,
lib/solargraph/language_server/message/extended/search.rb,
lib/solargraph/yard_map/directives/attribute_directive.rb,
lib/solargraph/language_server/message/method_not_found.rb,
lib/solargraph/yard_map/directives/visibility_directive.rb,
lib/solargraph/language_server/message/exit_notification.rb,
lib/solargraph/language_server/message/extended/document.rb,
lib/solargraph/parser/parser_gem/node_processors/if_node.rb,
lib/solargraph/parser/parser_gem/node_processors/or_node.rb,
lib/solargraph/language_server/message/text_document/base.rb,
lib/solargraph/parser/parser_gem/node_processors/and_node.rb,
lib/solargraph/parser/parser_gem/node_processors/def_node.rb,
lib/solargraph/parser/parser_gem/node_processors/sym_node.rb,
lib/solargraph/language_server/message/text_document/hover.rb,
lib/solargraph/parser/parser_gem/node_processors/args_node.rb,
lib/solargraph/parser/parser_gem/node_processors/defs_node.rb,
lib/solargraph/parser/parser_gem/node_processors/send_node.rb,
lib/solargraph/parser/parser_gem/node_processors/when_node.rb,
lib/solargraph/language_server/message/extended/environment.rb,
lib/solargraph/language_server/message/text_document/rename.rb,
lib/solargraph/parser/parser_gem/node_processors/alias_node.rb,
lib/solargraph/parser/parser_gem/node_processors/begin_node.rb,
lib/solargraph/parser/parser_gem/node_processors/block_node.rb,
lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/until_node.rb,
lib/solargraph/parser/parser_gem/node_processors/while_node.rb,
lib/solargraph/parser/parser_gem/node_processors/cvasgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb,
lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb,
lib/solargraph/language_server/message/extended/document_gems.rb,
lib/solargraph/language_server/message/extended/download_core.rb,
lib/solargraph/language_server/message/method_not_implemented.rb,
lib/solargraph/language_server/message/text_document/did_open.rb,
lib/solargraph/language_server/message/text_document/did_save.rb,
lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb,
lib/solargraph/convention/data_definition/data_assignment_node.rb,
lib/solargraph/convention/data_definition/data_definition_node.rb,
lib/solargraph/language_server/message/completion_item/resolve.rb,
lib/solargraph/language_server/message/text_document/did_close.rb,
lib/solargraph/language_server/message/text_document/completion.rb,
lib/solargraph/language_server/message/text_document/definition.rb,
lib/solargraph/language_server/message/text_document/did_change.rb,
lib/solargraph/language_server/message/text_document/formatting.rb,
lib/solargraph/language_server/message/text_document/references.rb,
lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb,
lib/solargraph/language_server/message/text_document/code_action.rb,
lib/solargraph/language_server/message/client/register_capability.rb,
lib/solargraph/language_server/message/extended/check_gem_version.rb,
lib/solargraph/language_server/message/workspace/workspace_symbol.rb,
lib/solargraph/convention/struct_definition/struct_assignment_node.rb,
lib/solargraph/convention/struct_definition/struct_definition_node.rb,
lib/solargraph/language_server/message/text_document/folding_range.rb,
lib/solargraph/language_server/message/text_document/prepare_rename.rb,
lib/solargraph/language_server/message/text_document/signature_help.rb,
lib/solargraph/language_server/message/text_document/document_symbol.rb,
lib/solargraph/language_server/message/text_document/type_definition.rb,
lib/solargraph/language_server/message/text_document/document_highlight.rb,
lib/solargraph/language_server/message/text_document/on_type_formatting.rb,
lib/solargraph/language_server/message/workspace/did_change_configuration.rb,
lib/solargraph/language_server/message/workspace/did_change_watched_files.rb,
lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb
Overview
github.com/whitequark/parser rubocop:disable Metrics/ModuleLength
Defined Under Namespace
Modules: Convention, Diagnostics, Equality, GemPins, LanguageServer, Logging, Parser, Pin, PinCache, RbsTranslator, ServerMethods, Yardoc Classes: ApiMap, Bench, BundleNotFoundError, ComplexType, ComplexTypeError, DiagnosticsError, DocMap, DomainDirective, Environ, FileNotFoundError, InvalidOffsetError, InvalidRubocopVersionError, Library, Location, Page, Position, Range, RbsMap, Shell, Source, SourceMap, SourceNotAvailableError, TypeChecker, Workspace, WorkspaceTooLargeError, YardMap
Constant Summary collapse
- VIEWS_PATH =
File.join(dir, 'solargraph', 'views')
- CHDIR_MUTEX =
Mutex.new
- VERSION =
ENV.fetch('SOLARGRAPH_FORCE_VERSION', '0.60.0')
Class Method Summary collapse
- .assert_or_log(type, msg = nil, &block) ⇒ void
- .asserts_on? ⇒ Boolean
-
.logger ⇒ Logger
A convenience method for Solargraph::Logging.logger.
-
.with_clean_env ⇒ generic<T>
A helper method that runs Bundler.with_unbundled_env or falls back to Bundler.with_clean_env for earlier versions of Bundler.
Class Method Details
.assert_or_log(type, msg = nil, &block) ⇒ void
This method returns an undefined value.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/solargraph.rb', line 75 def self.assert_or_log type, msg = nil, &block if asserts_on? # @type [String, nil] msg ||= block.call raise "No message given for #{type.inspect}" if msg.nil? # conditional aliases to handle compatibility corner cases # @sg-ignore flow sensitive typing needs to handle 'raise if' return if type == :alias_target_missing && msg.include?('highline/compatibility.rb') # @sg-ignore flow sensitive typing needs to handle 'raise if' return if type == :alias_target_missing && msg.include?('lib/json/add/date.rb') # @sg-ignore flow sensitive typing needs to handle 'raise if' return if type == :alias_target_missing && msg.include?('rubocop-ast.rbs') # @todo :combine_with_visibility is not ready for prime time - # lots of disagreements found in practice that heuristics need # to be created for and/or debugging needs to resolve in pin # generation. # @todo :api_map_namespace_pin_stack triggers in a badly handled # self type case - 'keeps track of self type in method # parameters in subclass' in call_spec.rb return if %i[api_map_namespace_pin_stack combine_with_visibility].include?(type) raise msg end logger.info msg, &block end |
.asserts_on? ⇒ Boolean
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/solargraph.rb', line 59 def self.asserts_on? # @sg-ignore Translate to something flow sensitive typing understands if ENV['SOLARGRAPH_ASSERTS'].nil? || ENV['SOLARGRAPH_ASSERTS'].empty? false elsif ENV['SOLARGRAPH_ASSERTS'] == 'on' true else logger.warn "Unrecognized SOLARGRAPH_ASSERTS value: #{ENV['SOLARGRAPH_ASSERTS']}" false end end |
.logger ⇒ Logger
A convenience method for Solargraph::Logging.logger.
106 107 108 |
# File 'lib/solargraph.rb', line 106 def self.logger Solargraph::Logging.logger end |
.with_clean_env ⇒ generic<T>
A helper method that runs Bundler.with_unbundled_env or falls back to Bundler.with_clean_env for earlier versions of Bundler.
@sg-ignore dynamic call, but both functions behave the same
117 118 119 120 121 122 123 124 |
# File 'lib/solargraph.rb', line 117 def self.with_clean_env(&) meth = if Bundler.respond_to?(:with_original_env) :with_original_env else :with_clean_env end Bundler.send(meth, &) end |