Sha256: 4607279d0b6442d23aa9e05698c922b4a269a56a9929c6af5b95bfe8f6102008

Contents?: true

Size: 1.03 KB

Versions: 5

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module PlatformosCheck
  module LanguageServer
    class ThemeRenderDocumentLinkProvider < DocumentLinkProvider
      @partial_regexp = PARTIAL_THEME_RENDER
      @app_file_type = :partials
      @default_dir = 'views/partials'
      @default_extension = '.liquid'

      def file_link(match, platformos_app)
        partial = match[:partial]
        relative_path = nil
        path_prefixes(platformos_app).each do |prefix|
          prefix ||= ''
          partial_with_prefix = (prefix.split(File::SEPARATOR) + [partial]).join(File::SEPARATOR)
          relative_path = platformos_app.send(app_file_type).detect { |f| f.name == partial_with_prefix }&.relative_path
          break if relative_path
        end

        relative_path ||= default_relative_path(partial)

        file_uri(@storage.path(relative_path))
      end

      private

      def path_prefixes(platformos_app)
        platformos_app.app_config.content['theme_search_paths'] || ['']
      rescue StandardError
        ['']
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
platformos-check-0.4.14 lib/platformos_check/language_server/document_link_providers/theme_render_document_link_provider.rb
platformos-check-0.4.13 lib/platformos_check/language_server/document_link_providers/theme_render_document_link_provider.rb
platformos-check-0.4.12 lib/platformos_check/language_server/document_link_providers/theme_render_document_link_provider.rb
platformos-check-0.4.11 lib/platformos_check/language_server/document_link_providers/theme_render_document_link_provider.rb
platformos-check-0.4.10 lib/platformos_check/language_server/document_link_providers/theme_render_document_link_provider.rb