slogan3

Maak aangepaste sjablonen voor code-aanvulling in Tabnine

description

Door het maken van aangepaste sjablonen voor code-aanvulling kan ik mijn coderingssnelheid verbeteren en consistentie met mijn coderingsnormen waarborgen, wat uiteindelijk leidt tot efficiënter ontwikkelen.

prompt

try_prompt

Help me bij het ontwerpen van aangepaste sjablonen voor code-aanvulling in Tabnine die mijn coderingsnormen en vaak gebruikte patronen weerspiegelen. Mijn primaire pro ... more
generate_helper
disclaimerOnPageApi image_legal_disclaimer...

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier zijn enkele suggesties voor aangepaste sjablonen voor code-aanvulling in Tabnine, afgestemd op JavaScript en jouw coderingsnormen. Deze sjablonen helpen je sneller te werken en zorgen voor consistente code. 1. **Standaard React Component (Functioneel):** ```javascript function ${1:ComponentName}(${2:props}) { return ( <div> ${3} </div> ); } ``` Gebruik: Snel een functionele React component genereren. 2. **Gebruik van fetch API met error handling:** ```javascript async function ${1:fetchData}(${2:url}) { try { const response = await fetch(${2}); if (!response.ok) { throw new Error('Network response was not ok'); } const data = await response.json(); return data; } catch (${3:error}) { console.error('Fetch error:', ${3}); } } ``` 3. **Herbruikbare React Hook voor API calls:** ```javascript import { useState, useEffect } from 'react'; function use${1:Data}(${2:url}) { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { fetch(${2}) .then(res => res.json()) .then(setData) .catch(setError) .finally(() => setLoading(false)); }, [${2}]); return { data, loading, error }; } ``` 4. **Consistente logging functie:** ```javascript function log${1:Message}(${2:message}) { console.${3:log}(`[${new Date().toISOString()}] ${2}`); } ``` 5. **Kortere arrow functions voor callbacks:** ```javascript const ${1:callback} = (${2:params}) => { ${3/* code */ } }; ``` **Aanbevelingen voor optimalisatie:** - Pas placeholders (${1}, ${2}, ...) aan naar jouw voorkeur. - Voeg vaste imports of configuraties toe in sjablonen. - Voeg commentaar of documentatie toe binnen sjablonen voor betere codekwaliteit. Wil je dat ik deze sjablonen in een specifiek formaat of bestand voor je voorbereid, of dat ik ze verder aanpas aan jouw coderingsstijl?
provider: deepseek
model: deepseek-chat
Zeker! Ik help je bij het maken van aangepaste Tabnine-sjablonen voor JavaScript. Hier zijn praktische voorbeelden die je codeerstijl kunnen standaardiseren en je productiviteit verhogen: ## 1. React Component Template ```javascript // Trigger: "rfc" /** * ${1:ComponentName} - ${2:component description} * @param {object} props - Component properties * @returns {JSX.Element} */ const ${1:ComponentName} = ({ ${3:prop1} }) => { return ( <div className="${4:component-class}"> ${0} </div> ); }; export default ${1:ComponentName}; ``` ## 2. Async Function Handler ```javascript // Trigger: "asyncHandler" /** * ${1:functionName} - ${2:Async function description} * @async * @param {${3:parameterType}} ${4:param} * @returns {Promise<${5:returnType}>} */ const ${1:functionName} = async (${4:param}) => { try { ${0} return result; } catch (error) { console.error('Error in ${1:functionName}:', error); throw error; } }; ``` ## 3. Custom Hook Template ```javascript // Trigger: "customHook" /** * use${1:HookName} - ${2:Custom hook description} * @returns {${3:returnObject}} */ const use${1:HookName} = () => { const [${4:state}, set${4/(.*)/${1:/capitalize}/}] = useState(${5:initialState}); ${6:useEffect(() => { // Side effects here }, []);} return { ${4:state}, ${7:set${4/(.*)/${1:/capitalize}/}} }; }; export default use${1:HookName}; ``` ## 4. Error Boundary Component ```javascript // Trigger: "errorBoundary" class ${1:ErrorBoundaryName} extends React.Component { constructor(props) { super(props); this.state = { hasError: false, error: null }; } static getDerivedStateFromError(error) { return { hasError: true, error }; } componentDidCatch(error, errorInfo) { console.error('Error caught by boundary:', error, errorInfo); } render() { if (this.state.hasError) { return ( <div className="error-boundary"> <h2>Something went wrong</h2> <details> {this.state.error?.toString()} </details> </div> ); } return this.props.children; } } ``` ## 5. API Service Function ```javascript // Trigger: "apiService" /** * ${1:serviceName} - ${2:API service description} * @param {${3:parameterType}} ${4:data} * @returns {Promise<${5:responseType}>} */ const ${1:serviceName} = async (${4:data}) => { const response = await fetch(`${6:endpoint}`, { method: '${7:POST}', headers: { 'Content-Type': 'application/json', ${8:// additional headers} }, body: JSON.stringify(${4:data}) }); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } return await response.json(); }; ``` ## 6. Utility Function Template ```javascript // Trigger: "utility" /** * ${1:functionName} - ${2:Utility function description} * @param {${3:inputType}} ${4:input} * @returns {${5:outputType}} */ const ${1:functionName} = (${4:input}) => { ${6:// Input validation} if (!${4:input}) { throw new Error('${4:input} is required'); } ${0} return result; }; ``` ## 7. Context Provider Template ```javascript // Trigger: "contextProvider" const ${1:ContextName} = createContext(); export const ${1:ContextName}Provider = ({ children }) => { const [${2:state}, set${2/(.*)/${1:/capitalize}/}] = useState(${3:initialState}); const value = { ${2:state}, set${2/(.*)/${1:/capitalize}/}, ${4:// additional methods} }; return ( <${1:ContextName}.Provider value={value}> {children} </${1:ContextName}.Provider> ); }; export const use${1:ContextName} = () => { const context = useContext(${1:ContextName}); if (!context) { throw new Error('use${1:ContextName} must be used within ${1:ContextName}Provider'); } return context; }; ``` ## 8. Form Validation Hook ```javascript // Trigger: "formValidation" /** * useFormValidation - Form validation hook * @param {object} initialValues * @param {object} validationSchema * @returns {object} */ const useFormValidation = (initialValues, validationSchema) => { const [values, setValues] = useState(initialValues); const [errors, setErrors] = useState({}); const [isValid, setIsValid] = useState(false); const validateField = (name, value) => { const validator = validationSchema[name]; if (validator) { const error = validator(value); setErrors(prev => ({ ...prev, [name]: error })); return !error; } return true; }; const handleChange = (name, value) => { setValues(prev => ({ ...prev, [name]: value })); validateField(name, value); }; return { values, errors, isValid, handleChange, setValues }; }; ``` ## Hoe deze sjablonen te gebruiken in Tabnine: 1. **Tabnine Configuratie**: - Ga naar Tabnine instellingen → Custom Code Snippets - Voeg elk sjabloon toe met de bijbehorende trigger 2. **Aanpassen aan jouw stijl**: - Wijzig de JSDoc format naar jouw voorkeur - Pas error handling aan naar jouw standaarden - Voeg specifieke import statements toe die je vaak gebruikt 3. **Extra tips**: - Gebruik consistente trigger namen (bijv. "rfc" voor React Functional Components) - Voeg je eigen vaak gebruikte code patronen toe - Houd sjablonen modulair en herbruikbaar Deze sjablonen zullen je helpen om consistentie te behouden en veelvoorkomende codeblokken snel te genereren!