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/server_methods.rb,
lib/solargraph/source/updater.rb,
lib/solargraph/yard_map/cache.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/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/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/language_server/message/completion_item.rb,
lib/solargraph/language_server/message/extended/search.rb,
lib/solargraph/language_server/message/method_not_found.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
Defined Under Namespace
Modules: Convention, Diagnostics, Equality, GemPins, LanguageServer, Logging, Parser, Pin, PinCache, 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.59.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(&block) ⇒ 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.
74 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 |
# File 'lib/solargraph.rb', line 74 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
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/solargraph.rb', line 58 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.
105 106 107 |
# File 'lib/solargraph.rb', line 105 def self.logger Solargraph::Logging.logger end |
.with_clean_env(&block) ⇒ 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
116 117 118 119 120 121 122 123 |
# File 'lib/solargraph.rb', line 116 def self.with_clean_env &block meth = if Bundler.respond_to?(:with_original_env) :with_original_env else :with_clean_env end Bundler.send meth, &block end |