The current version of the search input prototype does not include a separate input element for the search context. Instead the search context is treated like any other filter, except we style it slightly differently (see video). This diff does a couple of things: - Adds support for value completion for the context: filter. - Renders context: filters differently from other filters in the input. - Refactors the whole suggestions implementation so that it will be easier to add new suggestion sources in the future. - Introduces a custom version of the built-in placeholder extension that allows us to overwrite when/how the placeholder should be visible. This diff also fixes an issue where we did not update the selected search context correctly when it wasn't present in a query. I also had to update @codemirror/view and @codemirror/state to fix an issue with rendering decorations. This doesn't seem to have any effect on the current search input. Unfortunately it didn't fix all the issues (which I also point out in the video). NOTE: Keep in mind that this is still a prototype and we are still verifying our approach. You might not agree with how search contexts work in this version, but that should not be the focus of the code review here. |
||
|---|---|---|
| .aspect | ||
| .buildkite | ||
| .github | ||
| .vscode | ||
| client | ||
| cmd | ||
| dev | ||
| doc | ||
| docker-images | ||
| enterprise | ||
| internal | ||
| lib | ||
| migrations | ||
| monitoring | ||
| schema | ||
| third-party-licenses | ||
| ui/assets | ||
| .bazelignore | ||
| .bazelrc | ||
| .bazelversion | ||
| .browserslistrc | ||
| .dockerignore | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc.js | ||
| .gitattributes | ||
| .gitignore | ||
| .golangci-warn.yml | ||
| .golangci.yml | ||
| .graphqlrc.yml | ||
| .hadolint.yaml | ||
| .mailmap | ||
| .mocharc.js | ||
| .npmrc | ||
| .percy.yml | ||
| .prettierignore | ||
| .stylelintignore | ||
| .stylelintrc.json | ||
| .tool-versions | ||
| .trivyignore | ||
| babel.config.js | ||
| BUILD.bazel | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| doc.go | ||
| flake.lock | ||
| flake.nix | ||
| gen.go | ||
| go.mod | ||
| go.sum | ||
| graphql-schema-linter.config.js | ||
| gulpfile.js | ||
| jest.config.base.js | ||
| jest.config.js | ||
| LICENSE | ||
| LICENSE.apache | ||
| LICENSE.enterprise | ||
| lighthouserc.js | ||
| mockgen.temp.yaml | ||
| mockgen.test.yaml | ||
| mockgen.yaml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| postcss.config.js | ||
| prettier.config.js | ||
| README.md | ||
| renovate.json | ||
| SECURITY.md | ||
| sg.config.yaml | ||
| shell.nix | ||
| svgo.config.js | ||
| tsconfig.all.json | ||
| tsconfig.bazel.json | ||
| tsconfig.eslint.json | ||
| tsconfig.json | ||
| WORKSPACE | ||
Docs •
Contributing •
Twitter
Understand, fix, and automate across your codebase with Sourcegraph's code intelligence platform
4.0 Features
🧠 Code intelligence: uplevel your code search
- Understand usage and search structure with high-level aggregations of search results
- A faster, simpler search experience
- Configure precise code navigation for 9 languages (Ruby, Rust, Go, Java, Scala, Kotlin, Python, TypeScript, JavaScript) in a matter of minutes with auto-indexing
- Your favorite extensions are now available by default
- Quickly access answers within your codebase with a revamped reference panel
🏗️ High-leverage ways to improve your entire codebase
- Make changes across all of your codebase at enterprise scale with server-side Batch Changes (beta)
- Run large-scale or resource-intensive batch changes without clogging your local machine
- Run large batch changes quickly by distributing them across an autoscaled pool of compute instances
- Get a better debugging experience with the streaming of logs directly into Sourcegraph.
☁️ Dedicated Sourcegraph Cloud instances for enterprise
- Sourcegraph Cloud now offers dedicated, single-tenant instances of Sourcegraph
📈 Advanced admin capabilities
- Save time upgrading to Sourcegraph 4.0 with multi-version upgrades
- View usage and measure the value of our platform with new and enhanced in-product analytics
- Uncover developer time saved using Browser and IDE extensions
- Easily export traces using OpenTelemetry
- Quickly see the status on your repository and permissions syncing
- Measure precise code navigation coverage with an enhanced analytics dashboard
Deploy Sourcegraph
Recommended
- Sourcegraph Cloud: create a single-tenant instance managed by Sourcegraph
Self-hosted
Local machine
Development
Refer to the Developing Sourcegraph guide to get started.
Documentation
The doc directory has additional documentation for developing and understanding Sourcegraph:
- Project FAQ
- Architecture: high-level architecture
- Database setup: database best practices
- Go style guide
- Documentation style guide
- GraphQL API: useful tips when modifying the GraphQL API
- Contributing
License
This repository contains both OSS-licensed and non-OSS-licensed files. We maintain one repository rather than two separate repositories mainly for development convenience.
All files in the enterprise and client/web/src/enterprise fall under LICENSE.enterprise.
The remaining files fall under the Apache 2 license. Sourcegraph OSS is built only from the Apache-licensed files in this repository.