Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/platforms/android/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Sentry captures data by using an SDK within your application's runtime. These ar

We recommend installing the SDK through our [Sentry Wizard](https://github.com/getsentry/sentry-wizard) by running one of the following commands inside your project directory:

```bash {tabTitle:brew}
```bash {tabTitle:brew} {mdExpandTabs}
brew install getsentry/tools/sentry-wizard && sentry-wizard -i android
```

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/android/integrations/spotlight/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ If you need Spotlight in all build types, use `implementation` instead of `debug

## Configure

```xml {tabTitle:XML}
```xml {tabTitle:XML} {mdExpandTabs}
<application>
<!-- Enable Spotlight -->
<meta-data android:name="io.sentry.spotlight.enable" android:value="true" />
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/android/session-replay/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ If you've configured `networkDetailAllowUrls` but don't see request/response bod

</Alert>
Any URL matching the given pattern(s) will then be captured with additional details:
```kotlin {tabTitle:Kotlin}
```kotlin {tabTitle:Kotlin} {mdExpandTabs}
SentryAndroid.init(this) { options ->
options.sessionReplay.networkDetailAllowUrls = listOf("https://example.com")
}
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/android/troubleshooting/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ android {
The Sentry Android SDK may trigger ANRs or StrictMode violations due to minimal file I/O operations required for event processing and context collection.
Since version `6.1.1` of the Sentry SDK for Android you can reduce violations by disabling additional context collection:

```xml {tabTitle:AndroidManifest.xml}
```xml {tabTitle:AndroidManifest.xml} {mdExpandTabs}
<application>
<meta-data android:name="io.sentry.additional-context" android:value="false" />
</application>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ If you want to capture view hierarchies regardless of the debounce, you can igno

</Alert>

```dart {tabTitle: Respect debounce} {2-9}
```dart {tabTitle: Respect debounce} {mdExpandTabs} {2-9}
await SentryFlutter.init((options) {
options.beforeCaptureViewHierarchy = (event, hint, shouldDebounce) async {
// If debounce is active, skip capturing
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/dart/guides/flutter/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Sentry captures data by using an SDK within your application's runtime. These ar

We recommend installing the SDK through our [Sentry Wizard](https://github.com/getsentry/sentry-wizard) by running one of the following commands inside your project directory:

```bash {tabTitle:brew}
```bash {tabTitle:brew} {mdExpandTabs}
brew install getsentry/tools/sentry-wizard && sentry-wizard -i flutter
```

Expand Down
4 changes: 2 additions & 2 deletions docs/platforms/dotnet/guides/aspnetcore/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ The simplest way to initialize Sentry in ASP.NET Core is by using the `UseSentry

When configuring the SDK via the frameworks configuration system, it's possible to add the SDK by simply calling `UseSentry` without providing any further information. The SDK provides this as extension methods to support ASP.NET Core `2.X`, `3.X`, and `5.X` and later:

```csharp {tabTitle:WebApplication}
```csharp {tabTitle:WebApplication} {mdExpandTabs}
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseSentry(); // Initialize Sentry
```
Expand Down Expand Up @@ -95,7 +95,7 @@ Setting `TracesSampleRate` to `1.0` in this example configures Sentry to capture

It's also possible to bind properties to the SDK via environment variables, like:

```shell {tabTitle:Windows}
```shell {tabTitle:Windows} {mdExpandTabs}
set Sentry__Debug=true
```

Expand Down
8 changes: 4 additions & 4 deletions docs/platforms/godot/configuration/stack-traces.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Ensure you have a compatible C++ compiler. On Windows, for instance, you can use

Here are a few ways to install the **SCons** build tool:

```PowerShell {tabTitle:Windows}
```PowerShell {tabTitle:Windows} {mdExpandTabs}
# If you have `scoop` installed:
scoop install scons
```
Expand Down Expand Up @@ -73,7 +73,7 @@ For Android compilation, Godot requires the Swappy frame pacing library. Downloa

To compile the Godot export templates with debug symbols, run the following commands:

```bash {tabTitle:Windows/Linux}
```bash {tabTitle:Windows/Linux} {mdExpandTabs}
scons target=template_release production=yes debug_symbols=yes separate_debug_symbols=yes
```

Expand Down Expand Up @@ -169,7 +169,7 @@ In order to get readable stack traces in Sentry, you also need to upload your de

<Expandable title="Installing Sentry CLI">

```PowerShell {tabTitle:Windows}
```PowerShell {tabTitle:Windows} {mdExpandTabs}
# On Windows, if you have `scoop` installed:
scoop install sentry-cli
```
Expand Down Expand Up @@ -219,7 +219,7 @@ For iOS projects, you must export your project to a directory first, then run th

You can also create the source bundles separately from the upload step by running:

```PowerShell {tabTitle:Windows}
```PowerShell {tabTitle:Windows} {mdExpandTabs}
sentry-cli debug-files bundle-sources bin\godot.windows.template_release.x86_64.pdb
sentry-cli debug-files bundle-sources bin\godot.windows.template_release.x86_64.console.pdb
```
Expand Down
6 changes: 3 additions & 3 deletions docs/platforms/java/common/async/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Sentry's SDK for Java stores the scope and the context in a thread-local variabl

To propagate Sentry scope to Spring MVC methods returning a `Callable` or a `StreamingResponseBody`, a `ThreadPoolTaskExecutor` decorated with `SentryTaskDecorator` must be set on the `AsyncSupportConfigurer` through an implementation of `WebMvcConfigurer`:

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import org.springframework.context.annotation.Configuration;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
Expand Down Expand Up @@ -168,7 +168,7 @@ class AsyncWebMvcConfiguration : WebMvcConfigurer {

Alternatively, if there is a single bean of type `TaskDecorator` in the context, instead of custom `WebMvcConfigurer`, it is enough to create a `SentryTaskDecorator` bean.

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

Expand Down Expand Up @@ -264,7 +264,7 @@ class SentryConfig {

To propagate Sentry scope to Spring `@Async` annotated methods, a custom `AsyncConfigurerSupport` must be configured to return a `ThreadPoolTaskExecutor` decorated with `SentryTaskDecorator`:

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurerSupport;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/java/common/integrations/graphql.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ If you're using version 22 of `graphql-java`, please refer to <PlatformLink to="

To install use:

```groovy {tabTitle:Gradle Plugin}
```groovy {tabTitle:Gradle Plugin} {mdExpandTabs}
plugins {
id "io.sentry.jvm.gradle" version "{{@inject packages.version('sentry.java.android.gradle-plugin', '3.12.0') }}"
}
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/java/common/integrations/graphql22.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ If you're using version 21 or older of `graphql-java`, please refer to <Platform

To install use:

```groovy {tabTitle:Gradle Plugin}
```groovy {tabTitle:Gradle Plugin} {mdExpandTabs}
plugins {
id "io.sentry.jvm.gradle" version "{{@inject packages.version('sentry.java.android.gradle-plugin', '3.12.0') }}"
}
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/java/common/integrations/quartz.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Check-ins may also be [sent manually](/platforms/java/crons/) or if you're using

To install use:

```groovy {tabTitle:Gradle Plugin}
```groovy {tabTitle:Gradle Plugin} {mdExpandTabs}
plugins {
id "io.sentry.jvm.gradle" version "{{@inject packages.version('sentry.java.android.gradle-plugin', '3.13.0') }}"
}
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/java/guides/spring-boot/record-user.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ sentry:

To record custom user information, you can register a bean that implements `SentryUserProvider` interface.

```java {tabTitle:Java (Spring Boot 2)}
```java {tabTitle:Java (Spring Boot 2)} {mdExpandTabs}
import org.springframework.stereotype.Component;
import io.sentry.protocol.User;
import io.sentry.spring.SentryUserProvider;
Expand Down
10 changes: 5 additions & 5 deletions docs/platforms/java/guides/spring/advanced-usage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ To record the user's IP address and `Principal#name` as the username so you can
1. Set the personal information flag on `@EnableSentry` to `true`.


```Java {tabTitle:Java (Spring 5)}
```Java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import org.springframework.context.annotation.Configuration;
import io.sentry.spring.EnableSentry;

Expand Down Expand Up @@ -73,7 +73,7 @@ class SentryConfiguration

2. Register the servlet filter bean `SentryUserFilter`:

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import io.sentry.IHub;
import io.sentry.spring.SentryUserFilter;
import io.sentry.spring.SentryUserProvider;
Expand Down Expand Up @@ -174,7 +174,7 @@ class SentryFilterConfig {

3. Configure `SentryUserFilter` in `web.xml` or `WebApplicationInitializer` using `DelegatingFilterProxy`:

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import javax.servlet.Filter;
import org.springframework.web.filter.DelegatingFilterProxy;
import org.springframework.web.filter.RequestContextFilter;
Expand Down Expand Up @@ -356,7 +356,7 @@ class AppInitializer : AbstractAnnotationConfigDispatcherServletInitializer() {

By default, the username is retrieved from `HttpServletRequest#userPrincipal`. To retrieve the username from Spring Security context, register the `SpringSecuritySentryUserProvider` bean:

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import io.sentry.SentryOptions;
import io.sentry.spring.SpringSecuritySentryUserProvider;
import org.springframework.context.annotation.Bean;
Expand Down Expand Up @@ -447,7 +447,7 @@ class SecuritySentryConfig {

To record custom user information, you can register a bean that implements `SentryUserProvider` interface.

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import org.springframework.stereotype.Component;
import io.sentry.protocol.User;
import io.sentry.spring.SentryUserProvider;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Each sampled request executed by this controller method will be turned into a tr

Sentry Spring integration provides `SentrySpanClientHttpRequestInterceptor` that creates a span for each outgoing HTTP request executed with a `RestTemplate`. To use instrumented `RestTemplate` make sure to set interceptor on the `RestTemplate` bean:

```java {tabTitle:Java (Spring 5)}
```java {tabTitle:Java (Spring 5)} {mdExpandTabs}
import io.sentry.IScopes;
import io.sentry.spring.tracing.SentrySpanClientHttpRequestInterceptor;
import java.util.Collections;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ for the multiplexed transport to reference for routing.

**Install the below code snippet in your host:**

```javascript {tabTitle:NPM}{index.js}
```javascript {tabTitle:NPM} {mdExpandTabs} {index.js}
import {
init,
makeFetchTransport,
Expand Down Expand Up @@ -226,7 +226,7 @@ you can use the multiplexed transport's API to route events to specific projects

The simplest way to manually route events is by using the default matcher with `MULTIPLEXED_TRANSPORT_EXTRA_KEY`:

```javascript {tabTitle:NPM}
```javascript {tabTitle:NPM} {mdExpandTabs}
import {
captureException,
init,
Expand Down Expand Up @@ -288,7 +288,7 @@ For more advanced routing logic, you can provide a custom matcher function. The
send the event to. If the event doesn't have a `feature` tag, we send it to the
fallback DSN defined in `Sentry.init`.

```javascript {tabTitle:NPM}
```javascript {tabTitle:NPM} {mdExpandTabs}
import {
captureException,
init,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,7 @@ This integration includes the minimum amount of code needed upfront to show the

For CDN users `feedbackIntegration` is an alias of `feedbackAsyncIntegration`.

```javascript {tabTitle: Default Strategy}
```javascript {tabTitle: Default Strategy} {mdExpandTabs}
import * as Sentry from "@sentry/browser";

Sentry.init({
Expand Down Expand Up @@ -490,7 +490,7 @@ Sentry.init({

For NPM users `feedbackIntegration` is an alias of `feedbackSyncIntegration`.

```javascript {tabTitle: Default Strategy}
```javascript {tabTitle: Default Strategy} {mdExpandTabs}
import * as Sentry from "@sentry/browser";

Sentry.init({
Expand Down
4 changes: 2 additions & 2 deletions docs/platforms/javascript/guides/angular/manual-setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ The main configuration should happen as early as possible in your app's lifecycl

<SplitSectionCode>

```typescript {tabTitle: App Config} {filename: main.ts} {5-48}
```typescript {tabTitle: App Config} {mdExpandTabs} {filename: main.ts} {5-48}
import { bootstrapApplication } from "@angular/platform-browser";
import { appConfig } from "./app/app.config";
import { AppComponent } from "./app/app.component";
Expand Down Expand Up @@ -262,7 +262,7 @@ If your Angular app is configured for SSR, make sure that the Sentry providers a

<SplitSectionCode>

```typescript {tabTitle: App Config (Angular 19+)} {filename: app.config.ts} {9, 14-25}
```typescript {tabTitle: App Config (Angular 19+)} {mdExpandTabs} {filename: app.config.ts} {9, 14-25}
import {
ApplicationConfig,
ErrorHandler,
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/javascript/guides/aws-lambda/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ After installing the SDK, you might want to configure some parameters. Besides t

Once set up, verify that Sentry is reporting errors correctly by throwing a sample error in one of your functions:

```javascript {filename:index.js}{tabTitle:CommonJS}{2}
```javascript {filename:index.js}{tabTitle:CommonJS} {mdExpandTabs}{2}
exports.handler = async (event, context) => {
throw new Error("This is a test error");
};
Expand Down
4 changes: 2 additions & 2 deletions docs/platforms/javascript/guides/capacitor/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ To verify that Sentry captures errors and creates issues in your Sentry project,
</SplitSectionText>
<SplitSectionCode>

```javascript {tabTitle: Angular 12, 13, 14+}
```javascript {tabTitle: Angular 12, 13, 14+} {mdExpandTabs}
@Component({
selector: "app-root",
template: `
Expand Down Expand Up @@ -202,7 +202,7 @@ Then, open the page in a browser and click the button to trigger a frontend erro
</SplitSectionText>
<SplitSectionCode>

```javascript {tabTitle: Angular 12, 13, 14+}
```javascript {tabTitle: Angular 12, 13, 14+} {mdExpandTabs}
import * as Sentry from "@sentry/capacitor";

@Component({
Expand Down
4 changes: 2 additions & 2 deletions docs/platforms/javascript/guides/elysia/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Run the command for your runtime and preferred package manager to add the Sentry
</SplitSectionText>
<SplitSectionCode>

```bash {tabTitle:Bun}
```bash {tabTitle:Bun} {mdExpandTabs}
bun add @sentry/elysia
```

Expand All @@ -79,7 +79,7 @@ Call `Sentry.init()` before creating your Elysia app, then wrap the app with `Se
</SplitSectionText>
<SplitSectionCode>

```javascript {tabTitle:Bun} {filename: index.ts}
```javascript {tabTitle:Bun} {mdExpandTabs} {filename: index.ts}
import * as Sentry from "@sentry/elysia";
import { Elysia } from "elysia";

Expand Down
4 changes: 2 additions & 2 deletions docs/platforms/javascript/guides/gcp-functions/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Let's verify that Sentry captures errors and creates issues in your Sentry proje
</SplitSectionText>
<SplitSectionCode>

```javascript {tabTitle:Http functions}
```javascript {tabTitle:Http functions} {mdExpandTabs}
exports.helloHttp = Sentry.wrapHttpFunction((req, res) => {
throw new Error("Sentry Test Error - This is intentional!");
});
Expand Down Expand Up @@ -123,7 +123,7 @@ To test tracing, wrap your code in a span:
</SplitSectionText>
<SplitSectionCode>

```javascript {tabTitle:Http functions}
```javascript {tabTitle:Http functions} {mdExpandTabs}
exports.helloHttp = Sentry.wrapHttpFunction(async (req, res) => {
await Sentry.startSpan(
{ op: "test", name: "My First Test Transaction" },
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/javascript/guides/hono/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ The SDK needs a runtime-specific peer dependency. Install the one that matches y
</SplitSectionText>
<SplitSectionCode>

```bash {tabTitle:Cloudflare Workers}
```bash {tabTitle:Cloudflare Workers} {mdExpandTabs}
npm install @sentry/cloudflare
```

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/javascript/guides/nextjs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Next.js runs code in different environments. The wizard creates separate initial
</SplitSectionText>
<SplitSectionCode>

```typescript {tabTitle:Client} {filename:instrumentation-client.ts}
```typescript {tabTitle:Client} {mdExpandTabs} {filename:instrumentation-client.ts}
import * as Sentry from "@sentry/nextjs";

Sentry.init({
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/javascript/guides/nextjs/logs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Logs work across all Next.js runtimes:
</SplitSectionText>
<SplitSectionCode>

```typescript {tabTitle:Client} {filename:instrumentation-client.ts}
```typescript {tabTitle:Client} {mdExpandTabs} {filename:instrumentation-client.ts}
import * as Sentry from "@sentry/nextjs";

Sentry.init({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ Create the following files in your application's root directory (or `src` folder
</SplitSectionText>
<SplitSectionCode>

```typescript {tabTitle:Client} {filename:instrumentation-client.ts}
```typescript {tabTitle:Client} {mdExpandTabs} {filename:instrumentation-client.ts}
import * as Sentry from "@sentry/nextjs";

Sentry.init({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ Create the following files in your application's root directory (or `src` folder
</SplitSectionText>
<SplitSectionCode>

```typescript {tabTitle:Client} {filename:sentry.client.config.ts}
```typescript {tabTitle:Client} {mdExpandTabs} {filename:sentry.client.config.ts}
import * as Sentry from "@sentry/nextjs";

Sentry.init({
Expand Down
Loading
Loading