LSP - Premières Notions

# Language Server Protocol (LSP) — Fondamentaux

## Définition

Protocole JSON-RPC standardisé permettant à un éditeur de code (client) de communiquer avec un serveur fournissant des fonctionnalités de langage (autocomplétion, go-to-definition, diagnostics, etc.).

## Problème résolu

Avant LSP : N éditeurs × M langages = N×M implémentations.
Avec LSP : N clients + M serveurs. Chaque éditeur implémente le protocole une fois, chaque langage expose un serveur une fois.

## Architecture

```
┌─────

Claude Code - LSP - Intégration

# Intégration LSP dans Claude Code

## Vue d'ensemble

Claude Code (v2.0.74+) supporte nativement le Language Server Protocol via un système de plugins. Une fois configuré, Claude accède à :

- **goToDefinition** — Sauter à la définition d'un symbole
- **findReferences** — Trouver tous les usages
- **hover** — Afficher documentation et types
- **documentSymbol** — Lister les symboles d'un fichier
- **workspaceSymbol** — Rechercher dans tout le projet
- **Diagnostics automatiques** — Erreurs/warn

Claude Code - Plugins - Quick Guide

# Claude Code Plugins — Guide Rapide

## Ajouter des Marketplaces

```bash
/plugin marketplace add owner/repo
```

**Exemples :**

```bash
/plugin marketplace add anthropics/skills
/plugin marketplace add anthropics/claude-code
/plugin marketplace add wshobson/agents
/plugin marketplace add obra/superpowers-marketplace
```

## Commandes Essentielles

| Action | Commande |
|--------|----------|
| Menu interactif | `/plugin` |
| Lister marketplaces | `/plugin marketplace list` |
| Plugins disponib

position: absolute;した要素が中央からずれる件を調整

【参考サイト】 https://sugary-chunchun.com/2024/06/20/23559/
h1::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    background: #BDA887;
    transform: rotate(45deg) translate(-50%, 0); // 追加
    bottom: -10px;
    left: 50%;
}

data file path

def get_dataset_path():
    """
    Checks predefined dataset paths and returns the one that exists.
    Raises FileNotFoundError if none are found.
    """
    path1 = r"C:\Users\TPWODL\New folder_Content\Twitter_X_Flow_Prediction_Tp\data\raw\twitter_x_data.xlsx"
    path2 = r"C:\Users\LENOVO\MachineLearningProhects\Twitter_X_Flow_Prediction_Tp\data\raw\twitter_x_data.xlsx"

    if os.path.exists(path1):
        return path1
    elif os.path.exists(path2):
        return path2
    e

plotly all visualizations

import pandas as pd
import plotly.graph_objects as go
import plotly.express as px

def create_visualizations(pivot_df: pd.DataFrame):
    """
    Create interactive Plotly visualizations for complaint data
    with distinct color schemes and backgrounds
    """
    
    # Remove the 'Total' row if it exists
    df = pivot_df[pivot_df['COMPLAINT TYPE'] != 'Total'].copy()
    
    # 1. STACKED BAR CHART - teal & red on light gray
    fig1 = go.Figure()
    
    departments = ['Comm

pivot table

def apply_pivot_examples(dataset_path: str) -> pd.DataFrame:
    # Load dataset
    df = pd.read_excel(dataset_path)

    # Ensure required columns exist
    required = ['COMPLAINT TYPE', 'DEPT', 'CLOSED/OPEN']
    missing = [c for c in required if c not in df.columns]
    if missing:
        raise ValueError(f"Missing required columns: {missing}")

    # Work on a copy and clean text
    d = df[required].copy()

    # Normalize strings: strip, lower, then title-case
    def norm(s

1351. Count Negative Numbers in a Sorted Matrix

Given a m x n matrix grid which is sorted in non-increasing order both row-wise and column-wise, return the number of negative numbers in grid.
/**
 * @param {number[][]} grid - A 2D matrix sorted in non-increasing order
 * @return {number} - Total count of negative numbers in the matrix
 */
var countNegatives = function (grid) {
    let count = 0;

    // Loop through each row
    for (let row = 0; row < grid.length; row++) {

        // Loop through each value in the current row
        for (let col = 0; col < grid[row].length; col++) {

            // If the value is negative, increment the counter
            if (grid[row][col] < 0)

Force Windows Time Sync

@echo off
echo Force sync computer time from internet
echo.
echo Exporting registry w32time\Config (for restore)
reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config %TEMP%\exported_w32time.reg /y
echo Changing the registry keys temporarly
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxNegPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxPosPhaseCorrection /d

functions.php

<?php
function theme_styles() {
  wp_enqueue_style(
    'tailwind',
    get_template_directory_uri() . '/assets/css/output.css',
    [],
    filemtime(get_template_directory() . '/assets/css/output.css')
  );
  wp_enqueue_style('maincss',get_theme_file_uri('./css/index.css' ));
  wp_enqueue_script('mainjs',get_theme_file_uri('./js/main.js' ),[],null ,'1.0' , true );
  wp_enqueue_script('menujs',get_theme_file_uri('./js/menu.js' ),[],null ,'1.0' , true );
}
add_action('wp_enqueue_scri

Wordpress CLI update DB links

Download wp-cli.phar
Copy to current PHP version folder => Example---> C:\wamp64\bin\php\php8.0.30\wp-cli.phar

Comanda se rulează în Command Prompt (CMD) sau PowerShell,
👉 din directorul rădăcină al site-ului WordPress (unde există wp-config.php).

cd C:\wamp64\www\pcsdec2025

Verifica: dir

Dacă NU vezi wp-config.php, ești în folderul greșit.

Ruleaza comanda

C:\wamp64\bin\php\php8.0.30\php.exe C:\wamp64\bin\php\php8.0.30\wp-cli.phar search-replace "https://pacificcrestsnowcats.com" "http://l

Exploring the World of Anonymous Chat

In an era where digital communication is at our fingertips, anonymous chat platforms are becoming increasingly popular. One of the most notable platforms for this experience is [Omegle](https://omegleweb.io). This online chat service allows users to connect with strangers from around the world, providing an exciting and unpredictable way to meet new people. If you’re curious about how to navigate this unique platform, read on for a guide on the gameplay, helpful tips, and a conclusion on your chatting journey. Gameplay Using Omegle is straightforward. When you first visit the site, you will be greeted with a simple interface. You have the choice to engage in either text or video chats. To start, simply click “Text” or “Video” chat, and then the platform will randomly pair you with another user. Once connected, you can begin chatting immediately. If at any point the conversation isn’t to your liking, you can end the chat and be matched with a new partner. This randomness is a big part of the fun, as you never know who you’ll meet next! It’s a refreshing way to discuss a wide variety of topics, share interests, and even make friends from different countries. Remember that anonymity is key on this platform, which means you should avoid sharing personal information such as your real name, phone number, or location. This precaution not only keeps you safe but also adds an extra layer of intrigue to your conversations. Tips for a Better Experience 1. Choose Your Mode Wisely: If you’re comfortable speaking and want a more personal connection, the video chat option might be for you. However, if you prefer typing and want to avoid potential awkwardness, stick to text chat. 2. Start with Common Topics: It can be helpful to have a few conversation starters ready. Ask about the person’s interests or their thoughts on popular culture, such as movies or music. This helps create a smoother flow in the conversation. 3. Be Respectful and Mindful: Remember that everyone on Omegle is there to connect. Treat your chat partner with respect, and don’t engage in negative conversations or harassment. A friendly and open-minded approach can lead to delightful exchanges. 4. Use the Interests Feature: Omegle allows you to enter interests that can help match you with like-minded individuals. This feature can filter out some of the randomness and lead to more engaging discussions. 5. Know When to Disconnect: If you find yourself in an uncomfortable or inappropriate conversation, it’s perfectly fine to end the chat. There are plenty of other users waiting to connect, and you should never feel obligated to continue a conversation that makes you uneasy. Conclusion [Omegle](https://omegleweb.io) offers a unique way to converse anonymously with people all around the world. It's an exciting space for meeting new friends, sharing ideas, and engaging in discussions that you might not have in your everyday life. By following the guidelines and tips mentioned above, you can enhance your experience and enjoy meaningful interactions while prioritizing your safety. So why not take a plunge into the anonymous chat sea? You never know what fascinating conversations await!
https://omegleweb.io

Exploring the World of Anonymous Chat

In an era where digital communication is at our fingertips, anonymous chat platforms are becoming increasingly popular. One of the most notable platforms for this experience is Omegle. This online chat service allows users to connect with strangers from around the world, providing an exciting and unpredictable way to meet new people. If you’re curious about how to navigate this unique platform, read on for a guide on the gameplay, helpful tips, and a conclusion on your chatting journey.
Gamepla

Exploring the World of Anonymous Chat

In an era where digital communication is at our fingertips, anonymous chat platforms are becoming increasingly popular. One of the most notable platforms for this experience is Omegle. This online chat service allows users to connect with strangers from around the world, providing an exciting and unpredictable way to meet new people. If you’re curious about how to navigate this unique platform, read on for a guide on the gameplay, helpful tips, and a conclusion on your chatting journey.
Gamepla

2483. Minimum Penalty for a Shop

You are given the customer visit log of a shop represented by a 0-indexed string customers consisting only of characters 'N' and 'Y': if the ith character is 'Y', it means that customers come at the ith hour whereas 'N' indicates that no customers come at the ith hour. If the shop closes at the jth hour (0 <= j <= n), the penalty is calculated as follows: For every hour when the shop is open and no customers come, the penalty increases by 1. For every hour when the shop is closed and customers come, the penalty increases by 1. Return the earliest hour at which the shop must be closed to incur a minimum penalty. Note that if a shop closes at the jth hour, it means the shop is closed at the hour j.
/**
 * Given a string of 'Y' (customer arrives) and 'N' (no customer),
 * find the hour to close the shop that minimizes penalty.
 *
 * Penalty rules:
 * - Staying open while no customers come → +1 penalty for each 'N'
 * - Closing early while customers would have come → +1 penalty for each 'Y'
 *
 * @param {string} customers
 * @return {number}
 */
var bestClosingTime = function (customers) {
    const n = customers.length;

    // Initial penalty: assume we close at hour 0 (never open).
    //

Convert country alpha code

<?php
function convertCountryCodeAlpha2ToAlpha3($alpha2)
{
    $map = [
        "AF" => "AFG",
        "AX" => "ALA",
        "AL" => "ALB",
        "DZ" => "DZA",
        "AS" => "ASM",
        "AD" => "AND",
        "AO" => "AGO",
        "AI" => "AIA",
        "AQ" => "ATA",
        "AG" => "ATG",
        "AR" => "ARG",
        "AM" => "ARM",
        "AW" => "ABW",
        "AU" => "AUS",
        "AT" => "AUT",
        "AZ" => "AZE",
        "BS" => "BHS",
        "BH" => "BHR",
        "BD" =